Механизм дополнительных реквизитов и сведений, реализованный в Библиотеке стандартных подсистем (БСП), является одним из самых мощных инструментов для кастомизации конфигураций 1С без внесения радикальных изменений в структуру метаданных. Однако пользователи и разработчики часто сталкиваются с ограничением: при создании нового дополнительного сведения в режиме «1С:Предприятие» в списке доступных типов данных отсутствуют пользовательские справочники. Разберем подробно, как преодолеть это ограничение и интегрировать свой объект в общую экосистему свойств.
Прежде чем переходить к технической реализации, проанализируем ситуацию. Дополнительные сведения (в отличие от реквизитов) хранятся не в самом объекте (например, документе ПлатежноеПоручение), а в отдельном регистре сведений ДополнительныеСведения. Связующим звеном выступает План видов характеристик (ПВХ) ДополнительныеРеквизитыИСведения. Именно этот объект определяет, данные каких типов мы можем записывать в характеристики.
Рассмотрим ситуацию: нам необходимо добавить к документу новое сведение, значением которого будет ссылка на наш созданный справочник, например, ТранспортныеСредства. В пользовательском режиме стандартный список типов ограничен строками, числами, датами и набором предопределенных справочников. Чтобы наш справочник появился в этом списке, нам придется поработать в конфигураторе.
Это классический способ, который требует возможности редактирования конфигурации. Если ваша информационная база находится на поддержке, необходимо разрешить изменения для конкретных объектов.
ДополнительныеРеквизитыИСведения.СправочникСсылка.ТранспортныеСредства) и установим напротив него флаг.Значение. Его тип обычно связан с типом ПВХ автоматически («Характеристика.ДополнительныеРеквизитыИСведения»), но убедиться в этом не будет лишним.После этих действий в режиме «1С:Предприятие» при создании нового сведения для документа ПлатежноеПоручение в окне выбора типа появится наш справочник. Теперь мы можем выбирать конкретные элементы этого справочника в качестве значений сведений.
Проанализируем современный подход, который позволяет избежать снятия основной конфигурации с поддержки. Долгое время расширение типов Плана видов характеристик было невозможно, однако в актуальных версиях платформы этот функционал реализован.
ДополнительныеРеквизитыИСведения.Обратите внимание: При использовании расширений крайне важно следить за тем, чтобы типы в расширении соответствовали типам в основной конфигурации, иначе при обновлении БСП механизм сопоставления типов может отработать некорректно, что приведет к потере видимости данных в интерфейсе.
Мало просто добавить возможность выбора типа. Нам нужно, чтобы в списках документов или в отчетах на базе СКД мы могли обращаться к реквизитам нашего справочника «через точку». Рассмотрим, как это настроить:
Выясним причину, по которой сведения могут не отображаться. Для этого необходимо зайти в справочник НаборыДополнительныхРеквизитовИСведений. Найдем там группу, соответствующую нашему документу (например, «Документы -> Платежное поручение»). Убедимся, что созданное нами сведение добавлено именно в этот набор.
В самом документе в метаданных на закладке «Характеристики» настраиваются связи между справочником наборов, владельцем (самим документом) и регистром сведений. В типовых конфигурациях это уже настроено, но если вы добавляете механизм свойств в самописный документ, используйте следующие параметры:
ПланВидовХарактеристик.ДополнительныеРеквизитыИСведенияСсылкаНаименованиеТипЗначенияРегистрСведений.ДополнительныеСведенияОбъектСвойствоЗначениеПосмотрим на пример того, как программно установить значение нашего нового сведения, используя методы БСП. Это часто требуется при импорте данных или автоматическом заполнении.
// Подготовим структуру для записи значения
ТаблицаСвойств = Новый ТаблицаЗначений;
ТаблицаСвойств.Колонки.Добавить("Свойство", Новый ОписаниеТипов("ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения"));
ТаблицаСвойств.Колонки.Добавить("Значение");
НоваяСтрока = ТаблицаСвойств.Добавить();
НоваяСтрока.Свойство = СсылкаНаНашеСвойство; // Ссылка из ПВХ
НоваяСтрока.Значение = СсылкаНаЭлементНашегоСправочника;
// Выполняем запись через типовой метод БСП
УправлениеСвойствами.ЗаписатьЗависимыеСвойства(ОбъектДокумента.Ссылка, ТаблицаСвойств);
Метод ЗаписатьЗависимыеСвойства из общего модуля УправлениеСвойствами автоматически обработает запись в регистр ДополнительныеСведения, соблюдая все правила целостности данных.
Если создание отдельного справочника в конфигураторе не является строго обязательным, разберем более простой путь. При создании дополнительного сведения в режиме «1С:Предприятие» можно выбрать тип «Дополнительное значение».
В этом случае система использует стандартный иерархический справочник ЗначенияСвойствОбъектов. Для каждого отдельного сведения вы сможете создать свой список значений прямо в пользовательском режиме. Это решение идеально подходит, если справочник не имеет специфических реквизитов и служит просто для выбора значения из предопределенного списка. Это позволяет оставить конфигурацию на полной поддержке и не использовать расширения.
Подведем итог: выбор метода зависит от ваших требований к структуре данных. Если нужен полноценный справочник с собственными реквизитами и логикой — используйте модификацию ПВХ через расширение. Если достаточно простого списка — выбирайте тип «Дополнительное значение».