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