Как отобразить нетиповой документ в отчете «Связанные документы»?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Понимание механизма работы структуры подчиненности

Прежде чем приступать к настройке, проанализируем, как платформа и Библиотека стандартных подсистем (БСП) строят дерево связей. Система не сканирует всю базу данных хаотично. Она опирается на специальный объект метаданных — Критерий отбора. Чаще всего он называется СвязанныеДокументы.

Когда вы открываете отчет из конкретного документа (например, из «Платежного поручения»), система выполняет поиск всех объектов, которые указаны в составе критерия отбора и имеют ссылку на ваше «Платежное поручение». Если связь односторонняя или не описана в метаданных критерия, документ в отчете не появится.

Шаг 1. Настройка критерия отбора «СвязанныеДокументы»

Это самый важный этап. Разберем его по шагам:

  1. Откроем конфигуратор и найдем ветку Общие -> Критерии отбора -> СвязанныеДокументы.
  2. Перейдем на закладку «Данные». Здесь определяется «Тип», по которому будет производиться поиск. Убедимся, что ваш нетиповой документ и документ, из которого вы хотите видеть связь (например, «Заявка» или «Платежка»), включены в этот составной тип данных.
  3. Перейдем на закладку «Состав». Это критический момент. Здесь нужно отметить галочками те реквизиты документов, в которых хранятся ссылки на другие объекты цепочки.

Важный нюанс: Чтобы из «Платежки» был виден ваш нетиповой документ, в составе критерия отбора должен быть отмечен реквизит вашего нетипового документа, имеющий тип «Платежка» (или содержащий её в составном типе). Если ваш документ ссылается только на «Заявку», то из «Заявки» вы его увидите, а из «Платежки» — нет, так как прямой ссылки в метаданных не зафиксировано.

Шаг 2. Использование общих команд

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

Разберем процедуру включения:

  1. Найдем в метаданных Общие -> Общие команды -> СвязанныеДокументы.
  2. В свойстве «Тип параметра команды» добавим наш нетиповой документ.
  3. После этого кнопка должна появиться в командной панели формы (если там настроено автоматическое отображение стандартных команд).

Шаг 3. Интеграция с Библиотекой стандартных подсистем (БСП)

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

Проанализируем модуль менеджера вашего документа. Для корректной работы подсистемы «Связанные документы» в модуле менеджера может потребоваться добавление обработчика формирования команд. Рассмотрим пример кода:


Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
    // Здесь могут быть настройки печати, но БСП также может искать настройки связанных документов
КонецПроцедуры

Процедура ПриОпределенииНастроекОбработкиСсылок(Настройки) Экспорт
    // Настройки обработки ссылок для корректного перехода
КонецПроцедуры

Также проверьте общий модуль СвязанныеДокументыПереопределяемый. В нем существует процедура ПриОпределенииОбъектовСПоддержкойСвязанныхДокументов. Если логика конфигурации жестко ограничивает список объектов, ваш документ нужно зарегистрировать там:


Процедура ПриОпределенииОбъектовСПоддержкойСвязанныхДокументов(СписокОбъектов) Экспорт
    СписокОбъектов.Добавить(Метаданные.Документы.МойНетиповойДокумент);
КонецПроцедуры

Шаг 4. Программное создание связей

Если ваш документ создает платежки программно, убедитесь, что вы заполняете реквизиты связи. В типовых решениях «Платежное поручение» часто имеет табличную часть РасшифровкаПлатежа или реквизит ДокументОснование. Чтобы отчет «видел» связь, запись должна быть физически создана в базе данных.

Рассмотрим пример программного заполнения связи при создании платежки:


НоваяПлатежка = Документы.ПлатежноеПоручение.СоздатьДокумент();
НоваяПлатежка.Дата = ТекущаяДата();
// Заполнение основных реквизитов...

// Установка связи:
НоваяПлатежка.ДокументОснование = СсылкаНаМойДокумент;

// Если связь в ТЧ:
НоваяСтрока = НоваяПлатежка.РасшифровкаПлатежа.Добавить();
НоваяСтрока.ДокументОбъект = СсылкаНаМойДокумент;
// ... заполнение суммы и прочего

НоваяПлатежка.Записать(РежимЗаписиДокумента.Проведение);

Шаг 5. Проверка прав доступа

Часто проблема кроется не в коде, а в правах. Если документ не отображается у пользователя, проанализируем следующие моменты:

Резюме решения

Для того чтобы нетиповой документ отображался в структуре подчиненности из «Платежки», мы должны обеспечить выполнение трех условий:

  1. Наличие ссылки: Либо в платежке есть реквизит, указывающий на ваш документ, либо в вашем документе есть реквизит, указывающий на платежку.
  2. Регистрация в критерии отбора: Этот реквизит должен быть отмечен в составе критерия СвязанныеДокументы.
  3. Программная регистрация: Объект должен быть включен в состав команд БСП через метаданные или переопределяемые модули.

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

← На главную