Back to top

Дополнительные реквизиты и сведения

Опубликовано e-1c@mail.ru - пн, 10/16/2017 - 08:15

В библиотеке стандартных подсистем 1С дополнительные реквизиты и сведения включены и активно применяются. Эти механизмы позволяют добавить дополнительный реквизит к объекту метаданных без изменения типовой конфигурации. В публикации хочу продемонстрировать работу дополнительных реквизитов и сведений, их добавление и получение значений.

Краткое описание механизма дополнительных реквизитов и сведений
Пример добавление дополнительного реквизита вручную вы можете посмотреть в публикации Брутто в ТОРГ12, где добавляется новый реквизит «Коэффициент брутто» в справочнике «Номенклатура». Таким образом можно добавлять реквизиты всех известных типов (число, строка, булево, список значений, ссылки на справочники и т.д.) к распространенным справочникам и документам 1С.

Отличие дополнительного реквизита от дополнительного сведения в том, что Дополнительные реквизиты – список реквизитов, доступных в форме документа или справочника; причем эти реквизиты хранятся в табличной части объекта, к которому они добавлены;
Дополнительные сведения – список значений доступных по дополнительной кнопке; причем доп. сведения хранятся в отдельном регистре.
После ввода дополнительного реквизита или сведения 1С, можно создать подключаемую обработку, где считать введенные дополнительные данные и задать необходимую логику обработки данных, в которой использовать этот реквизит или сведение.

Как получить 1С дополнительные реквизиты и сведения
Для получения дополнительных данных приведу примеры запросов, в которых получу 1С дополнительные реквизиты и сведения.

Для получения дополнительного сведения запрос вида:

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
|	ДополнительныеСведения.Свойство,
|	ДополнительныеСведения.Значение
|ИЗ
|	РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения
|ГДЕ
|	ДополнительныеСведения.Объект = &Объект";
Запрос.УстановитьПараметр("Объект", СсылкаДокумент);

Для получения дополнительного реквизита использую код вида (пример получения коэффициента брутто в ТОРГ12):

Запрос = Новый Запрос;
Запрос.Текст = 
"ВЫБРАТЬ
|	НоменклатураДополнительныеРеквизиты.Свойство,
|	НоменклатураДополнительныеРеквизиты.Значение
|ИЗ
|	Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
|ГДЕ
|	НоменклатураДополнительныеРеквизиты.Свойство = &Свойство
|	И НоменклатураДополнительныеРеквизиты.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", СсылкаДокумент);
Запрос.УстановитьПараметр("Свойство", ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Коэффициент бруто"));

Теперь вы без труда сможете добавить и получить необходимые дополнительные 1С данные без снятия конфигурации 1С с поддержки и изменения типовой конфигурации. Без сомнения, такой инструмент должен быть в арсенале 1С программиста и активно использоваться в работе.