Справочники и Данные · 11 мин
Владелец справочника в 1С: что это такое и как использовать подчинённые справочники
Что такое владелец справочника в 1С, зачем нужны подчинённые справочники, как настроить связь владелец–элемент и в каких задачах её применять.
В конфигурациях 1С справочники часто связаны между собой: например, договоры существуют только внутри конкретного контрагента, а банковские счета — только внутри конкретной организации. Чтобы платформа понимала такую связь, у справочника есть свойство «Владельцы». Справочник, указанный в этом свойстве, называется владельцем, а сам справочник — подчинённым.
Каждый элемент подчинённого справочника хранит ссылку на элемент-владельца в специальном реквизите «Владелец» (Owner). Благодаря этому платформа умеет автоматически фильтровать списки, строить иерархию «владелец → его элементы» и не даёт создать «бесхозный» элемент, если настроен соответствующий контроль.
Механизм владельцев используется во всех типовых конфигурациях: «Договоры контрагентов» подчинены «Контрагентам», «Банковские счета» — «Организациям», «Спецификации номенклатуры» — «Номенклатуре». Понимание этого механизма нужно и пользователю, который вводит данные, и разработчику, который проектирует структуру метаданных.
Что такое владелец справочника простыми словами
Представьте картотеку: папка «Контрагенты», внутри каждой карточки контрагента лежат его договоры. Договор вне контрагента смысла не имеет — он всегда «чей-то». В терминах 1С справочник «Контрагенты» — владелец, а справочник «Договоры контрагентов» — подчинённый.
Технически связь реализуется так: в конфигураторе у подчинённого справочника на закладке «Владельцы» отмечается один или несколько справочников-владельцев. После этого у каждого элемента появляется системный реквизит «Владелец», который заполняется ссылкой на конкретный элемент справочника-владельца.
Важно не путать владельца с иерархией внутри одного справочника. Иерархия «группа — элемент» строится через реквизит «Родитель» внутри самого справочника, а владелец — это связь между двумя разными справочниками через реквизит «Владелец».
Чем подчинённый справочник отличается от обычного реквизита
Частый вопрос при проектировании: зачем делать отдельный подчинённый справочник, если можно просто добавить в справочник реквизит типа «СправочникСсылка.Контрагенты»? Разница принципиальна.
Обычный реквизит — это просто поле со ссылкой: платформа не считает элемент «принадлежащим» кому-то, не фильтрует списки автоматически и не контролирует удаление владельца. Подчинённость же встроена в платформу: формы списка умеют показывать элементы только текущего владельца, при удалении владельца срабатывает контроль ссылочной целостности, а в интерфейсе появляется навигация «от владельца к его элементам».
| Критерий | Подчинённый справочник | Обычный реквизит-ссылка |
|---|---|---|
| Обязательность связи | Владелец обязателен (при соответствующей настройке) | Реквизит может быть пустым |
| Фильтрация списков | Автоматическая по владельцу | Только вручную через отбор |
| Навигация в интерфейсе | Переход от владельца к его элементам | Нет встроенной навигации |
| Удаление владельца | Контроль ссылочной целостности платформой | Контроль есть, но логика принадлежности не выражена |
| Типичное применение | Договоры, счета, спецификации, единицы измерения | Ответственный, склад, произвольные аналитики |
Где посмотреть и как настроить владельца в конфигураторе
Настройка выполняется в конфигураторе. Откройте дерево конфигурации, найдите нужный справочник, вызовите палитру свойств и перейдите на закладку «Владельцы». В списке отметьте флажками справочники, которые будут владельцами. Их может быть несколько: например, справочник «Банковские счета» может быть подчинён одновременно «Организациям» и «Контрагентам».
Дополнительно стоит проверить свойство «Проверка заполнения» у реквизита «Владелец»: значение «Выдавать ошибку» не позволит записать элемент без владельца. Также полезно настроить основную форму списка так, чтобы при открытии из карточки владельца устанавливался отбор по нему.
Как работает связь «владелец — элемент» в пользовательском режиме
В режиме «1С:Предприятие» механизм проявляется в нескольких местах. Если открыть карточку контрагента, в панели навигации обычно доступны подчинённые списки: договоры, контактные лица, банковские счета. При создании нового элемента из такого списка поле «Владелец» заполняется автоматически и часто недоступно для изменения — это защита от ошибочного переноса элемента к другому владельцу.
В форме списка подчинённого справочника, открытого самостоятельно (не из карточки владельца), отбор по владельцу может отсутствовать — тогда видны элементы всех владельцев. Это нормальное поведение, но пользователи иногда принимают его за ошибку: «в списке договоров видны чужие договоры». Решается настройкой отбора или правильной точкой входа.
Типовые примеры использования владельцев
Механизм подчинённых справочников применяется там, где сущность не существует отдельно от своего «родителя» в предметной области.
- Договоры контрагентов — подчинены справочнику «Контрагенты»; договор без контрагента бессмыслен.
- Банковские счета — подчинены организациям и контрагентам; счёт всегда принадлежит конкретному юрлицу.
- Единицы измерения / упаковки — подчинены номенклатуре; упаковка имеет смысл только для конкретного товара.
- Спецификации — подчинены номенклатуре; состав изделия привязан к конкретному изделию.
- Контактные лица — подчинены контрагентам или партнёрам.
Общий признак всех этих случаев: элемент теряет смысл без владельца и в отчётах почти всегда анализируется в разрезе владельца. Если же сущность самостоятельна (например, склад или сотрудник), подчинённость не нужна — достаточно обычной ссылки.
Когда делать подчинённый справочник
Обращение к владельцу в коде и запросах
Во встроенном языке доступ к владельцу выполняется через свойство Владелец объекта или ссылки. Например, получить контрагента по договору можно так:
КонтрагентДоговора = ДоговорСсылка.Владелец;
// или в запросе:
// ВЫБРАТЬ Договоры.Ссылка, Договоры.Владелец КАК Контрагент
// ИЗ Справочник.ДоговорыКонтрагентов КАК Договоры
// ГДЕ Договоры.Владелец = &КонтрагентВ запросах реквизит «Владелец» доступен как обычное поле: по нему можно фильтровать, группировать и соединять таблицы. Типичный приём — получить все договоры конкретного контрагента условием Договоры.Владелец = &Контрагент. Это работает быстрее и понятнее, чем поиск по наименованию или другим косвенным признакам.
При программном создании элемента подчинённого справочника владельца нужно заполнить до записи, иначе при включённой проверке заполнения платформа выдаст ошибку и не запишет объект.
Типичные ошибки и ограничения механизма
Есть и принципиальное ограничение: подчинённость выражает связь «один ко многим» в сторону одного владельца. Если предметная задача требует связи «многие ко многим» (например, один товар в нескольких каталогах, один сотрудник в нескольких проектах), механизм владельцев не подходит — нужен регистр сведений или табличная часть.
Как проверить, что владелец настроен правильно
Поле «Владелец» заполнено автоматически, элемент записывается
Поле пустое, при записи ошибка проверки заполнения
Видны только элементы текущего владельца
Видны элементы всех владельцев без отбора
Платформа сообщает о наличии ссылок и блокирует удаление
Владелец удаляется, элементы остаются «бесхозными»
Элементы группируются по владельцам корректно
Элементы без владельца или в чужих группах
Частые вопросы
Может ли у справочника быть несколько владельцев?
Да. На закладке «Владельцы» можно отметить несколько справочников. Конкретный элемент при этом привязывается к одному владельцу — тип ссылки в реквизите «Владелец» становится составным. Классический пример — банковские счета, подчинённые и организациям, и контрагентам.
Чем владелец отличается от родителя в иерархическом справочнике?
Родитель — это группа внутри того же справочника, связь хранится в реквизите «Родитель». Владелец — отдельный справочник, связь хранится в реквизите «Владелец». У элемента могут быть и родитель, и владелец одновременно: например, договоры контрагента, разложенные по группам.
Можно ли изменить владельца у уже созданного элемента?
Технически — да, если поле «Владелец» доступно для редактирования в форме. Но в типовых конфигурациях это поле часто блокируют после записи, потому что смена владельца фактически означает перенос, например, договора к другому контрагенту — операцию, которую обычно выполняют осознанно и через специальные обработки.
Что произойдёт с подчинёнными элементами при удалении владельца?
При интерактивном удалении платформа выполняет контроль ссылочной целостности: если на владельца ссылаются элементы, удаление будет заблокировано со списком найденных ссылок. Сначала нужно удалить или переназначить подчинённые элементы. Пометка на удаление владельца в типовых конфигурациях часто помечает и подчинённые элементы, но это поведение зависит от настроек и кода конфигурации.
Нужно ли делать справочник подчинённым, если связь с контрагентом требуется только в отчёте?
Нет. Если связь нужна только для аналитики и элемент самостоятелен, достаточно обычного реквизита-ссылки. Подчинённость оправдана, когда элемент не существует без владельца и работа с ним почти всегда начинается с карточки владельца.
Что важно запомнить
Владелец справочника — это справочник, которому подчинён данный: связь хранится в реквизите «Владелец» и даёт автоматическую фильтрацию, навигацию и контроль целостности. Используйте подчинённость, когда элемент не существует без владельца; для необязательных связей и связей «многие ко многим» выбирайте реквизит-ссылку или регистр сведений. Изменения структуры владельцев выполняйте только на копии базы после резервного копирования.