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

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

Что значит «владелец» в 1С и как это работает

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

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

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

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

Что такое подчинённый справочник и реквизит «Владелец»

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

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

Типичные примеры пар «владелец — подчинённый» в типовых конфигурациях:

  • Контрагенты → Договоры контрагентов;
  • Контрагенты → Контактные лица контрагентов;
  • Номенклатура → Характеристики номенклатуры;
  • Номенклатура → Единицы измерения (в ряде конфигураций);
  • Организации → Подразделения организаций (в некоторых решениях).

Как связь работает в интерфейсе пользователя

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

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

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

Где посмотреть владельца в конфигураторе

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

На закладке «Данные» в списке стандартных реквизитов подчинённого справочника виден реквизит «Владелец» с типом «СправочникСсылка» на соответствующий объект. Там же можно посмотреть, включено ли индексирование — для реквизита «Владелец» оно включено по умолчанию, потому что отборы по владельцу выполняются постоянно.

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

Как использовать владельца в запросах и отборах

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

bsl
ВЫБРАТЬ
	Договоры.Ссылка КАК Договор,
	Договоры.Владелец КАК Контрагент,
	Договоры.Владелец.Наименование КАК КонтрагентНаименование
ИЗ
	Справочник.ДоговорыКонтрагентов КАК Договоры
ГДЕ
	Договоры.Владелец = &Контрагент

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

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

Владелец при обмене данными и удалении объектов

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

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

Другие значения слова «владелец» в контексте 1С

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

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

Разные значения термина

Владелец подчинённого справочника

Стандартный реквизит платформы, связь справочников. Задаётся в конфигураторе, обязателен к заполнению.

Владелец присоединённого файла

Объект (документ, элемент справочника), к которому прикреплён файл. Механизм библиотеки стандартных подсистем.

Владелец файлов базы в ОС

Учётная запись операционной системы. Влияет на права доступа служб сервера 1С к файлам базы.

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

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

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

Типичные ошибки
01
Создание обычного реквизита-ссылки вместо подчинения — теряются автоматические отборы и контроль целостности
02
Загрузка подчинённых элементов до создания владельца — ошибка записи или битые ссылки
03
Удаление дублей владельцев без переноса подчинённых элементов — потеря связи договоров с контрагентом
04
Отбор по владельцу через разыменование вместо ссылки — лишние соединения и медленные запросы
05
Изменение структуры владельцев в рабочей базе без анализа данных — риск потери связей у существующих элементов
Контрольные точки

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

Форма списка подчинённого справочника из карточки владельца
Норма

Показываются только элементы текущего владельца, отбор установлен автоматически

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

Видны элементы всех владельцев или отбор отсутствует

Создание нового элемента из формы владельца
Норма

Поле «Владелец» заполнено автоматически

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

Поле пустое, платформа требует заполнить вручную

Запрос по подчинённому справочнику
Норма

Отбор вида «Владелец = &Ссылка» работает быстро

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

Запрос выполняется заметно дольше, чем выборка без отбора

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

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

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

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

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

Можно ли изменить владельца у существующего элемента?

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

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

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

Почему в форме списка договоров не видно поле «Владелец»?

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

Как найти все элементы без владельца?

Штатно таких элементов быть не должно — платформа требует заполнения владельца при записи. Если подозреваете повреждение данных (например, после нештатной загрузки), выполните запрос с условием «Владелец = ЗНАЧЕНИЕ(Справочник.ИмяВладельца.ПустаяСсылка)» или проверьте базу тестированием и исправлением.

Итог

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

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