Разработка и Конфигурация · 9 мин
Где хранится структура подчиненности в 1С
Разбираем, где в 1С хранится структура подчиненности документов: критерии отбора, журналы, кнопка на форме, настройка в конфигураторе и типичные проблемы.
Структура подчиненности в 1С — это не отдельный файл и не таблица в базе данных, а вычисляемая на лету связь между документами. Когда вы открываете в документе кнопку «Структура подчиненности», программа не читает заранее сохранённое дерево, а строит его в момент обращения, анализируя критерии отбора и ссылки между объектами. Поэтому вопрос «где она хранится» имеет два ответа: описание правил связи — в конфигурации, а сами связи — в реквизитах документов, которые ссылаются друг на друга.
Понимание этого механизма важно и пользователю, который не видит связанный документ в списке, и разработчику, которому нужно добавить новый документ в цепочку. Ниже разберём, где именно в конфигураторе описывается подчиненность, как программа строит дерево, почему документы иногда «теряются» и как это исправить без риска для данных.
Как устроена подчиненность документов в 1С
В основе механизма лежат обычные ссылочные реквизиты. Документ «Реализация товаров и услуг» содержит реквизит, ссылающийся на «Заказ клиента», счёт-фактура ссылается на реализацию и так далее. Физически эти ссылки хранятся в таблицах документов в базе данных — как значения полей, а не как отдельная структура дерева.
Поверх этих ссылок работают критерии отбора — объекты конфигурации, которые объединяют несколько реквизитов разных документов в один «виртуальный» поиск. Когда вы нажимаете «Структура подчиненности», платформа находит по критериям отбора все документы, где текущий документ указан в реквизитах, и строит иерархию: кто основание, кто введён на основании.
Таким образом, «хранилище» структуры подчиненности распределено: правила — в метаданных конфигурации, данные — в реквизитах конкретных документов, а итоговое дерево существует только в момент его отображения на форме.
Где в конфигураторе описывается структура подчиненности
Откройте конфигуратор и в дереве конфигурации найдите ветку «Общие» → «Критерии отбора». В типовых конфигурациях (УТ, ERP, КА, БП) там есть критерии вроде «СвязанныеДокументы» или аналогичные. Именно этот объект определяет, какие документы попадут в дерево подчиненности.
В свойствах критерия отбора виден его состав: список реквизитов документов, по которым выполняется поиск связей. Например, туда входят реквизиты «ДокументОснование», «ЗаказКлиента», «Основание» разных видов документов. Если ваш новый документ должен отображаться в цепочке, его реквизит-ссылку нужно добавить в состав критерия.
Кроме критериев отбора, на отображение влияет настройка ввода на основании: в свойствах документа на закладке «Ввод на основании» указывается, на основании каких документов он вводится и какие документы могут вводиться на его основании. Эта настройка формирует кнопки «Создать на основании» и штатные связи в типовой логике.
- 1Откройте конфигуратор и ветку «Общие» → «Критерии отбора»
- 2Найдите критерий, отвечающий за связанные документы (в типовых — «СвязанныеДокументы»)
- 3Откройте состав критерия и проверьте, входит ли нужный реквизит вашего документа
- 4Проверьте у документа закладку «Ввод на основании»
- 5Обновите конфигурацию базы данных и проверьте дерево подчиненности в режиме предприятия
Где пользователь видит структуру подчиненности в режиме предприятия
В пользовательском режиме дерево открывается из формы документа. В большинстве типовых конфигураций это кнопка «Структура подчиненности» в командной панели документа — часто она скрыта за кнопкой «Ещё». Откроется отдельная форма с деревом: выше текущего документа — основания, ниже — введённые на его основании.
Дополнительно связанные документы можно увидеть в отчёте «Связанные документы», который в типовых конфигурациях доступен из той же формы. Он показывает связи в виде таблицы или схемы и удобен, когда цепочка длинная — например, заказ → реализация → счёт-фактура → оплата → корректировка.
Если кнопки нет ни в командной панели, ни в «Ещё», проверьте права: у роли пользователя может не быть доступа к отчёту или к общей форме структуры подчиненности. Это частая причина «исчезнувшей» кнопки у отдельных сотрудников, тогда как у администратора она видна.
Проверить заполненность реквизита-ссылки и состав критерия отбора
Проверить роль пользователя и командный интерфейс формы
Проверить права на связанный документ у конкретного пользователя
Почему документ не отображается в структуре подчиненности
Самая частая причина — пустой или неверно заполненный реквизит-ссылка. Если документ создан не «вводом на основании», а вручную или загружен обменом, реквизит основания может быть пустым. Дерево строится по ссылкам, поэтому без ссылки документ в цепочку не попадёт, даже если по смыслу он относится к сделке.
Вторая причина — реквизит не входит в состав критерия отбора. Это типично для самописных документов и документов, добавленных расширением: они существуют, ссылка заполнена, но критерий о них «не знает». Лечится добавлением реквизита в состав критерия в конфигураторе или через расширение.
Третья группа причин — права доступа. При включённом ограничении доступа на уровне записей (RLS) пользователь видит в дереве только те документы, к которым у него есть доступ. Остальные узлы просто не отображаются, и цепочка выглядит «оборванной», хотя в базе она полная.
Как добавить свой документ в структуру подчиненности
Для собственного документа последовательность такая: создайте реквизит типа «ДокументСсылка» на документ-основание (или составной тип, если оснований несколько). Затем откройте состав критерия отбора, отвечающего за связанные документы, и включите туда этот реквизит. После обновления конфигурации документ начнёт отображаться в дереве при заполненной ссылке.
Если типовую конфигурацию нельзя изменять (она на поддержке), используйте расширение: критерии отбора можно дополнять через расширение без снятия конфигурации с поддержки. Это безопасный путь для доработок, который сохраняет возможность штатного обновления.
После изменений проверьте результат на тестовой копии: создайте цепочку документов вводом на основании, откройте структуру подчиненности и убедитесь, что оба направления связи видны — и от основания к подчинённому, и обратно.
Структура подчиненности и обмены данными
При обменах между базами (например, УТ ↔ БП) связи документов переносятся только если сам реквизит-ссылка участвует в обмене и связанный документ тоже выгружается. Если основание не попало в выгрузку, в базе-приёмнике ссылка окажется битой или пустой, и структура подчиненности там будет неполной.
Типовой признак такой проблемы — в дереве подчиненности приёмника отображаются «Объект не найден» или цепочка начинается не с того документа. Проверяйте правила конвертации и состав выгрузки: связанные документы должны либо выгружаться вместе, либо уже существовать в приёмнике с теми же уникальными идентификаторами.
Как проверить результат
Видны и основания, и введённые на основании документы
Цепочка обрывается или появляется «Объект не найден»
Ссылка заполнена и открывается реальный документ
Поле пустое или ссылка битая
Реквизиты всех нужных документов включены
Реквизит нового документа отсутствует в составе
Частые вопросы
Можно ли посмотреть структуру подчиненности сразу для списка документов?
Штатная форма строится для одного документа. Для массового анализа используйте отчёт «Связанные документы» или универсальный отчёт по реквизитам-основаниям, либо обработку, построенную на том же критерии отбора.
Хранится ли дерево подчиненности в какой-то таблице базы данных?
Нет, отдельной таблицы дерева не существует. В базе хранятся только ссылки в реквизитах документов, а иерархия вычисляется платформой при каждом открытии формы структуры подчиненности.
Почему после обновления конфигурации пропали связи в дереве?
Чаще всего при обновлении затёрся доработанный критерий отбора или расширение, дополнявшее его состав, отключилось из-за несовместимости. Проверьте состав критерия и список активных расширений.
Можно ли изменить порядок документов в дереве подчиненности?
Дерево сортируется по дате документов внутри уровня иерархии, и произвольный порядок штатно не задаётся. Менять последовательность можно только через даты документов или собственную форму отображения.
Влияет ли пометка удаления документа на структуру подчиненности?
Помеченный на удаление документ обычно отображается в дереве с соответствующим признаком, а при физическом удалении связанные документы теряют ссылку на него, и цепочка разрывается. Перед удалением проверяйте ссылки через «Поиск ссылок на объект».
Как программно получить связанные документы из кода?
Используйте метод критерия отбора: вызов «КритерииОтбора.ИмяКритерия.Найти(Ссылка)» вернёт таблицу всех объектов, где встречается переданная ссылка. Это тот же механизм, что и у формы структуры подчиненности.
Что важно запомнить
Структура подчиненности в 1С не хранится отдельно: правила связей описаны в критериях отбора конфигурации, а сами связи — в ссылочных реквизитах документов. Если документ пропал из дерева, проверяйте заполненность реквизита основания, состав критерия отбора и права пользователя. Доработки выполняйте через расширение и проверяйте на копии базы.