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

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

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

Что такое справочник в 1С и зачем он нужен

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

Основные функции справочников:

  • 📋 Хранение структурированных данных — каждый элемент справочника может иметь неограниченное количество реквизитов (свойств) разных типов: строки, числа, даты, ссылки на другие объекты.
  • 🔗 Связь между объектами — справочники позволяют организовывать иерархические структуры (например, группы товаров) и устанавливать связи между элементами разных справочников.
  • 🔍 Быстрый поиск и фильтрация — платформа предоставляет встроенные механизмы для поиска по любым реквизитам, включая полнотекстовый поиск.
  • 📊 Интеграция с отчетами — данные из справочников активно используются в отчетах, аналитических разрезах и dashboards.

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

⚠️ Внимание: Не путайте справочники с перечислениями! Перечисления используются для хранения фиксированных наборов значений (например, "Виды оплаты": Наличные, Безналичные, Карта), тогда как справочники предназначены для динамически изменяемых данных.

Типы справочников в 1С: какой выбрать для вашей задачи

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

Тип справочника Описание Примеры использования
Простой Линейный список элементов без иерархии. Подходит для небольших справочников с простой структурой. Справочник Банки, Валюты, Единицы измерения
Иерархический Элементы могут объединяться в группы и подгруппы. Позволяет строить древовидные структуры. Справочник Номенклатура (группы: "Товары", "Услуги", "Материалы"), Сотрудники (по отделам)
Подчиненный Элементы справочника подчинены элементам другого справочника. Используется для хранения зависимых данных. Справочник Контакты контрагентов (подчинен Контрагентам), Адреса складов
Виды субконто Специальный тип для использования в бухгалтерском учете. Элементы справочника выступают в качестве субконто. Справочник Статьи затрат, Проекты, Центры ответственности

Выбор типа справочника зависит от логики вашей учетной системы. Например, если вам нужно хранить список городов, достаточно простого справочника. А для номенклатуры с категориями и подкатегориями потребуется иерархический. Подчиненные справочники удобны, когда данные одного объекта не имеют смысла без другого (например, контакты без привязки к контрагенту).

📊 Какой тип справочника вы используете чаще всего?
Простой
Иерархический
Подчиненный
Виды субконто
Не создаю справочники

Особое внимание стоит уделить иерархическим справочникам. Они позволяют:

  • 📂 Создавать неограниченное количество уровней вложенности (например, "Электроника → Бытовая техника → Холодильники → Двухкамерные").
  • 🔄 Использовать группы как для логического разделения данных, так и для аналитики (например, отчеты по группам номенклатуры).
  • 🔍 Применять фильтры по иерархии в отчетах и обработках.
⚠️ Внимание: Чрезмерная вложенность групп (более 5-7 уровней) может усложнить работу пользователей и замедлить производительность системы при больших объемах данных. Оптимальная глубина иерархии — 3-4 уровня.

Пошаговая инструкция: как создать справочник в конфигураторе 1С

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

Шаги по созданию справочника:

  1. Откройте конфигуратор — запустите 1С:Предприятие в режиме конфигуратора (выберите нужную базу и укажите пароль администратора).
  2. Перейдите в дерево объектов — в левой части окна найдите раздел Общие → Справочники.
  3. Добавьте новый справочник — кликните правой кнопкой по папке Справочники и выберите Добавить.
  4. Заполните основные свойства — в открывшейся форме укажите имя справочника (например, КатегорииТоваров), синоним (отображаемое имя для пользователей) и выберите тип (например, Иерархический).
  5. Настройте реквизиты — на вкладке Реквизиты добавьте необходимые поля (например, Описание типа Строка или Картинка типа ХранилищеЗначения).
  6. Сохраните и обновите конфигурацию — нажмите ОК, затем в меню Конфигурация выберите Обновить конфигурацию базы данных.

Имя справочника латиницей без пробелов|Синоним понятный для пользователей|Выбран правильный тип (простой/иерархический)|Добавлены все необходимые реквизиты|Указаны права доступа (если нужно)-->

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

Пример заполнения свойств справочника КатегорииТоваров:

  • 📌 Имя: КатегорииТоваров (латиницей, без пробелов)
  • 📌 Синоним: "Категории товаров" (отображается пользователям)
  • 📌 Тип: Иерархический (для создания групп)
  • 📌 Реквизиты:
    • Описание (тип: Строка, длина: 200)
    • Картинка (тип: ХранилищеЗначения)
    • Активен (тип: Булево, значение по умолчанию: Истина)
💡

Если вы создаете справочник для интеграции с внешними системами, добавьте реквизит типа УникальныйИдентификатор (GUID или строка) для сопоставления данных.

Настройка реквизитов и табличных частей справочника

Реквизиты справочника — это дополнительные поля, которые хранят информацию о каждом элементе. Например, для справочника Товары типичными реквизитами будут Артикул, ЕдиницаИзмерения, Цена и Описание. В 1С 8.3 поддерживаются следующие типы реквизитов:

