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

Разработка и Конфигурация · 11 мин

Как описать справочник в системе 1С

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

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

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

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

Что нужно определить до создания справочника

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

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

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

Создание объекта и основные свойства

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

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

Представление элемента

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

Настройка иерархии и кодов

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

На закладке «Нумерация» включаются автонумерация, контроль уникальности и задаётся серия кодов: в пределах всего справочника, в пределах подчинения владельцу или в пределах группы. Контроль уникальности кода рекомендуется включать всегда, если код используется в обменах или поиске.

Маршрут решения

Как выбрать вид иерархии

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

Реквизиты и табличные части

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

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

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

Что хранитьРеквизит справочникаТабличная частьРегистр сведений
Одно значение на элемент (ИНН, артикул)ДаНетНет
Небольшой список строк (состав комплекта)НетДаВозможно
Большие списки с отборами и историей (цены, штрихкоды)НетНе рекомендуетсяДа

Владельцы, предопределённые элементы и права

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

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

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

Формы и программная работа со справочником

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

Программная работа выполняется через менеджер справочника. Создание элемента, поиск и чтение реквизитов выглядят типовым образом:

НовыйЭлемент = Справочники.Контрагенты.СоздатьЭлемент();

НовыйЭлемент.Наименование = "ООО Пример";

НовыйЭлемент.ИНН = "7700000000";

НовыйЭлемент.Записать();

Ссылка = Справочники.Контрагенты.НайтиПоРеквизиту("ИНН", "7700000000");

Если Не Ссылка.Пустая() Тогда

Сообщить("Найден: " + Ссылка.Наименование);

КонецЕсли;

Для массового поиска по наименованию или реквизитам используйте НайтиПоНаименованию и НайтиПоРеквизиту, а для сложных условий — запросы. Помните, что обращение к реквизитам через точку от ссылки (Ссылка.ИНН) выполняет отдельное обращение к базе; в циклах лучше получать данные одним запросом.

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

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

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

Отдельно проверьте права: войдите под пользователем с ограниченной ролью и убедитесь, что недоступные действия действительно недоступны, а RLS-отборы не скрывают лишнего и не показывают запрещённого.

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

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

Автонумерация и уникальность
Норма

Новый элемент получает следующий код, дубль кода отклоняется

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

Код пустой, дубли сохраняются без предупреждения

Иерархия
Норма

Группы и элементы отображаются деревом, фильтр по группе работает

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

Элементы создаются вне групп, дерево не строится

Подчинённость владельцу
Норма

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

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

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

Права
Норма

Пользователь видит и изменяет только разрешённое

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

Ошибки доступа при записи или видны чужие элементы

Типичные ошибки
01
Хранение исторических данных (цен, курсов) в реквизитах — история теряется, правильное место — регистр сведений
02
Составной тип реквизитов без необходимости — замедляет запросы и усложняет отборы
03
Отключённый контроль уникальности кода при обменах — приводит к дублям и конфликтам синхронизации
04
Поиск элемента по наименованию в коде вместо предопределённых элементов — ломается при переименовании
05
Массовое обращение к реквизитам через точку в цикле — резкое падение производительности
Итог

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

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

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

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

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

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

Увеличение длины обычно проходит без потерь при реструктуризации. Уменьшение длины обрежет существующие значения, а смена типа кода (строка на число или наоборот) может привести к потере данных. Любое такое изменение выполняйте на копии базы.

Как запретить дубли элементов по наименованию или ИНН?

Штатный контроль уникальности работает только для кода. Для наименования или реквизита проверку дублирования реализуют программно — в обработчике «ПередЗаписью» модуля объекта выполняют поиск по реквизиту и отказывают в записи при совпадении. В типовых конфигурациях для контрагентов существуют механизмы проверки дублей по ИНН.

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

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

Почему в поле выбора показываются элементы всех владельцев?

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

Как удалить справочник из конфигурации, если он уже используется?

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