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