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

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

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

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

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

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

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

Как устроена структура подчиненности в 1С

За отображение связанных документов отвечает объект конфигурации «Критерий отбора» с именем «Структура подчиненности» (в некоторых конфигурациях — «Связанные документы»). Критерий отбора — это механизм платформы, который находит все объекты, содержащие ссылку на текущий документ в указанных реквизитах. Состав критерия определяет, какие типы документов и какие их реквизиты участвуют в поиске связей.

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

Важно понимать: связь между документами хранится не в отдельной таблице, а в самом реквизите подчиненного документа (обычно он называется «ДокументОснование», «ЗаказКлиента», «СчетНаОплату» и т.п.). Если этот реквизит пуст — документ нигде в цепочке не отобразится, даже если его тип включен в критерий.

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

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

Порядок действий
  1. 1
    Откройте документ-основание (например, заказ или счет)
  2. 2
    Нажмите кнопку «Создать на основании» и выберите нужный тип документа
  3. 3
    Проверьте автоматически заполненные поля и заполните остальные
  4. 4
    Проведите документ
  5. 5
    Откройте структуру подчиненности у документа-основания и убедитесь, что новый документ появился в цепочке

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

При ручном связывании проверьте согласованность данных: контрагент, организация, договор в основании и подчиненном документе должны совпадать. Механизмы контроля при вводе на основании это проверяют автоматически, а ручное заполнение — нет.

Добавление типа документа в критерий отбора через конфигуратор

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

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

У самого документа должен существовать реквизит типа «ДокументСсылка» (или составного типа, включающего нужные документы), в котором хранится основание. Если такого реквизита нет — его нужно добавить, разместить на форме и обеспечить заполнение: через обработчик «ОбработкаЗаполнения» в модуле объекта, чтобы документ корректно создавался на основании.

После изменения состава критерия обновите конфигурацию базы данных (F7 или меню «Конфигурация» → «Обновить конфигурацию базы данных»). Изменения критериев отбора не требуют реструктуризации таблиц, поэтому обновление проходит быстро и безопасно, но монопольный доступ к базе всё равно потребуется.

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

Чтобы документ не просто отображался в структуре, но и создавался штатной кнопкой, настройте механизм ввода на основании. В свойствах документа есть два связанных параметра: «Вводится на основании» (список документов-родителей) и «Является основанием для» (список подчиненных). Достаточно заполнить один из них — платформа автоматически учтет связь в обе стороны.

Логику переноса данных из основания описывают в процедуре «ОбработкаЗаполнения» модуля объекта документа. Типовой шаблон: проверить тип параметра «ДанныеЗаполнения» и перенести нужные реквизиты из основания в новый документ.

bsl
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка)
	Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ЗаказКлиента") Тогда
		ДокументОснование = ДанныеЗаполнения;
		Контрагент = ДанныеЗаполнения.Контрагент;
		Организация = ДанныеЗаполнения.Организация;
	КонецЕсли;
КонецПроцедуры

В управляемых формах кнопка «Создать на основании» формируется автоматически на основании настроек ввода на основании. Если кнопка не появилась — проверьте, что у пользователя есть права на создание документа, а в свойствах документа заполнен список «Вводится на основании».

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

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

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

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

Документ в структуре подчиненности основания
Норма

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

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

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

Кнопка «Создать на основании»
Норма

Кнопка есть, документ создается с заполненными полями

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

Кнопки нет — проверьте настройку «Вводится на основании» и права

Переход по двойному клику в структуре
Норма

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

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

Ошибка открытия — проблема с правами или формой документа

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

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

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

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

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

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

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

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

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

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

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

Можно ли выполнить настройку через расширение конфигурации?

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

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

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

Что будет со связями при удалении документа-основания?

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

Итог

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

Документ попадает в структуру подчиненности при двух условиях: его тип и реквизит-основание включены в критерий отбора, а само основание заполнено. Штатный путь — ввод на основании; для новых документов — настройка критерия и ОбработкаЗаполнения в конфигураторе или расширении. Перед доработкой делайте резервную копию и проверяйте результат на копии базы.