1С БСП. Дополнительные реквизиты и сведения
В этой статье я хотел бы рассказать об архитектуре, использовании и особенностях реализации подсистемы «Свойства» из инструментария разработчика «1С:Библиотека стандартных подсистем» (1С БСП).
Для начала предлагаю разобраться с терминологией 1С БСП: согласно ИТС дополнительные реквизиты и сведения — это свойства. По моему мнению, подсистема «Свойства» (Управление свойствами) — это очень мощный функционал, который позволяет во многих случаях отказаться от снятия конфигурации с поддержки или внесения ненужных изменений и ошибок в конфигурацию.

Архитектура
Описание работы с подсистемой «Свойства» на сайте ИТС 1С является исчерпывающим для типовых конфигураций, но в любом случае, для того, чтобы начать работать со свойствами в любой конфигурации с внедрённым 1С БСП необходимо установить установить константу «Использовать дополнительные реквизиты и сведения» в значение «Истина». После этого мы можем открыть справочник «Наборы дополнительных реквизитов и сведений», который содержит список объектов для которых можно создавать дополнительные реквизиты и сведения. При добавлении через стандартные формы 1С БСП пользователь создаёт новый элемент «Плана видов характеристик», который добавляется в табличную часть элемента.

Дополнительные сведения отличаются от дополнительных реквизитов прежде всего расположением, дополнительные сведения содержатся в отдельном регистре с одноименным названием, а дополнительные реквизиты являются табличной частью объекта, к которому относятся. На рисунке ниже слева-направо изображены: элемент справочника «Наборы дополнительных реквизитов и свойств», элемент плана видов характеристик и список регистра сведений «Дополнительные сведения».

Следующий рисунок изображает пример дополнительного реквизита, слева-направо: элемент справочника «Наборы дополнительных реквизитов и свойств», элемент плана видов характеристик и элемент справочника, в который был добавлен дополнительный реквизит.

Также стоит учитывать, что большая часть объектов метаданных в справочнике «Наборы дополнительных реквизитов и сведений» является предопределённой:

Однако, заполнение этих данных происходит программно, при внедрении 1С БСП или обновлении информационной базы — для этого в общих модулях добавляют процедуру ПриПолученииПредопределенныхНаборовСвойств. Уникальный идентификатор задаётся в явном виде, в т.ч. для того чтобы облегчить процедуры обмена между базами.
С точки зрения интеграции с объектами механизм работы с формами не сильно отличается от аналогичных у других подсистем 1С БСП: из модуля УправлениеСвойствами вызываются процедуры и функции с названиями соответствующими названиям событий для которых они вызываются, например:
Полный список функций и процедур находится в общем модуле УправлениеСвойствами в блоке, озаглавленным: «Процедуры и функции для стандартной обработки дополнительных реквизитов».
Использование
Каждый дополнительный реквизит или свойство содержит поле «Имя», подразумевается, что для программного использования будет использоваться этот реквизит.

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


Пример запроса для получения всех дополнительных свойств:


Примеры получения свойств без запроса:
Особенности реализации
Если с запросами и функциями всё более менее ясно неприятным сюрпризом может стать то, что дополнительный реквизит на форме содержит название, отличающееся от этого реквизита, например, такое:

Чтобы найти реквизит на форме 1С БСП создаёт новые реквизиты формы Свойства_ОписаниеДополнительныхРеквизитов и Свойства_ОписаниеЗависимыхДополнительныхРеквизитов, с помощью них можно установить однозначное соответствие между элементом и значением объекта:

Второй особенностью реализации можно выделить невозможность создания свойства с мутабельным типом, с одной стороны это очевидное ограничение, с другой тип «Список значений» вполне допустим, но только для дополнительного реквизита (у дополнительных сведений невозможность связана с архитектурными ограничениями, так как объект и свойство — это измерения регистра «Дополнительные сведения»). Возможно, отсутствие такого типа связано со сложностями при обмене, а возможно в скором времени это будет реализовано, предлагаю посмотреть на пример такой реализации ниже.
Добавим новый дополнительный реквизит для справочника физические лица «Номера счетов»

Добавляем программно, вторую запись в табличную часть «Дополнительные реквизиты» справочника «Физические лица» с тем же самым свойством:

Немного модифицируем код функции ЗначенияСвойств в общем модуле УправлениеСвойствамиСлужебный:

А также код процедуры ЗаполнитьДополнительныеРеквизитыВФорме в общем модуле УправлениеСвойствами:

Таким образом мы можем сохранять и восстанавливать значения реквизитов, которые, принимают множество значений.
1С дополнительные сведения запись и получение
В 1с дополнительные сведения представляют — это механизм позволяющий хранить дополнительные данные для различных объектов метаданных (справочник, документ и т.п.). Это удобно тем, что не требуется вносить изменений в конфигурацию. В конфигурациях использующих управляемое приложение (Бухгалтерия 3.0, Управление торговлей 11 и т.п.) дополнительные сведения хранятся в регистре ДополнительныеСведения, у него два измерения: Объект — ссылка на объект к которому относится дополнительное сведение, Свойство — идентификатор конкретного сведения, тип план видов характеристик ДополнительныеРеквизитыИСведения.
1с дополнительные сведения в режиме Предприятие
Рассмотрим, как добавить в документе дополнительное сведение. Для примера возьмем конфигурацию Управление торговлей 11, документ Авансовый отчет.
- Откроем любой документ для которого необходимо дополнительное сведение;
- На форме документа нажмем кнопку Открыть дополнительные сведения;

