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

Разработка и Конфигурация · 10 мин

Структура подчиненности документа в 1С: как добавить связь

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

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

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

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

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

В конфигурациях на базе БСП структура подчиненности строится на трёх элементах. Первый — критерий отбора, который объединяет документы по общему реквизиту (обычно это реквизит типа «ДокументСсылка», например «Основание» или «ЗаказПокупателя»). Второй — общий модуль, программно формирующий дерево связей для отчёта «СтруктураПодчиненности». Третий — сам отчёт, который выводит дерево пользователю.

Критерий отбора работает так: вы указываете, какие реквизиты каких объектов участвуют в поиске. Когда пользователь открывает структуру подчиненности из документа, система ищет все объекты, у которых в указанных реквизитах стоит ссылка на текущий документ, а также объекты, на которые ссылается сам документ. Из этих данных строится дерево «вверх» (основания) и «вниз» (подчинённые).

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

Добавление документа в типовую структуру подчиненности

В конфигурациях на БСП (ERP, УТ, КА, БП последних редакций) основная точка входа — критерий отбора, чаще всего называющийся «СвязанныеДокументы». Откройте конфигуратор, найдите в дереве метаданных ветку «Общие → Критерии отбора» и откройте его состав.

Порядок действий: в свойствах критерия на закладке «Состав» найдите свой тип документа и отметьте реквизит, через который он связан с другими документами. Например, если вы создали документ «АктВыполненныхРабот» с реквизитом «ЗаказКлиента», включите этот реквизит в состав критерия. Одновременно убедитесь, что тип вашего документа входит в «Тип» критерия — иначе сам документ не сможет быть «вершиной» поиска.

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

Порядок добавления документа
  1. 1
    Создайте резервную копию информационной базы или работайте на копии
  2. 2
    Откройте конфигуратор, включите возможность изменения конфигурации (поддержка)
  3. 3
    Найдите критерий отбора «СвязанныеДокументы» (Общие → Критерии отбора)
  4. 4
    В тип критерия добавьте новый вид документа
  5. 5
    В составе критерия отметьте реквизит связи нового документа
  6. 6
    Проверьте общий модуль формирования связей при необходимости
  7. 7
    Обновите конфигурацию базы данных (F7)
  8. 8
    Проверьте отображение на тестовой цепочке документов

Настройка реквизита связи и ввод на основании

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

Чтобы связь заполнялась автоматически, настройте ввод на основании. В палитре свойств документа-основания укажите его в поле «Вводится на основании» нет — наоборот: у документа-основания в свойстве «Является основанием для» отметьте подчинённый документ, а у подчинённого в «Вводится на основании» — основание. Затем в модуле объекта подчинённого документа опишите обработку заполнения: процедуру «ОбработкаЗаполнения», где реквизит основания заполняется из параметра «Основание».

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

Если конфигурация без БСП: ручной вариант

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

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

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

Проверка результата

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

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

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

Как проверить результат

Новый документ в дереве основания
Норма

Отображается как подчинённый элемент

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

Отсутствует — проверить состав критерия и заполнение реквизита

Основание из формы нового документа
Норма

Видно в структуре выше документа

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

Не видно — тип документа не добавлен в тип критерия

Создание на основании
Норма

Реквизит связи заполняется автоматически

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

Реквизит пуст — проверить ОбработкаЗаполнения

Типичные ошибки и ограничения

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

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

Типичные ошибки
01
Реквизит связи не заполняется при программном создании документов — часть цепочек теряется из структуры
02
Тип документа не добавлен в свойство «Тип» критерия — связь видна только с одной стороны
03
Изменение типового критерия без расширения — сложности при обновлении конфигурации
04
Использование строкового реквизита вместо ссылки — связь технически невозможна
05
Забыто обновление конфигурации базы данных — изменения не видны пользователям

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

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

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

Почему документ в структуре подчиненности виден, но без связей?

Чаще всего реквизит связи у конкретного экземпляра документа пуст. Откройте документ и проверьте поле основания. Если документы создаются обменом или обработкой, доработайте код заполнения реквизита.

Можно ли связать документ с несколькими основаниями?

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

Влияет ли добавление в критерий отбора на производительность?

Умеренно. Поиск по критерию выполняет запросы по всем включённым реквизитам. Чем больше документов и реквизитов в составе, тем дольше открывается структура подчиненности на больших базах. Не включайте в критерий лишние объекты «про запас».

Как добавить связь через расширение, не снимая конфигурацию с поддержки?

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

Что делать, если связь нужна между документом и справочником?

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

Итог

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

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