Как добавить дополнительные сведения к документу, который отсутствует в списке настроек в 1С:БСО КОРП?

Программист 1С v8.3 (Управляемые формы) Бухгалтерский учет Промышленность, строительство и АПК
← На главную

При работе с отраслевыми решениями, такими как 1С:Бухгалтерия строительной организации КОРП (БСО), пользователи и разработчики часто сталкиваются с ситуацией, когда типовой функционал Библиотеки стандартных подсистем (БСП) не видит специфические отраслевые документы. Одной из таких задач является добавление дополнительных сведений к документу, которого просто нет в списке выбора при настройке.

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

Различие между дополнительными реквизитами и сведениями

Прежде чем переходить к техническим шагам, разберем важное различие, которое часто путает начинающих разработчиков. В БСП существует два механизма расширения данных объекта:

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

В нашей задаче речь идет именно о сведениях, поэтому отсутствие табличной части в документе не является препятствием.

Причина отсутствия документа в списке

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

  1. План видов характеристик (ПВХ) «Дополнительные реквизиты и сведения». Тип нашего документа должен быть включен в тип значения характеристик этого ПВХ.
  2. Справочник «Наборы дополнительных реквизитов и сведений». В этом справочнике хранятся настройки для каждого объекта. Тип ссылки нашего документа должен быть включен в типы реквизита Владелец (или родителя, в зависимости от версии БСП).
  3. Предопределенные элементы. Часто для типовых документов в справочнике наборов уже созданы предопределенные элементы, соответствующие метаданным.

Решение проблемы через расширение конфигурации

Рассмотрим самый правильный и «чистый» способ решения задачи — использование расширения. Это позволит нам внести изменения в метаданные, не нарушая возможность автоматического обновления основной конфигурации.

Шаг 1. Подготовка расширения

Создадим новое расширение или воспользуемся существующим. Нам необходимо добавить в него следующие объекты из основной конфигурации:

Шаг 2. Изменение типов метаданных

Разберем, что именно нужно изменить в расширении. В свойствах ПВХ ДополнительныеРеквизитыИСведений найдем поле «Тип значения характеристик». Нам нужно добавить в этот составной тип наш документ. Аналогичную операцию необходимо проделать для реквизита, определяющего владельца в справочнике НаборыДополнительныхРеквизитовИСведений.

Шаг 3. Регистрация команды

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

Альтернативный способ: Программное создание набора

Если по каким-то причинам изменение типов в ПВХ через расширение не привело к появлению документа в списке (например, из-за особенностей кэширования или старой версии БСП), можно прибегнуть к «хитрости», которую успешно применил автор темы. Мы можем принудительно создать элемент в справочнике наборов для нашего документа программным путем.

Проанализируем пример кода, который можно запустить через внешнюю обработку:


// Создаем новый набор для документа, который не виден в списке
СпрНабор = Справочники.НаборыДополнительныхРеквизитовИСведений.СоздатьЭлемент();
СпрНабор.Наименование = "Приемка строительных работ, услуг (Дополнительные сведения)";
// Указываем владельца, если это позволяет тип реквизита в текущей конфигурации
// Если тип не позволяет, его все равно придется расширить в метаданных
СпрНабор.Записать();

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

Как проверить результат?

После проведения всех манипуляций выполним следующие действия для проверки:

  1. Зайдем в раздел Администрирование — Общие настройки — Дополнительные реквизиты и сведения.
  2. Перейдем в гиперссылку «Дополнительные сведения».
  3. В левой части окна найдем наш документ. Теперь он должен быть виден.
  4. Добавим новое сведение (например, «Ответственный контролер» или «Статус проверки»).
  5. Откроем сам документ Приемка строительных работ, услуг и убедимся, что кнопка дополнительных сведений активна и позволяет записывать значения.

Важно помнить, что данные дополнительных сведений хранятся в регистре ДополнительныеСведения. Выясним, как они там выглядят: измерение Объект будет содержать ссылку на ваш документ, измерение Свойство — ссылку на элемент ПВХ, а ресурс Значение — выбранное вами значение сведения.

Используя данный подход через расширения, мы сохраняем типовую конфигурацию на поддержке и при этом получаем полный доступ к механизмам БСП для любых отраслевых объектов.

← На главную