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