Документы и Печать · 13 мин
Как подчинить документ в 1С и настроить структуру подчинённости
Как подчинить документ в 1С: ввод на основании, настройка в конфигураторе, критерии отбора и структура подчинённости. Проверка результата и типичные ошибки.
Подчинение документов в 1С — это механизм связи между документами, при котором один документ создаётся на основании другого и наследует его данные. Классический пример: на основании документа «Реализация товаров и услуг» вводятся «Счёт-фактура выданный» и «Платёжное поручение». Такая связь позволяет видеть всю цепочку хозяйственной операции и быстро переходить между связанными объектами.
В типовых конфигурациях (1С:Бухгалтерия, Управление торговлей, ERP) большинство связей уже настроены разработчиками. Пользователю чаще всего достаточно кнопки «Создать на основании». Но если вы добавили собственный документ, изменили типовой или связь по какой-то причине не отображается, потребуется настройка в конфигураторе: ввод на основании и критерий отбора «Структура подчинённости».
Ниже разобраны оба уровня работы: пользовательский сценарий без изменения конфигурации и административная настройка для разработчика или внедренца. Отдельно описаны проверка результата, типичные ошибки и ограничения механизма.
Что значит «подчинить документ» и когда это нужно
Подчинённость документов в 1С — это не иерархия «главный/второстепенный», а фиксация связи «основание — следствие». Документ-основание хранит исходные данные, а подчинённый документ ссылается на него через специальный реквизит (обычно он называется «ДокументОснование» или «Основание»). Платформа использует эту ссылку, чтобы построить цепочку связанных документов.
Подчинение документов нужно в нескольких ситуациях:
- автоматическое заполнение нового документа данными основания — меньше ручного ввода и ошибок;
- контроль полноты оформления операции: видно, выписан ли счёт-фактура к реализации;
- быстрая навигация по цепочке документов без поиска по журналам;
- построение отчётов и аналитики по связанным документам;
- блокировка повторного ввода — например, чтобы к одной реализации не создали два счёта-фактуры.
Важно понимать: подчинённость — это не проведение и не движения по регистрам. Само по себе наличие связи не влияет на учётные итоги. Влияние на учёт определяется тем, какие регистры заполняет каждый документ при проведении.
Как создать подчинённый документ в режиме пользователя
Самый простой способ подчинить документ — воспользоваться стандартной функцией ввода на основании, которая доступна в любой типовой конфигурации без доработок.
- 1Откройте документ-основание, например «Реализация товаров и услуг».
- 2Нажмите кнопку «Создать на основании» (в некоторых конфигурациях — «Ввести на основании»).
- 3Выберите из списка нужный вид подчинённого документа, например «Счёт-фактура выданный».
- 4Проверьте автоматически заполненные поля: контрагент, товары, суммы, договор.
- 5Заполните недостающие реквизиты и проведите документ.
- 6Откройте панель связанных документов и убедитесь, что новый документ появился в цепочке.
Если нужного вида документа нет в списке «Создать на основании», значит, ввод на основании для этой пары не настроен в конфигурации. Своими силами пользователь это исправить не может — потребуется доработка в конфигураторе, описанная ниже.
Обратите внимание: кнопка «Создать на основании» доступна и из формы списка. Можно выделить документ в журнале и создать подчинённый, не открывая само основание. Это удобно при массовой обработке, но важно проверять, что выделен именно тот документ, иначе связь установится с чужим основанием.
Просмотр цепочки: где видны подчинённые документы
В управляемых формах типовых конфигураций связанные документы отображаются в специальной панели. Обычно она открывается по ссылке «Структура подчинённости» или по кнопке со значком связанных документов в командной панели формы. В 1С:Бухгалтерии 8 панель называется «Связанные документы» и располагается в верхней части формы документа.
Панель показывает всю цепочку целиком: и документы-основания (то, от чего произошёл текущий документ), и подчинённые (то, что создано на его основе). Клик по любому элементу цепочки открывает соответствующий документ. Если панель пуста, хотя вы уверены, что связь есть, — вероятные причины разобраны в разделе про ошибки.
В интерфейсе «Такси» состав команд в панели можно настраивать: администратор вправе изменить видимость кнопок «Создать на основании» для конкретных пользователей через настройку командного интерфейса или механизм функциональных опций. Это полезно, чтобы убрать лишние варианты и снизить риск ошибочного ввода.
Настройка ввода на основании в конфигураторе
Если вы разрабатываете собственный документ или дорабатываете типовую конфигурацию, подчинение настраивается в конфигураторе на уровне метаданных. Работа ведётся в два этапа: разрешение ввода на основании и заполнение данных нового документа.
Шаг 1. Разрешить ввод на основании
Откройте в конфигураторе объект «Документ», который должен стать подчинённым. На закладке «Ввод на основании» выполните два действия:
- в списке «Вводится на основании» отметьте документы, которые будут основаниями;
- в списке «Является основанием для» при необходимости отметьте документы, которые будут создаваться уже из него.
Эти два списка зеркальны: отметку можно поставить с любой стороны, платформа автоматически отразит её в парном объекте. После сохранения конфигурации в форме документа-основания появится команда создания подчинённого документа.
Шаг 2. Написать обработчик заполнения
Чтобы подчинённый документ заполнялся данными основания автоматически, в модуле объекта подчинённого документа используется обработчик «ОбработкаЗаполнения». В нём доступен параметр «ДанныеЗаполнения» — ссылка на документ-основание.
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда
ДокументОснование = ДанныеЗаполнения;
Контрагент = ДанныеЗаполнения.Контрагент;
Договор = ДанныеЗаполнения.Договор;
КонецЕсли;
КонецПроцедурыВ типовых конфигурациях вместо прямого обращения к реквизитам часто используются процедуры общих модулей заполнения. Если вы дорабатываете типовой документ, изучите существующий обработчик — возможно, достаточно добавить свою ветку условия, не ломая штатную логику.
Добавление документа в структуру подчинённости
Разрешение ввода на основании само по себе не гарантирует, что связь будет видна в панели связанных документов. За отображение отвечает критерий отбора «Структура подчинённости» (в ветке «Общие — Критерии отбора» конфигуратора). В его состав нужно включить новый документ.
Откройте свойства критерия отбора и проверьте:
- документ присутствует в списке «Состав»;
- в колонке «Тип» для документа указан реквизит-основание, через который строится связь;
- реквизит-основание имеет тип, включающий соответствующие документы-основания.
Если у подчинённого документа несколько реквизитов-ссылок на основания, в критерий можно включить несколько из них — тогда связь будет отображаться по любому совпадению. Но чрезмерное расширение состава критерия замедляет построение панели связей, поэтому включайте только реально используемые реквизиты.
Проверка результата после настройки
После обновления конфигурации обязательно проверьте работу механизма на тестовых данных. Не ограничивайтесь тем, что команда появилась — важно, чтобы связь корректно сохранялась и отображалась.
Как проверить результат
Кнопка «Создать на основании» содержит новый вид документа
Команды нет — не настроен ввод на основании или нет прав
Основание и ключевые поля подставляются автоматически
Поля пустые — ошибка в обработчике ОбработкаЗаполнения
Подчинённый документ виден в структуре подчинённости
Документ не отображается — не включён в критерий отбора
Документ проводится без ошибок, движения корректны
Ошибки проведения — проблемы в обработке проведения, а не в подчинении
Проверяйте и обратную сторону: откройте созданный подчинённый документ и убедитесь, что из него видно основание. Двусторонняя видимость — признак того, что критерий отбора настроен правильно с обеих сторон.
Типичные ошибки и ограничения механизма
Есть и принципиальные ограничения. Один подчинённый документ может ссылаться на несколько оснований только если для этого предусмотрены отдельные реквизиты или табличная часть оснований — штатный механизм «один реквизит — одно основание». Для связей «многие ко многим» (например, одна оплата закрывает несколько реализаций) в типовых конфигурациях используются собственные регистры сведений и механизмы взаиморасчётов, а не структура подчинённости.
Ещё одно ограничение: пометка на удаление основания не удаляет подчинённые документы автоматически. При стандартной пометке на удаление платформа проверяет ссылки, но если ссылка находится в реквизите, не входящем в контроль, или контроль отключён, подчинённый документ останется с «битой» ссылкой. Перед удалением основания проверяйте структуру подчинённости вручную.
Если в типовой конфигурации связь между документами внезапно перестала отображаться после обновления, сначала проверьте, не изменился ли состав критерия отбора в новом релизе, и не переопределены ли права на документ. Часто причина именно в правах: пользователь не видит подчинённый документ, потому что у него нет права чтения на его вид.
Альтернативы подчинённости: когда нужен другой механизм
Как выбрать действие
Выбор механизма зависит от задачи. Структура подчинённости оптимальна для линейных цепочек «основание — следствие», где важен и ввод с заполнением, и визуальная навигация. Для аналитических задач без ввода на основании достаточно запросов по реквизитам-ссылкам — это не требует изменения метаданных.
Что важно запомнить
Подчинение документа в 1С выполняется через «Создать на основании» в пользовательском режиме, а на уровне конфигурации — через настройку ввода на основании, обработчик ОбработкаЗаполнения и включение документа в критерий отбора «Структура подчинённости». После любой доработки проверяйте связь в панели связанных документов с обеих сторон и работайте с рабочей базой только после резервного копирования.
Частые вопросы
Почему кнопка «Создать на основании» не содержит нужный документ?
Причины могут быть тремя: ввод на основании для этой пары документов не настроен в конфигураторе; у пользователя нет права добавления подчинённого вида документа; команда скрыта настройками командного интерфейса. Проверку начните с прав, затем — с настроек в конфигураторе.
Можно ли подчинить уже созданный документ, а не создавать новый?
Да. Откройте существующий документ и вручную заполните реквизит-основание ссылкой на нужный документ, затем запишите. Связь появится в структуре подчинённости, если документ включён в критерий отбора. Обратите внимание: автоматического заполнения остальных полей при этом не произойдёт — их придётся скорректировать вручную.
Влияет ли удаление основания на подчинённые документы?
Подчинённые документы автоматически не удаляются. Если контроль ссылочной целостности обнаружит ссылку на удаляемый объект, пометка будет заблокирована; если ссылка не контролируется, в подчинённом документе останется «битая» ссылка. Перед удалением основания откройте структуру подчинённости и обработайте зависимые документы.
Почему подчинённый документ не виден в панели связей, хотя основание заполнено?
Наиболее вероятная причина — документ не включён в критерий отбора «Структура подчинённости» или в критерии указан другой реквизит, а не тот, который вы заполнили. Вторая возможная причина — отсутствие у пользователя права чтения на подчинённый документ: панель скрывает объекты, недоступные пользователю.
Можно ли настроить подчинение без изменения конфигурации?
Только частично. В режиме пользователя доступен ввод на основании для уже настроенных пар документов. Добавить новую связь между видами документов без конфигуратора нельзя — это изменение метаданных. В некоторых конфигурациях есть расширения и механизмы дополнительных обработок, которые позволяют добавить команды заполнения без снятия конфигурации с поддержки.
Чем подчинённость отличается от подчинённого справочника?
Подчинённый справочник — это иерархия «владелец — элемент», где элемент не существует без владельца (например, договоры контрагента). Подчинённый документ — самостоятельный объект учёта со своим номером, датой и движениями, который лишь ссылается на основание. Удаление основания не удаляет документ, а связь используется для навигации и заполнения.