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

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

Какие бывают справочники в 1С: виды и особенности работы

Разбираем виды справочников в 1С: обычные и иерархические, подчинённые, с предопределёнными элементами. Назначение, отличия от перечислений, настройка и типичные ошибки.

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

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

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

Что такое справочник и чем он отличается от других объектов

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

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

Обычные и иерархические справочники

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

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

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

Виды иерархии

Линейный список

Подходит для коротких однородных списков: валюты, ставки НДС, единицы измерения. Не даёт группировки.

Иерархия групп и элементов

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

Иерархия элементов

Любой элемент может содержать дочерние. Подходит для подразделений, видов работ с вложенными этапами.

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

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

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

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

Предопределённые элементы и коды справочников

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

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

Отдельная настройка — длина и тип кода, автонумерация, контроль уникальности. Код может быть числовым или строковым; строковый код удобен, когда он несёт смысл (артикул, символьный код валюты). Контроль уникальности кода стоит включать, если код используется для обмена с внешними системами — иначе при синхронизации появятся дубли.

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

Справочники в типовых конфигурациях: основные группы

В типовых решениях (1С:Бухгалтерия, Управление торговлей, ЗУП) справочники условно делятся на функциональные группы. Номенклатурный блок: «Номенклатура», «Виды номенклатуры», «Единицы измерения», «Характеристики номенклатуры», «Серии номенклатуры». Контрагентный блок: «Контрагенты», «Договоры контрагентов», «Банковские счета», «Контактные лица».

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

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

Много групп и вложенностьИерархический справочник

Проверить, не выбираются ли группы в документах

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

Проверить фильтрацию при выборе из документов

Жёлтый значок с точкой у элементаПредопределённый элемент

Не удалять и не переименовывать без анализа кода

Дубли элементовНет контроля уникальности

Включить контроль и выполнить поиск и удаление дублей

Как выбрать вид справочника при проектировании

При добавлении нового справочника в конфигурацию пройдите по четырём вопросам. Первый: нужна ли вложенность? Если элементов будет много и их удобно группировать — включайте иерархию групп и элементов; если элементы сами образуют дерево — иерархию элементов. Второй: есть ли владелец? Если элемент бессмысленен вне другого объекта — делайте справочник подчинённым.

Третий вопрос: нужен ли доступ из кода к конкретным элементам? Если да — создайте предопределённые элементы с понятными именами. Четвёртый: какой код нужен? Для обменов по артикулам — строковый код достаточной длины; для простых внутренних списков достаточно числового с автонумерацией.

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

Проверка результата и типичные проблемы

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

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

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

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

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

Доступны только элементы, группы недоступны

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

Можно выбрать папку-группу

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

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

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

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

Обмен данными
Норма

Коды уникальны, дублей нет

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

Появляются элементы с одинаковым кодом

Предопределённые элементы
Норма

Присутствуют и доступны из кода по имени

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

Элемент удалён или переименован пользователем

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

Чем справочник отличается от перечисления?

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

Можно ли превратить линейный справочник в иерархический?

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

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

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

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

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

Как найти дубли в справочнике?

В типовых конфигурациях на платформе 8.3 есть стандартная обработка «Поиск и удаление дублей» (раздел «Администрирование» — «Обслуживание»). Она сравнивает элементы по выбранным реквизитам и заменяет ссылки в документах на основной элемент.

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

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

Итог

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

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