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