К статье
Практический материал

Документы и Печать · 10 мин

Как получить связанные документы в 1С

Как найти связанные документы в 1С: панель «Связанные документы», структура подчинённости, критерии отбора и запросы на языке 1С для разработчиков.

Связанные документы в 1С — это документы, которые образуют цепочку хозяйственной операции: заказ покупателя, реализация товаров, счёт-фактура, оплата. Программа хранит связи между ними и позволяет быстро посмотреть всю цепочку, не перебирая журналы вручную. Это нужно и бухгалтеру при сверке, и менеджеру при проверке исполнения заказа, и разработчику при построении отчётов.

Способ получения связей зависит от задачи. Обычному пользователю достаточно встроенной панели «Связанные документы» или отчёта «Структура подчинённости». Разработчику, которому нужны связи программно — для отчёта, обработки или обмена, — потребуются критерии отбора, запросы к реквизитам-основаниям или анализ движений по регистрам.

Ниже разобраны оба подхода: пользовательский (без программирования) и программный (через встроенный язык 1С), а также типичные ошибки и способы проверить, что цепочка документов найдена полностью.

Что считается связанным документом в 1С

Документы связываются между собой двумя основными механизмами. Первый — ввод на основании: когда из заказа создают реализацию, в реквизите нового документа сохраняется ссылка на документ-основание. Второй — движения по регистрам: один документ может изменять состояние взаиморасчётов или резервов, созданных другим документом, и это тоже формирует связь.

Какие именно связи видит пользователь, определяется настройками конфигурации. В типовых решениях (1С:Бухгалтерия, Управление торговлей, ERP) разработчики заранее описали состав связанных документов через критерии отбора и свойство «Вводится на основании» в конфигураторе. Если связь не настроена в конфигурации, стандартная панель её не покажет — даже если логически документы относятся к одной сделке.

Как посмотреть связанные документы через интерфейс

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

Из панели можно открыть любой документ двойным щелчком, создать новый документ на основании текущего или перейти к полному дереву связей. Если кнопки «Связанные документы» нет, проверьте меню «Ещё» — в некоторых формах она скрыта туда, а в старых конфигурациях на обычных формах аналогичная функция вызывается через кнопку «Структура подчинённости» или пункт меню «Перейти».

Отчёт «Структура подчинённости»

Отчёт показывает связи в виде дерева: вверху родительский документ, ниже — все введённые на его основании. В типовых конфигурациях он доступен из формы документа и из общего списка отчётов. Дерево удобно тем, что видно сразу всю цепочку сделки, включая «внуков» — документы, введённые на основании дочерних.

Обратите внимание: структура подчинённости строится только по реквизитам оснований. Оплата, зарегистрированная без ссылки на заказ (например, платёж введён вручную и лишь распределён по сделке), в дереве может не отобразиться, хотя по смыслу относится к цепочке.

Как найти цепочку документов в интерфейсе
  1. 1
    Откройте исходный документ, например заказ покупателя
  2. 2
    Нажмите «Связанные документы» в командной панели или в меню «Ещё»
  3. 3
    Просмотрите сгруппированный список и откройте нужный документ
  4. 4
    Для полной картины откройте «Структуру подчинённости» и разверните дерево
  5. 5
    Сверьте суммы и статусы документов в цепочке

Программное получение связанных документов

Для отчётов, обработок и интеграций связи получают встроенным языком. Есть три рабочих подхода, и выбор зависит от того, как именно документы связаны в вашей конфигурации.

Через критерии отбора

Если в конфигурации настроен критерий отбора типа «Связанные документы», это самый надёжный способ — он учитывает и основания, и другие реквизиты связи, описанные разработчиком конфигурации:

МассивСвязанных = КритерииОтбора.СвязанныеДокументы.Найти(ДокументСсылка);

Для Каждого Док Из МассивСвязанных Цикл

Сообщить(Строка(Док));

КонецЦикла;

Метод возвращает массив ссылок на документы, удовлетворяющие критерию. Учтите, что состав критерия фиксирован в конфигураторе: если нужный вид документов туда не включён, метод его не вернёт.

Запросом по реквизиту «Основание»

Когда известно, по какому реквизиту документы ссылаются друг на друга, прямой запрос даёт больше контроля — можно отобрать только проведённые, только определённого вида, с нужными суммами:

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ

| РеализацияТоваровУслуг.Ссылка КАК Документ

|ИЗ

| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг

|ГДЕ

| РеализацияТоваровУслуг.ЗаказПокупателя = &Основание

| И РеализацияТоваровУслуг.Проведен";

Запрос.УстановитьПараметр("Основание", ЗаказСсылка);

Результат = Запрос.Выполнить().Выгрузить();

Имя реквизита-основания в разных конфигурациях отличается: «ЗаказПокупателя», «ДокументОснование», «Основание». Точное имя смотрите в конфигураторе в свойствах документа или через «Синтакс-помощник».

Через ввод на основании

Если нужно построить дерево «вверх» — от документа к его основаниям, — перебирают реквизиты составного типа, которые могут содержать ссылки на другие документы. Универсального метода «дай все основания» в платформе нет, поэтому на практике либо перечисляют известные реквизиты, либо анализируют метаданные: у каких документов в составе оснований указан текущий тип.

