Подключение дополнительных реквизитов (БСП) » История » Версия 1
Версия 1/2
-
Следующее » -
Текущая версия
Всеволод Дорофеев, 23.10.2019 09:59
Подключение дополнительных реквизитов и сведений (БСП)¶
http://1c-kod.ru/topic/18
https://master1c8.ru/biblioteka-standartnh-podsistem/podsistema-svoystva-bsp/
Подключение дополнительных реквизитов (БСП)¶
источник: http://1c-kod.ru/topic/18
1) В нашем объекте добавляем табличную часть "ДополнительныеРеквизиты", а точнее копируем ее из другого существующего справочника или документа, например, из справочника Пользователи, который изначально находится в составе конфигурации БСП.
2) На форме элемента нашего объекта добавляем группу с наименованием "ГруппаДополнительныеРеквизиты". Именно в этой группе и будет отображаться интерфейс дополнительных реквизитов.
3) В справочнике "НаборыДополнительныхРеквизитовИСведений" добавляем новый предопределенный элемент по шаблону - Справочник_Склады (если наш объект это справочник и называется он "Склады"). То есть смотрим на существующие предопределенные элементы и добавляем необходимый аналогичным образом.
4) В Плане видов характеристик "ДополнительныеРеквизитыИСведения" добавляем тип нашего объекта, если необходим такой тип для созданий дополнительных реквизитов.
5) В модуле формы элемента нашего объекта размещаем следующие куски кода:
В процедуре ПриСозданииНаСервере добавляем:
// Обработчик подсистемы "Свойства" ДополнительныеПараметры = Новый Структура; ДополнительныеПараметры.Вставить("Объект", Объект); ДополнительныеПараметры.Вставить("ИмяЭлементаДляРазмещения", "ГруппаДополнительныеРеквизиты"); УправлениеСвойствами.ПриСозданииНаСервере(ЭтотОбъект, ДополнительныеПараметры); // Конец СтандартныеПодсистемы.Свойства
В процедуре ПриЧтенииНаСервере добавляем:
// СтандартныеПодсистемы.Свойства УправлениеСвойствами.ПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект); // Конец СтандартныеПодсистемы.Свойства
В процедуре ОбработкаПроверкиЗаполненияНаСервере добавляем:
// СтандартныеПодсистемы.Свойства УправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтаФорма, Отказ, ПроверяемыеРеквизиты, Объект); // Конец СтандартныеПодсистемы.Свойства
В процедуре ПередЗаписьюНаСервере добавляем:
// СтандартныеПодсистемы.Свойства УправлениеСвойствами.ПередЗаписьюНаСервере(ЭтаФорма, ТекущийОбъект); // Конец СтандартныеПодсистемы.Свойства
Добавляем следующие процедуры:
///////////////////////////////////////////////////////////////////// // ПРОЦЕДУРЫ ПОДСИСТЕМЫ "СВОЙСТВ" &НаКлиенте Процедура Подключаемый_СвойстваВыполнитьКоманду(ЭлементИлиКоманда, НавигационнаяСсылка = Неопределено, СтандартнаяОбработка = Неопределено) УправлениеСвойствамиКлиент.ВыполнитьКоманду(ЭтотОбъект, ЭлементИлиКоманда, СтандартнаяОбработка); КонецПроцедуры &НаСервере Процедура ОбновитьЭлементыДополнительныхРеквизитов() Экспорт УправлениеСвойствами.ОбновитьЭлементыДополнительныхРеквизитов(ЭтотОбъект, РеквизитФормыВЗначение("ФизическоеЛицо")); КонецПроцедуры
Не используется
-ПРОЦЕДУРЫ ПОДСИСТЕМЫ "СВОЙСТВ"
&НаКлиенте
Процедура Подключаемый_РедактироватьСоставСвойств()
УправлениеСвойствамиКлиент.РедактироватьСоставСвойств(ЭтаФорма, Объект.Ссылка);
КонецПроцедуры
&НаСервере
Процедура ОбновитьЭлементыДополнительныхРеквизитов()
УправлениеСвойствами.ОбновитьЭлементыДополнительныхРеквизитов(ЭтаФорма, РеквизитФормыВЗначение("Объект"));
КонецПроцедуры-
6) И еще один важный момент: у справочника "НаборыДополнительныхРеквизитовИСведений" есть реквизит Используется. Для нашего созданного предопределенного элемента (см. пункт 3) необходимо установить значение Истина для этого реквизита. Но в пользовательском режиме 1С:Предприятие это не получится сделать, потому что этого реквизита нет на форме. Но можно воспользоваться стандартной обработкой "Групповое изменение реквизитов", где выбрать справочник "НаборыДополнительныхРеквизитовИСведений", сделать отбор по нашему созданному предопределенному элементу и установить значение Истина для реквизита "Используется". Примечание: если в обработке "Групповое изменение реквизитов" нет для выбора справочника "НаборыДополнительныхРеквизитовИСведений", то необходимо в настройке "Дополнительные параметры" включить галку "Показывать служебные реквизиты".