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