- Откроется форма дополнительных сведений;
- Нажимаем кнопку Все действия -> Изменить состав дополнительных сведений;

- Нажимаем кнопку Добавить -> Новое;
- В открывшемся окне заполняем Наименование свойства и его Тип;

- Жмем Записать и закрыть;
- Теперь снова откроем наш документ и нажмем кнопку Открыть дополнительные сведения;
- В форме 1с дополнительные сведения появится строчка с добавленным свойством. Ему можно задать любое значение заданного типа;
- Данное свойство будет доступно во всех документах Авансовый отчет, для каждого документа можно задать свое значение.
Функция получающая в 1с дополнительные сведения
- Ссылка. Тип: Любая ссылка. Ссылка на объект имеющий дополнительные сведения;
- Свойство. Тип: План видов характеристик ДополнительныеРеквизитыИСведения. Свойство, значение которого для данного объекта мы хотим получить.
1с дополнительные сведения функция программной записи
Данная функция осуществляет программную запись значения в дополнительные сведения объекта по переданному свойству. Предназначена для конфигурации Управление торговлей 11. Возвращает значение Истина в случае успешной записи и Ложь в случае ошибки.
- Объект Тип: Любая ссылка. Ссылка на объект для которого записывается сведение;
- Свойство Тип: План видов характеристик ДополнительныеРеквизитыИСведения. Дополнительное свойство;
- Значение Тип: Произвольный(Задается при создании (редактировании) свойства в плане видов характеристик ДополнительныеРеквизитыИСведения). Значение, которое будет записано в дополнительные сведения.
Если вы еще не знаете, как правильно работать с механизмом дополнительных реквизитов в 1с 8, то прочтите об этом в статье Получить / записать дополнительные реквизиты программно.
Дополнительные реквизиты в 1С:ERP
В конфигурации 1С:ERP существует возможность создавать и редактировать в режиме 1С:Предприятие дополнительные реквизиты различных документов и справочников конфигурации.
Дополнительные реквизиты и сведения объектов делятся на две категории:
- Дополнительные реквизиты – хранятся в самом объекте (в специальной табличной части).
- Дополнительные сведения – предназначены для хранения сведений об объекте, которые не являются неотъемлемой частью объекта.
Добавление дополнительных реквизитов осуществляется опцией НСИ и администрирование – Администрирование – Общие настройки – Дополнительные реквизиты и сведения – Дополнительные реквизиты и сведения.

Рисунок 1 — Добавление дополнительных реквизитов
Назначение новых дополнительных реквизитов и сведений
Для ввода и назначения объектам конфигурации новых дополнительных реквизитов и сведений у пользователей должна быть установлена роль Полные права.
Работа с дополнительными реквизитами и сведениями осуществляется в соответствующих списках: НСИ и администрирование – Администрирование – Общие настройки – Дополнительные реквизиты и сведения – Дополнительные реквизиты и Дополнительные сведения.

Рисунок 2 — Дополнительные реквизиты, дополнительные сведения

Рисунок 3 — Пример дополнительных реквизитов
Для дополнительного реквизита или сведения можно задать список возможных значений на закладке Значения в форме дополнительного реквизита или дополнительного сведения.

Рисунок 4 — Список значений
Процедура добавления дополнительных реквизитов и сведений
Создание дополнительных реквизитов и сведений предусмотрено для видов номенклатуры, характеристик и серий по команде Добавить – Из другого набора.

Рисунок 5 — Добавление реквизита из другого набора
Поддерживаются различные варианты добавления дополнительных реквизитов и сведений (выбор варианта осуществляется в форме Добавление дополнительного реквизита/сведения):
- Копирование общего реквизита, входящего в состав нескольких наборов (видов номенклатуры), и всех его значений – вариант Сделать копию реквизита.

Рисунок 6 — Создание копии реквизита
- Копирование реквизита по образцу (с общим списком значений) – вариант Сделать копию реквизита по образцу (с общим списком значений).

Рисунок 7 — Создание копии реквизита по образцу
- Добавление общего реквизита в набор – вариант Сделать реквизит общим и добавить в набор. Этот вариант подходит для тех случаев, когда реквизит должен быть одинаков для обоих наборов. В этом случае будет возможно отбирать по нему данные разных типов в списках и отчетах.
Создание и добавление дополнительных сведений для видов номенклатуры, характеристик и серий аналогично созданию/добавлению дополнительных реквизитов.
Ведение дополнительных реквизитов и сведений
Ведение дополнительных реквизитов объектов выполняется пользователем конфигурации, имеющим права на изменение самого объекта.
Установка дополнительных сведений, как правило, осуществляется в отдельной форме, которая вызывается из формы объекта командой Дополнительные сведения.

Рисунок — Дополнительные сведения
Настройки 1C:ERP мы осуществляем в рамках услуги Аренда 1С:ERP или осуществляем отдельно поддержку 1С:ERP с привлечением квалифицированных консультантов 1С:ERP.