Тип реквизита Описание Пример использования
Строка Текстовая информация ограниченной длины (до 255 символов по умолчанию). Наименование, артикул, телефон
Число Числовые значения с возможностью указания точности (количество знаков после запятой). Цена, вес, количество
Дата Даты и время. Можно ограничивать диапазон значений. Дата создания, срок годности
Ссылка Ссылка на другой объект конфигурации (справочник, документ, план счетов). Категория товара, поставщик, ответственный менеджер
ХранилищеЗначения Для хранения двоичных данных (картинки, файлы, произвольные данные). Фотография товара, технический паспорт

Чтобы добавить реквизит:

  1. Откройте справочник в конфигураторе и перейдите на вкладку Реквизиты.
  2. Нажмите Добавить и укажите имя реквизита (латиницей, например, Вес).
  3. Выберите тип данных (например, Число с точностью 3 знака после запятой).
  4. При необходимости укажите значение по умолчанию или ограничения (например, минимальное значение для цены).

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

Пример создания табличной части Контакты для справочника Контрагенты:

  1. Перейдите на вкладку Табличные части и добавьте новую часть с именем Контакты.
  2. Добавьте колонки:
    • ТипКонтакта (тип: ПеречислениеСсылочное.ТипыКонтактов)
    • Значение (тип: Строка, длина: 100)
    • Основной (тип: Булево)
  3. Сохраните изменения и обновите конфигурацию.
  4. ⚠️ Внимание: Избыточное количество реквизитов и табличных частей может замедлить работу справочника, особенно если в базе тысячи элементов. Оптимизируйте структуру: выносите редко используемые данные в отдельные справочники или регистры.

    Программное создание и управление справочниками на встроенном языке

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

    Создание нового элемента справочника:

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

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

    НовыйЭлемент.Описание = "Бытовая электроника и гаджеты";

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

    Поиск элемента по наименованию:

    Элемент = Справочники.КатегорииТоваров.НайтиПоНаименованию("Электроника");
    

    Если Элемент.Пустая() Тогда

    Сообщить("Элемент не найден!");

    Иначе

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

    КонецЕсли;

    Заполнение табличной части:

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

    Товар.Наименование = "Смартфон X";

    Товар.Артикул = "X-2023-Pro";

    // Добавляем строку в табличную часть "Цены"

    НоваяСтрока = Товар.Цены.Добавить();

    НоваяСтрока.ТипЦены = Перечисления.ТипыЦен.Розничная;

    НоваяСтрока.Значение = 59990;

    Товар.Записать();

    Для работы с иерархическими справочниками используйте свойство Родитель:

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

    Подкатегория.Наименование = "Смартфоны";

    Подкатегория.Родитель = Справочники.КатегорииТоваров.Электроника; // Ссылка на родительскую группу

    Подкатегория.Записать();

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

    Используйте метод Выбрать() с циклом:

    Выборка = Справочники.КатегорииТоваров.Выбрать();
    

    Пока Выборка.Следующий() Цикл

    Сообщить(Выборка.Наименование);

    КонецЦикла;

    Для больших справочников (>1000 элементов) используйте отбор:

    Выборка = Справочники.КатегорииТоваров.Выбрать();
    

    Выборка.Отбор.Активен.Установить(Истина);

    Пока Выборка.Следующий() Цикл

    // Обработка активных элементов

    КонецЦикла;

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

    Для массовых операций (например, импорта данных) используйте объектную модель:

    // Пример массового создания элементов из внешнего источника
    

    Для Каждого Строка Из ИсточникДанных Цикл

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

    Элемент.Наименование = Строка.Наименование;

    Элемент.Артикул = Строка.Код;

    Элемент.Записать();

    КонецЦикла;

    Типичные ошибки при работе со справочниками и как их избежать

    Даже опытные разработчики иногда сталкиваются с проблемами при работе со справочниками в . Рассмотрим наиболее распространенные ошибки и способы их предотвращения.

    1. Дублирование элементов

    Проблема: В справочнике появляются элементы с одинаковыми наименованиями (например, два "Смартфона" с разными артикулами). Это усложняет поиск и приводит к ошибкам в отчетах.

    Решение: Используйте проверку на дубли при создании элементов:

    Если НЕ Справочники.Товары.НайтиПоНаименованию(НовоеНаименование).Пустая() Тогда
    

    Сообщить("Товар с таким наименованием уже существует!");

    Возврат;

    КонецЕсли;

    2. Избыточные реквизиты

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

    Решение: Проводите аудит реквизитов:

    • 📉 Удаляйте неиспользуемые реквизиты (предварительно проверьте, не используются ли они в отчетах или документах).
    • 🔄 Выносите редко используемые данные в отдельные справочники или регистры.
    • 📊 Используйте составные типы (например, Строка(50) вместо Строка(255), если достаточно 50 символов).

    3. Неправильная работа с иерархией

    Проблема: Неконтролируемое создание групп приводит к "замусоренной" структуре (например, группы с 1-2 элементами или глубокая вложенность).

    Решение: Введите правила именования и структурирования:

    • 📁 Ограничьте глубину иерархии 3-4 уровнями.
    • 🏷 Используйте префиксы для групп (например, "ГР_Электроника").
    • 🔍 Регулярно проводите чистку неиспользуемых групп с помощью обработок.

    4. Проблемы с правами доступа

    Проблема: Пользователи не могут редактировать справочник или видят чужие данные (например, менеджеры видят цены оптовиков).

    Решение: Настройте роли и права:

    • 🔐 Ограничьте права на уровне ролей (например, роль "Менеджер" может редактировать только свои товары).
    • 👥 Используйте RLS (Record Level Security) для ограничения доступа к данным на уровне записей.
    • 📋 Проверяйте права с помощью отчета "Полные права пользователей".
    💡

    Всегда тестируйте изменения в справочниках на копии рабочей базы! Ошибки в структуре данных могут привести к потере информации или нарушению целостности базы.

    5. Ошибки при обмене данными

    Проблема: При обмене между базами или интеграции с внешними системами теряются связи между элементами справочников.

    Решение: Используйте уникальные идентификаторы:

    • 🆔 Добавьте реквизит ВнешнийКод (тип: Строка или UUID) для сопоставления элементов.
    • 🔄 Настройте правила обмена с учетом этого реквизита.
    • 📥 Перед загрузкой данных проверяйте существование элементов по ВнешнийКод.

    Практические примеры: создание справочников для разных задач

    Рассмотрим несколько типовых сценариев создания справочников в и их настройку под конкретные бизнес-задачи.

    Пример 1: Справочник "Контрагенты" с иерархией и дополнительными реквизитами

    Задача: Создать справочник для хранения информации о поставщиках и покупателях с возможностью группировки по регионам и типам (опт/розница).

    Решение:

    1. Создайте иерархический справочник Контрагенты.
    2. Добавьте реквизиты:
      • ИНН (Строка, длина: 12)
      • КПП (Строка, длина: 9)
      • ТипКонтрагента (ПеречислениеСсылочное: Поставщик/Покупатель/Партнер)
      • Регион (Ссылка на справочник Регионы)
    3. Добавьте табличную часть Контакты (как в предыдущем примере).
    4. Настройте форму элемента для удобного ввода данных.

    Пример 2: Справочник "Номенклатура" с картинками и характеристиками

    Задача: Организовать каталог товаров с фотографиями, техническими характеристиками и категориями.

    Решение:

    1. Создайте иерархический справочник Номенклатура.
    2. Добавьте реквизиты:
      • Артикул (Строка, длина: 50)
      • ЕдиницаИзмерения (Ссылка на справочник ЕдиницыИзмерения)
      • Вес (Число, точность: 3)
      • Картинка (ХранилищеЗначения)
      • Описание (Строка неограниченной длины)
  5. Добавьте табличную часть Характеристики с колонками:
    • Наименование (Строка)
    • Значение (Строка)
  • Настройте форму списка с отображением картинок в виде галереи.
  • Пример 3: Подчиненный справочник "Адреса доставки"

    Задача: Хранить несколько адресов доставки для каждого контрагента.

    Решение:

    1. Создайте подчиненный справочник АдресаДоставки с владельцем Контрагенты.
    2. Добавьте реквизиты:
      • ТипАдреса (Перечисление: Юридический/Фактический/Склад)
      • Индекс (Строка, длина: 6)
      • Адрес (Строка, длина: 255)
      • Основной (Булево)
    3. Настройте форму элемента справочника Контрагенты для отображения списка адресов.
    4. 💡

      Для справочника "Номенклатура" настройте поиск по артикулу и наименованию в параметрах справочника (вкладка "Прочее"). Это ускорит работу пользователей.

      Оптимизация работы со справочниками в больших базах данных

      Если в вашей базе тысячи элементов справочников, важно следить за производительностью. Вот ключевые рекомендации по оптимизации:

      1. Индексирование реквизитов

      Для ускорения поиска добавьте индексы на часто используемые реквизиты (например, Артикул, ИНН):

      • 📊 В конфигураторе откройте свойства реквизита и установите флаг Индексировать.
      • 🔍 Индексируйте только те реквизиты, по которым часто идет поиск или фильтрация.
      • ⚠️ Избыточное индексирование может замедлить запись данных.

      2. Разделение больших справочников

      Если справочник содержит >10 000 элементов, рассмотрите возможность его разделения:

      • 📂 Вынесите редко используемые элементы в отдельный справочник (например, "АрхивнаяНоменклатура").
      • 🔄 Используйте механизм Планы обмена для распределения данных по нескольким базам.
      • 📊 Для аналитики используйте Регистры сведений вместо хранения исторических данных в справочниках.

      3. Оптимизация форм

      Медленная работа форм справочников часто связана с:

      • 🖼 Избыточным количеством элементов управления на форме.
      • 📊 Сложными динамическими списками с большим количеством колонок.
      • 🔄 Частыми обращениями к базе при изменении данных.

      Решения:

      • 🛠 Используйте Отложенную загрузку для динамических списков.
      • 📱 Разделите форму на несколько закладок (например, "Основное", "Дополнительно", "История").
      • 🔍 Отключите автоматический расчет полей, если он не нужен.

    4. Архивация и очистка

    Регулярное обслуживание справочников включает:

    • 🗑 Удаление неиспользуемых элементов (с предварительным анализом связей!).