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

Справочники и Данные · 11 мин

Зачем нужны подчинённые справочники в 1С

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

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

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

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

Как устроена связь «владелец — элемент»

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

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

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

Какие задачи решают подчинённые справочники

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

Вторая задача — удобная навигация и ввод. Когда пользователь в документе выбрал контрагента, поле «Договор» может автоматически ограничиваться договорами именно этого контрагента. Это снижает количество ошибок выбора и ускоряет заполнение документов.

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

Сущность без родителя бессмысленнаДоговор, счёт, контакт

Если элемент нельзя отнести к владельцу, его и быть не должно

Нужен отбор по владельцу при выбореДоговоры в документе

Пользователь должен видеть только элементы выбранного родителя

Элементы не переиспользуютсяЕдиницы измерения товара

Один и тот же элемент не привязывается к разным владельцам

Когда подчинение не нужно: альтернативы

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

Альтернатива номер один — обычный справочник с реквизитом-ссылкой на «родителя». Связь остаётся, но она мягкая: реквизит можно перезаполнить, элемент можно переиспользовать, отчёты строятся проще. Это подходит для классификаторов и аналитических разрезов.

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

Три способа связать данные

Подчинённый справочник

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

Справочник с реквизитом-ссылкой

Гибкая связь, легко менять родителя и строить отчёты. Ограничение: целостность контролируете сами

Табличная часть владельца

Простой ввод, всё хранится в одном объекте. Ограничение: нет ссылок на строки, слабая пригодность для аналитики

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

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

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

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

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

Особенности работы: обмены, права, отчёты

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

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

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

Типичные ошибки и как их избежать

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

Вторая ошибка — дублирование владельца в реквизитах. Раз есть системное поле «Владелец», добавлять ещё один реквизит «Контрагент» со ссылкой на того же родителя бессмысленно: данные разойдутся. Используйте владельца, а дополнительные реквизиты заводите только для иных смысловых связей.

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

Типичные ошибки
01
Подчинение при связи «многие-ко-многим» — при смене родителя приходится пересоздавать элементы и терять историю ссылок
02
Дублирующий реквизит-ссылка на владельца — данные расходятся, отчёты показывают разные результаты
03
Забытый RLS для подчинённого справочника — пользователи видят чужие договоры и счета
04
Обмен без учёта порядка выгрузки — в приёмнике появляются элементы с битыми ссылками на владельца

Как проверить, что всё настроено правильно

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

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

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

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

Запись элемента без владельца
Норма

Платформа выдаёт ошибку и не записывает элемент

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

Элемент записывается с пустым владельцем — подчинение не настроено

Выбор из документа
Норма

Список показывает только элементы выбранного владельца

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

Видны все элементы — не настроена связь параметров выбора

Отчёт «владелец + элементы»
Норма

Каждый элемент выводится рядом со своим владельцем

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

Элементы без владельцев или дубли строк — проблема с данными или соединением

Итог

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

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

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

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

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

Чем подчинённый справочник отличается от иерархического?

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

Что произойдёт с подчинёнными элементами при удалении владельца?

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

Можно ли сделать справочник подчинённым, если в нём уже есть данные?

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

Как в документе ограничить выбор договора только договорами выбранного контрагента?

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

Когда вместо подчинённого справочника лучше использовать регистр сведений?

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