Это совсем не сложно но в первый раз может отнять пару часов времени
Я буду показывать на примере Бухгалтерии версии (3.0.43.152)
Есть у меня новый справочник "я_ПодразделенияОрганизаций" вот в него и будем добавлять
1. К новому справочнику нам необходимо добавить табличную часть для хранения доп.
реквизитов. Идем в номенклатуру - Копировать - Вставить
2. Далее в справочнике НаборыДополнительныхРеквизитовИСведений добавляем
предопределенный элемент Справочник_я_ПодразделенияОрганизаций
3. Включаем тип этого справочника в состав ПВХ ДополнительныеРеквизитыИСведения
4. Заполняем Характеристики в справочнике я_ПодразделенияОрганизаций
5. Идем в Общие - Определяемые типы - ВладелецДополнительныхСведений и ставим там галочку
6. В форму элемента нашего справочника переносим стандартный код и создаем группу "ГруппаДополнительныеРеквизиты"
&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) // Обработчик подсистемы "Свойства" ДополнительныеПараметры = Новый Структура; ДополнительныеПараметры.Вставить("Объект", Объект); ДополнительныеПараметры.Вставить("ИмяЭлементаДляРазмещения", "ГруппаДополнительныеРеквизиты"); УправлениеСвойствами.ПриСозданииНаСервере(ЭтаФорма, ДополнительныеПараметры); КонецПроцедуры &НаСервере Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) // Обработчик подсистемы "Свойства" УправлениеСвойствами.ПередЗаписьюНаСервере(ЭтаФорма, ТекущийОбъект); КонецПроцедуры &НаКлиенте Процедура ПриОткрытии(Отказ) // СтандартныеПодсистемы.Свойства УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект); // Конец СтандартныеПодсистемы.Свойства КонецПроцедуры &НаКлиенте Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) // Подсистема "Свойства" Если УправлениеСвойствамиКлиент.ОбрабатыватьОповещения(ЭтаФорма, ИмяСобытия, Параметр) Тогда ОбновитьЭлементыДополнительныхРеквизитов(); УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект); КонецЕсли; КонецПроцедуры &НаСервере Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты) // СтандартныеПодсистемы.Свойства УправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтаФорма, Отказ, ПроверяемыеРеквизиты); // Конец СтандартныеПодсистемы.Свойства КонецПроцедуры // СтандартныеПодсистемы.Свойства &НаКлиенте Процедура ОбновитьЗависимостиДополнительныхРеквизитов() УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект); КонецПроцедуры &НаКлиенте Процедура Подключаемый_ПриИзмененииДополнительногоРеквизита(Элемент) УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект); КонецПроцедуры // Конец СтандартныеПодсистемы.Свойства&НаСервере Процедура ОбновитьЭлементыДополнительныхРеквизитов() УправлениеСвойствами.ОбновитьЭлементыДополнительныхРеквизитов(ЭтаФорма, РеквизитФормыВЗначение("Объект")); КонецПроцедуры &НаСервере Процедура ПриЧтенииНаСервере(ТекущийОбъект) // СтандартныеПодсистемы.Свойства УправлениеСвойствами.ПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект); // Конец СтандартныеПодсистемы.Свойства КонецПроцедуры
7. Сохраняем обновляем конфу и запускаем 1С
8. Ну и последнее. Нам необходимо выполнить обновление идентификаторов метаданных
и выставить значение реквизита Используется = истина для созданного нами предопределенного элемента.
Хотя в настройках конфы у меня стоит что значение заполнения = истина в предопределяемом так не вышло. Пришлось накидать обработку для этого дела, ну и заодно добавил туда обновление идентификаторов метаданных