bsl
// Поиск документов, введённых на основании текущего, через метаданные
Для Каждого МетаДок Из Метаданные.Документы Цикл
    Если МетаДок.ВводитсяНаОсновании.Содержит(Метаданные.НайтиПоТипу(ТипЗнч(Основание))) Тогда
        // строим запрос к документу этого вида
    КонецЕсли;
КонецЦикла;

Как выбрать подходящий способ

Для разовой проверки пользователем всегда начинайте с интерфейса — это быстрее и безопаснее. Программные методы оправданы, когда связи нужны массово: в отчёте по незакрытым заказам, в обработке сверки, при выгрузке во внешнюю систему.

Маршрут решения

Как выбрать способ получения связей

Нужно один раз проверить цепочку по сделкеОткройте документ и используйте «Связанные документы» или «Структуру подчинённости»
Связи нужны в отчёте или обработке и критерий отбора настроенИспользуйте КритерииОтбора.СвязанныеДокументы.Найти()
Нужен гибкий отбор по условиям (проведённые, суммы, период)Пишите запрос по реквизиту-основанию с параметрами
В конфигурации связи не описаны, а документы связаны логическиАнализируйте движения по регистрам взаиморасчётов или добавьте свой критерий отбора

Проверка результата и ограничения

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

Учитывайте помеченные на удаление и непроведённые документы: запрос с условием «Проведен» их отфильтрует, а критерий отбора может вернуть. Для сверки с учётом это критично — непроведённая реализация не формирует задолженности, но в цепочке отображается.

Контрольные точки

Как проверить полноту цепочки

Совпадение со списком в интерфейсе
Норма

Запрос и панель «Связанные документы» дают одинаковый набор

Тревожный признак

Программный список короче — не охвачены часть реквизитов связи

Статусы документов
Норма

Ясно, какие документы проведены, а какие помечены

Тревожный признак

В выборке смешаны проведённые и помеченные без разделения

Суммы по цепочке
Норма

Сумма реализаций сходится с суммой заказа с учётом частичных отгрузок

Тревожный признак

Суммы не бьются — возможны корректировки, не попавшие в выборку

Типичные ошибки и риски

Самая частая ошибка — предположение, что все связи хранятся в одном реквизите. В типовых конфигурациях реализация может ссылаться на заказ, счёт-фактура — на реализацию, корректировка — на исходную реализацию, и у каждого вида своё имя реквизита. Запрос по одному реквизиту даст неполную картину.

Вторая ошибка — изменение или удаление документов цепочки без анализа связей. Удаление основания при наличии подчинённых документов разрывает цепочку: ссылки в дочерних документах станут битыми или потеряют смысл для отчётности. Перед удалением всегда открывайте структуру подчинённости и оценивайте последствия.

Типичные ошибки
01
Поиск связей только по одному реквизиту — часть цепочки теряется
02
Игнорирование помеченных на удаление документов в сверке — суммы не сходятся
03
Удаление основания без проверки подчинённых — битые ссылки в дочерних документах
04
Ожидание, что оплата без ссылки на сделку попадёт в структуру подчинённости — такие документы видны только через регистры взаиморасчётов
Итог

Что важно запомнить

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

Частые вопросы

Почему в панели «Связанные документы» не виден платёж по сделке?

Панель показывает связи, настроенные в конфигурации, — в основном по реквизитам оснований. Если платёж введён без ссылки на заказ или счёт, формально он не связан с документом. Такие документы ищите через отчёты по взаиморасчётам с отбором по контрагенту и договору.

Как найти документ-основание, если смотрю на подчинённый документ?

Откройте документ и посмотрите поле «Основание» (или аналогичное по смыслу) в форме. Программно — прочитайте значение соответствующего реквизита через ссылку: ДокументОбъект.ДокументОснование или обращение к реквизиту ссылки в запросе.

Можно ли получить связанные документы за период сразу для многих документов?

Да, запросом с условием по дате и соединением таблиц документов по реквизиту-основанию. Например, выбрать все реализации за месяц и левым соединением подтянуть их заказы. Это стандартный приём для отчётов по исполнению заказов.

Что делать, если в конфигурации нет критерия отбора «Связанные документы»?

Используйте прямые запросы по реквизитам-основаниям — они работают независимо от критериев. Если связи нужны регулярно и в интерфейсе, попросите разработчика добавить критерий отбора в конфигураторе: это не требует доработки документов, только настройки состава критерия.

Видны ли связанные документы из других периодов и закрытых месяцев?

Да, панель связей и запросы показывают документы независимо от периода и закрытия месяца. Ограничение возможно только по правам доступа: если у пользователя нет прав на просмотр определённого вида документов, они могут не отображаться или открываться с ошибкой доступа.

Как проверить, нет ли «оборванных» цепочек — заказов без реализаций?

Постройте запрос: выберите проведённые заказы за период и левым соединением присоедините реализации по реквизиту основания, оставив строки, где реализация есть NULL. В типовых конфигурациях аналогичную задачу решают штатные отчёты по состоянию исполнения заказов.