diff --git a/public/bsp_kontaktnaya_informaciya/dobavlenie-proizvol-nyh-rekvizitov-s-kontaktnoj-informaciej.pdf b/public/bsp_kontaktnaya_informaciya/dobavlenie-proizvol-nyh-rekvizitov-s-kontaktnoj-informaciej.pdf new file mode 100644 index 0000000..e652790 Binary files /dev/null and b/public/bsp_kontaktnaya_informaciya/dobavlenie-proizvol-nyh-rekvizitov-s-kontaktnoj-informaciej.pdf differ diff --git a/public/bsp_kontaktnaya_informaciya/hranenie-istorii-izmenenij-kontaktnoj-informacii.pdf b/public/bsp_kontaktnaya_informaciya/hranenie-istorii-izmenenij-kontaktnoj-informacii.pdf new file mode 100644 index 0000000..4b9f7ea Binary files /dev/null and b/public/bsp_kontaktnaya_informaciya/hranenie-istorii-izmenenij-kontaktnoj-informacii.pdf differ diff --git a/public/bsp_kontaktnaya_informaciya/sozdanie-staticeskih-elementov-upravlenia.pdf b/public/bsp_kontaktnaya_informaciya/sozdanie-staticeskih-elementov-upravlenia.pdf new file mode 100644 index 0000000..51cb3b5 Binary files /dev/null and b/public/bsp_kontaktnaya_informaciya/sozdanie-staticeskih-elementov-upravlenia.pdf differ diff --git a/public/bsp_svoystva/rekvizity.png b/public/bsp_svoystva/rekvizity.png new file mode 100644 index 0000000..2c35a26 Binary files /dev/null and b/public/bsp_svoystva/rekvizity.png differ diff --git a/public/bsp_svoystva/svedeniya.png b/public/bsp_svoystva/svedeniya.png new file mode 100644 index 0000000..09c8e15 Binary files /dev/null and b/public/bsp_svoystva/svedeniya.png differ diff --git a/src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Документы/Префиксация при установке нового номера.md b/src/content/docs/knowledge-base/Общие/Документы/Префиксация при установке нового номера.md similarity index 85% rename from src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Документы/Префиксация при установке нового номера.md rename to src/content/docs/knowledge-base/Общие/Документы/Префиксация при установке нового номера.md index 7de39c6..5722d35 100644 --- a/src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Документы/Префиксация при установке нового номера.md +++ b/src/content/docs/knowledge-base/Общие/Документы/Префиксация при установке нового номера.md @@ -1,6 +1,6 @@ --- title: Префиксация при установке нового номера -slug: общие-подключение-объектов-к-бсп-документы/префиксация-при-установке-нового-номера +slug: общие-документы/префиксация-при-установке-нового-номера --- Для того, чтобы нумерация документов была "Типовой", длину кода нужно установить **11 символов**, а в модуле объекта документа прописать. ```bsl diff --git a/src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистемам/Механизм доп.отчетов и обработок.md b/src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Механизм доп.отчетов и обработок.md similarity index 98% rename from src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистемам/Механизм доп.отчетов и обработок.md rename to src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Механизм доп.отчетов и обработок.md index 64331dc..0766ffb 100644 --- a/src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистемам/Механизм доп.отчетов и обработок.md +++ b/src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Механизм доп.отчетов и обработок.md @@ -1,6 +1,6 @@ --- title: Механизм доп.отчетов и обработок -slug: общие-подключение-объектов-к-бсп-подключение-к-подсистемам/механизм-доп-отчетов-и-обработок +slug: общие-подключение-объектов-к-бсп/механизм-доп-отчетов-и-обработок --- # Постановка задачи diff --git a/src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистемам/Подключение к подсистеме Варианты отчетов.md b/src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистеме Варианты отчетов.md similarity index 99% rename from src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистемам/Подключение к подсистеме Варианты отчетов.md rename to src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистеме Варианты отчетов.md index 43e03d9..ac1894b 100644 --- a/src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистемам/Подключение к подсистеме Варианты отчетов.md +++ b/src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистеме Варианты отчетов.md @@ -1,6 +1,6 @@ --- title: Подключение к подсистеме Варианты отчетов -slug: общие-подключение-объектов-к-бсп-подключение-к-подсистемам/подключение-к-подсистеме-варианты-отчетов +slug: общие-подключение-объектов-к-бсп/подключение-к-подсистеме-варианты-отчетов --- # Порядок действий ## Хранилище вариантов diff --git a/src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистемам/Подключение к подсистеме Версионирование.md b/src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистеме Версионирование.md similarity index 97% rename from src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистемам/Подключение к подсистеме Версионирование.md rename to src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистеме Версионирование.md index ca96000..bd49aea 100644 --- a/src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистемам/Подключение к подсистеме Версионирование.md +++ b/src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистеме Версионирование.md @@ -1,6 +1,6 @@ --- title: Подключение к подсистеме Версионирование -slug: общие-подключение-объектов-к-бсп-подключение-к-подсистемам/подключение-к-подсистеме-версионирование +slug: общие-подключение-объектов-к-бсп/подключение-к-подсистеме-версионирование --- ## Настройка объектов метаданных diff --git a/src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистемам/Подключение к подсистеме Взаимодействия.md b/src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистеме Взаимодействия.md similarity index 98% rename from src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистемам/Подключение к подсистеме Взаимодействия.md rename to src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистеме Взаимодействия.md index 078e62b..72ab22d 100644 --- a/src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистемам/Подключение к подсистеме Взаимодействия.md +++ b/src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистеме Взаимодействия.md @@ -1,6 +1,6 @@ --- title: Подключение к подсистеме Взаимодействия -slug: общие-подключение-объектов-к-бсп-подключение-к-подсистемам/подключение-к-подсистеме-взаимодействия +slug: общие-подключение-объектов-к-бсп/подключение-к-подсистеме-взаимодействия --- # Настройка объекта Создаем новый документ/справочник. В документе должны быть реквизит `Ответственный` (СправочникСсылка.Пользователи) и табличная часть `ПартнерыИКонтактныеЛица`. diff --git a/src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистемам/Подключение к подсистеме Дата запрета изменений.md b/src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистеме Дата запрета изменений.md similarity index 97% rename from src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистемам/Подключение к подсистеме Дата запрета изменений.md rename to src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистеме Дата запрета изменений.md index 17a5df4..0281c4e 100644 --- a/src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистемам/Подключение к подсистеме Дата запрета изменений.md +++ b/src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистеме Дата запрета изменений.md @@ -1,6 +1,6 @@ --- title: Подключение к подсистеме Дата запрета изменений -slug: общие-подключение-объектов-к-бсп-подключение-к-подсистемам/подключение-к-подсистеме-дата-запрета-изменений +slug: общие-подключение-объектов-к-бсп/подключение-к-подсистеме-дата-запрета-изменений --- # Общие модули В процедуре `ЗаполнитьИсточникиДанныхДляПроверкиЗапретаИзменения` общего модуля `ДатыЗапретаИзмененияПереопределяемый` дополнить: diff --git a/src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистемам/Подключение к подсистеме Контактная информация.md b/src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистеме Контактная информация.md similarity index 96% rename from src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистемам/Подключение к подсистеме Контактная информация.md rename to src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистеме Контактная информация.md index 20f82b6..28db7a4 100644 --- a/src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистемам/Подключение к подсистеме Контактная информация.md +++ b/src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистеме Контактная информация.md @@ -1,6 +1,6 @@ --- title: Подключение к подсистеме Контактная информация -slug: общие-подключение-объектов-к-бсп-подключение-к-подсистемам/подключение-к-подсистеме-контактная-информация +slug: общие-подключение-объектов-к-бсп/подключение-к-подсистеме-контактная-информация --- > [Подсистема БСП «Контактная информация» (ИТС)](https://its.1c.ru/db/pubcloud1c#content:80:hdoc:p513) @@ -254,4 +254,12 @@ __Не забываем привязать события формы к обра 4. Поле значения - `представление` Теперь через меню `Ещё > Изменить форму` можно в форму списка добавить контакты через поле `Ссылка` -![Итог](/bsp_kontaktnaya_informaciya/result.png) \ No newline at end of file +![Итог](/bsp_kontaktnaya_informaciya/result.png) + +## Дополнительно +[Добавление произвольных реквизитов с контактной информацией.pdf](/bsp_kontaktnaya_informaciya/dobavlenie-proizvol-nyh-rekvizitov-s-kontaktnoj-informaciej.pdf) + +[Хранение истории изменений контактной информации.pdf](/bsp_kontaktnaya_informaciya/hranenie-istorii-izmenenij-kontaktnoj-informacii.pdf) + +[Создание статических элементов управления контактной информации.pdf](/bsp_kontaktnaya_informaciya/sozdanie-staticeskih-elementov-upravlenia.pdf) + diff --git a/src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистемам/Подключение к подсистеме Подключаемые команды.md b/src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистеме Подключаемые команды.md similarity index 97% rename from src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистемам/Подключение к подсистеме Подключаемые команды.md rename to src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистеме Подключаемые команды.md index beb2bb9..a33374b 100644 --- a/src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистемам/Подключение к подсистеме Подключаемые команды.md +++ b/src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистеме Подключаемые команды.md @@ -1,6 +1,6 @@ --- title: Подключение к подсистеме Подключаемые команды -slug: общие-подключение-объектов-к-бсп-подключение-к-подсистемам/подключение-к-подсистеме-подключаемые-команды +slug: общие-подключение-объектов-к-бсп/подключение-к-подсистеме-подключаемые-команды --- ## Форма объекта ```bsl diff --git a/src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистемам/Подключение к подсистеме Присоединенные файлы.md b/src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистеме Присоединенные файлы.md similarity index 99% rename from src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистемам/Подключение к подсистеме Присоединенные файлы.md rename to src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистеме Присоединенные файлы.md index df8f08c..c00125f 100644 --- a/src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистемам/Подключение к подсистеме Присоединенные файлы.md +++ b/src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистеме Присоединенные файлы.md @@ -1,6 +1,6 @@ --- title: Подключение к подсистеме Присоединенные файлы -slug: общие-подключение-объектов-к-бсп-подключение-к-подсистемам/подключение-к-подсистеме-присоединенные-файлы +slug: общие-подключение-объектов-к-бсп/подключение-к-подсистеме-присоединенные-файлы --- ## Настройка определяемых типов diff --git a/src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистеме Свойства.md b/src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистеме Свойства.md new file mode 100644 index 0000000..f08b2f8 --- /dev/null +++ b/src/content/docs/knowledge-base/Общие/Подключение объектов к БСП/Подключение к подсистеме Свойства.md @@ -0,0 +1,346 @@ +--- +title: Подключение к подсистеме Свойства +slug: общие-подключение-объектов-к-бсп/подключение-к-подсистеме-свойства +--- + +# Дополнительные реквизиты, сведения, метки + +## 1. Добавляем объект в определяемые типы +- `ВладелецДополнительныхСведений` (если нужны доп.сведения) +- `ВладелецМеток` (если нужны метки) + +## 2. Добавляем в объект ТЧ "ДополнительныеРеквизиты" +Копируем из типового, например справочник `Пользователи`. ТЧ нужна только если нужны доп.реквизиты + +## 3. Добавляем предопределенные наборы свойств (без доп.детализации) +В общем модуле `УправлениеСвойствамиПереопределяемый` в процедуре `ПриПолученииПредопределенныхНаборовСвойств` описываем наборы: +```bsl +Процедура ПриПолученииПредопределенныхНаборовСвойств(Наборы) Экспорт + + Набор = Наборы.Строки.Добавить(); + Набор.Имя = "Справочник_Организации"; + Набор.Идентификатор = Новый УникальныйИдентификатор("a4632c5e-a6c9-4141-83bc-be8e77ff1690"); // генерим UUID v4 + +КонецПроцедуры +``` + +__Разные наборы по видам объектов описаны в конце статьи__ + +## 4. Запустить обновление информационной базы +`Сервис > Параметры > Запуск 1С: Предприятия > ПараметрЗапуска` установить `/ЗапуститьОбновлениеИнформационнойБазы`. + +## 5. Настраиваем формы + +### Форма элемента +Создаем группу `ГруппаДополнительныеРеквизиты` (имя любое), в который будут падать программно созданные подсистемой элементы формы. И `ГруппаМетки`, если нужны метки +__В модуле формы описываем__ +```bsl +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриЧтенииНаСервере(ТекущийОбъект) + + // СтандартныеПодсистемы.Свойства + УправлениеСвойствами.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + // Конец СтандартныеПодсистемы.Свойства + +КонецПроцедуры + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + // СтандартныеПодсистемы.Свойства + ДополнительныеПараметры = Новый Структура; + ДополнительныеПараметры.Вставить("ИмяЭлементаДляРазмещения", "ГруппаДополнительныеРеквизиты"); // имя созданной ранее группы + + // Если нужны метки + ПараметрыОтображенияМеток = УправлениеСвойствами.ПараметрыОтображенияМеток(); + ПараметрыОтображенияМеток.ИмяЭлементаДляРазмещенияМеток = "ГруппаМетки"; // имя созданной ранее группы + ПараметрыОтображенияМеток.МаксимумМетокНаФорме = 3; + ПараметрыОтображенияМеток.ВариантОтображенияМеток = Перечисления.ВариантыОтображенияМеток.Надпись; + ДополнительныеПараметры.Вставить("ПараметрыОтображенияМеток", ПараметрыОтображенияМеток); + + УправлениеСвойствами.ПриСозданииНаСервере(ЭтотОбъект, ДополнительныеПараметры); + // Конец СтандартныеПодсистемы.Свойства + +КонецПроцедуры + +&НаКлиенте +Процедура ПриОткрытии(Отказ) + + // СтандартныеПодсистемы.Свойства + УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект); + // Конец СтандартныеПодсистемы.Свойства + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + + // СтандартныеПодсистемы.Свойства + Если УправлениеСвойствамиКлиент.ОбрабатыватьОповещения(ЭтотОбъект, ИмяСобытия, Параметр) Тогда + ОбновитьЭлементыДополнительныхРеквизитов(); + УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект); + КонецЕсли; + // Конец СтандартныеПодсистемы.Свойства + +КонецПроцедуры + +&НаСервере +Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты) + + // СтандартныеПодсистемы.Свойства + УправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтотОбъект, Отказ, ПроверяемыеРеквизиты); + // Конец СтандартныеПодсистемы.Свойства + +КонецПроцедуры + +&НаСервере +Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) + + // СтандартныеПодсистемы.Свойства + УправлениеСвойствами.ПередЗаписьюНаСервере(ЭтотОбъект, ТекущийОбъект); + // Конец СтандартныеПодсистемы.Свойства + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +// СтандартныеПодсистемы.Свойства +&НаКлиенте +Процедура Подключаемый_СвойстваВыполнитьКоманду(ЭлементИлиКоманда, НавигационнаяСсылка = Неопределено, СтандартнаяОбработка = Неопределено) + УправлениеСвойствамиКлиент.ВыполнитьКоманду(ЭтотОбъект, ЭлементИлиКоманда, СтандартнаяОбработка); +КонецПроцедуры +// Конец СтандартныеПодсистемы.Свойства + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#Область СтандартныеПодсистемы + +// СтандартныеПодсистемы.Свойства +&НаСервере +Процедура ОбновитьЭлементыДополнительныхРеквизитов() + УправлениеСвойствами.ОбновитьЭлементыДополнительныхРеквизитов(ЭтотОбъект); +КонецПроцедуры + +&НаКлиенте +Процедура ОбновитьЗависимостиДополнительныхРеквизитов() + УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект); +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ПриИзмененииДополнительногоРеквизита(Элемент) + УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект); +КонецПроцедуры +// Конец СтандартныеПодсистемы.Свойства + +#КонецОбласти + +#КонецОбласти + +``` + +### Форма списка + +Для того, чтобы можно было выводить дополнительные реквизиты и сведения в список, нужно настроить характеристики. + +В конфигураторе открываем карточку объекта > `Данные > Характеристики` + +В характеристиках настраиваем: +#### Для дополнительных сведений +Вид характеристик - `Справочник.НаборыДополнительныхРеквизитовИСведений.ТабличнаяЧасть.ДополнительныеСведения` +Поле ключа - `Свойство` +Поле отбора видов - `ИмяПредопределенногоНабора` +Значение отбора - `Справочник_Склады` (то, как мы обзывали набор в `ПриПолученииПредопределенныхНаборовСвойств`) + +Значения характеристик - `РегистрСведений.ДополнительныеСведения` +Поле объекта - `Объект` +Поле вида - `Свойство` +Поле значения - `Значение` + +#### Для дополнительных реквизитов +Вид характеристик - `Справочник.НаборыДополнительныхРеквизитовИСведений.ТабличнаяЧасть.ДополнительныеРеквизиты` +Поле ключа - `Свойство` +Поле отбора видов - `ИмяПредопределенногоНабора` +Значение отбора - `Справочник_Склады` (то, как мы обзывали набор в `ПриПолученииПредопределенныхНаборовСвойств`) + +Значения характеристик - `Справочник.Склады.ТабличнаяЧасть.ДополнительныеРеквизиты` (ТЧ, созданная в нашем объекте) +Поле объекта - `Ссылка` +Поле вида - `Свойство` +Поле значения - `Значение` + +Далее, чтобы отображать метки, нужно дополнить запрос динамического списка полями: +```bsl +ВЫБРАТЬ + СправочникКонтрагенты.Ссылка, + ...остальные поля..., + 0 КАК Метка1, + 0 КАК Метка2, + 0 КАК Метка3 // до 7 меток (вроде) + +ИЗ + Справочник.Контрагенты КАК СправочникКонтрагенты +``` + +Выкидываем поля на форму, устанавливаем вид "ПолеКартинки", настраиваем ширину, убираем заголовок и т.д. +Картинкой значений устанавливаем `ПиктограммыСвойств` + +Далее, создаем группу `ГруппаЛегендаМетки` (имя любое), в которой будут отрисовываться доступные метки с возможностью установки отбора + +Затем, в модуле формы списка прописываем +```bsl + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + // СтандартныеПодсистемы.Свойства + ДополнительныеПараметры = Новый Структура; + + ПараметрыОтображенияМеток = УправлениеСвойствами.ПараметрыОтображенияМеток(); + ПараметрыОтображенияМеток.ИмяЭлементаДляРазмещенияЛегендыМеток = "ГруппаЛегендаМетки"; + ПараметрыОтображенияМеток.ОтборМеток = Истина; + ПараметрыОтображенияМеток.ВидОбъектов = Метаданные.Справочники.Номенклатура.ПолноеИмя(); + + ДополнительныеПараметры.Вставить("ПараметрыОтображенияМеток", ПараметрыОтображенияМеток); + ДополнительныеПараметры.Вставить("ПроизвольныйОбъект", Истина); + + УправлениеСвойствами.ПриСозданииНаСервере(ЭтотОбъект, ДополнительныеПараметры); + // Конец СтандартныеПодсистемы.Свойства + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыCписок + +&НаСервереБезКонтекста +Процедура СписокПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки) + + // СтандартныеПодсистемы.Свойства + УправлениеСвойствами.ПриПолученииДанныхНаСервере(Настройки, Строки); + // Конец СтандартныеПодсистемы.Свойства + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +// СтандартныеПодсистемы.Свойства + +&НаКлиенте +Процедура Подключаемый_УстановитьВидимостьЛегендыМеток(Команда) + УстановитьВидимостьЛегендыМеток(); +КонецПроцедуры + +&НаСервере +Процедура УстановитьВидимостьЛегендыМеток() + УправлениеСвойствами.УстановитьВидимостьЛегендыМеток(ЭтотОбъект); +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ОбработчикОтбораПоМеткам(Команда) + УправлениеСвойствамиКлиент.УстановитьОтборПоМетке(ЭтотОбъект, Команда.Имя); +КонецПроцедуры + +// Конец СтандартныеПодсистемы.Свойства + +#КонецОбласти + +``` + +## 6. Разные наборы свойств по видам объектов +### Создаем группу наборов свойств +Если нужно иметь разные наборы свойств в зависимости от значения какого-то реквизита - `ВидНоменклатуры` (тип - `СправочникСсылка.ВидыНоменклатуры`), например, то в `ПриПолученииПредопределенныхНаборовСвойств` описываем __группы__ а не элементы + +```bsl +Процедура ПриПолученииПредопределенныхНаборовСвойств(Наборы) Экспорт + + Набор = Наборы.Строки.Добавить(); + Набор.Имя = "Справочник_Номенклатура"; // Обязательно в таком формате: Справочник_ИмяСправочника + Набор.ЭтоГруппа = Истина; // важный флаг + Набор.Идентификатор = Новый УникальныйИдентификатор("3001280c-f6ec-4fa9-bc4a-5eee8f177b60"); // генерим UUID v4 + +КонецПроцедуры +``` +### Настраиваем объект +Если мы завязываемся на реквизит `ВидНоменклатуры` справочнике `Номенклатура`, то нужно в справочнике __`ВидыНоменклатуры`__ создать реквизит `НаборСвойств`, с типом `СправочникСсылка.НаборыДополнительныхРеквизитовИСведений`. То есть мы создаем реквизит в том объекте метаданных, __по которому должен осуществляться отбор наборов свойств__ + +__В модуле объекта метаданных, по которому отбираем наборы__ (в нашем случае __`ВидыНоменклатуры`__ ) + +```bsl +#Область ОбработчикиСобытий + +Процедура ПередЗаписью(Отказ) + + Если НЕ ЭтоГруппа Тогда + // СтандартныеПодсистемы.Свойства + УправлениеСвойствами.ПередЗаписьюВидаОбъекта(ЭтотОбъект, "Справочник_Номенклатура"); + // Конец СтандартныеПодсистемы.Свойства + КонецЕсли; + +КонецПроцедуры + +Процедура ПередУдалением(Отказ) + + Если НЕ ЭтоГруппа Тогда + // СтандартныеПодсистемы.Свойства + УправлениеСвойствами.ПередУдалениемВидаОбъекта(ЭтотОбъект); + // Конец СтандартныеПодсистемы.Свойства + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти +``` +### Модуль формы элемента объекта-владельца +В нашем случае `Справочник_Номенклатура`. Подразумеваем, что базовый код (раздел 3) был уже добавлен +Добавляем в обработчик события `ПриИзменении` реквизита, по которому осуществляем отбор реквизитов следующий код для перерисовки реквизитов при его изменении: + +```bsl +&НаКлиенте +Процедура ВидНоменклатурыПриИзменении(Элемент) + ОбновитьЭлементыДополнительныхРеквизитов(); +КонецПроцедуры +``` + +### Общий модуль `УправлениеСвойствамиПереопределяемый` + +```bsl +Процедура ЗаполнитьНаборыСвойствОбъекта(Знач Объект, ТипСсылки, НаборыСвойств, СтандартнаяОбработка, КлючНазначения) Экспорт + + // Типов всегда много в подсистеме, поэтому обрабатываем точечно + Если ТипСсылки = Тип("СправочникСсылка.Номенклатура") Тогда + ЗаполнитьНаборСвойствПоВидуНоменклатуры(Объект, ТипСсылки, НаборыСвойств); + КонецЕсли; + +КонецПроцедуры + +Процедура ЗаполнитьНаборСвойствПоВидуНоменклатуры(Номенклатура, ТипСсылки, НаборыСвойств) + + // безопасная безопасность + Если ТипЗнч(Номенклатура) = ТипСсылки Тогда + ДанныеНоменклатуры = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Номенклатура, "ЭтоГруппа, ВидНоменклатуры"); + КонецЕсли; + + Если НЕ ДанныеНоменклатуры.ЭтоГруппа Тогда + Строка = НаборыСвойств.Добавить(); + Строка.Набор = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДанныеНоменклатуры.ВидНоменклатуры, "НаборСвойств"); + КонецЕсли; + +КонецПроцедуры + +``` + +> Написано сумбурно, можно покурить демо базу БСП + +## PS.Отличия доп.реквизита от доп.сведений и меток + +![Доп.реквизиты](/bsp_svoystva/rekvizity.png) +![Доп.реквизиты](/bsp_svoystva/svedeniya.png) \ No newline at end of file