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

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

Реквизиты и табличные части справочника 1С: для чего используются и как настроить

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

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

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

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

Что такое реквизиты справочника и какие задачи они решают

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

Основные задачи реквизитов:

  • Хранение характеристик объекта. Каждый элемент получает набор свойств, которые заполняются один раз и используются многократно.
  • Автозаполнение документов. При выборе номенклатуры в документе её цена, ставка НДС и единица измерения подставляются из реквизитов справочника.
  • Отборы и сортировка. По реквизитам строятся списки, динамические выборки и отчёты — поэтому тип данных реквизита критичен.
  • Связи между объектами. Реквизит ссылочного типа (например, «Основной договор» у контрагента) связывает справочники между собой.

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

Типы данных реквизитов и как выбрать правильный

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

  • Строка — с фиксированной или неограниченной длиной. Подходит для артикулов, адресов, комментариев. Строки неограниченной длины нельзя использовать в отборах и индексах.
  • Число — с указанием разрядности и точности. Для цен, весов, процентов. Числовые реквизиты корректно сортируются и суммируются в отчётах.
  • Дата — с составом «дата», «время» или «дата и время». Для сроков годности, дат регистрации контрагента.
  • Булево — признак «да/нет»: «Архивный», «Не использовать в заказах».
  • Ссылка на объект — ссылка на другой справочник, документ или перечисление. Обеспечивает целостность: нельзя удалить объект, пока на него есть ссылки.
  • Составной тип — несколько допустимых типов одновременно. Используйте только при реальной необходимости: составной тип замедляет запросы и усложняет отборы.

Частая ошибка — хранить числа в строковых реквизитах «для гибкости». В результате сортировка идёт как по строкам («10» раньше «2»), а суммировать значения в отчёте невозможно. Если по смыслу данные числовые — задавайте тип «Число» с нужной точностью.

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

Тип реквизитаКогда подходитОграничение
Строка (фикс.)Артикулы, ИНН, кодыЛишние символы обрезаются
Строка (неогранич.)Длинные описанияНельзя в отборах и индексах
ЧислоЦены, веса, процентыТребует задания точности
ДатаСроки, даты событийНужно выбрать состав даты
БулевоПризнаки «да/нет»Только два состояния
СсылкаСвязи с другими объектамиКонтроль удаления связанных объектов

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

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

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

Табличная часть имеет собственные реквизиты (колонки). Например, табличная часть «ЕдиницыИзмерения» может содержать колонки «Единица», «Коэффициент», «Штрихкод». В запросах к табличным частям обращаются через точку: Справочник.Номенклатура.ЕдиницыИзмерения.

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

Выбор механизма зависит от природы данных и от того, нужен ли к ним независимый доступ. Практические правила:

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

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

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

Как выбрать механизм хранения

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

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

Добавление реквизитов выполняется в конфигураторе через палитру свойств справочника. Последовательность действий:

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

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

Как реквизиты и табличные части работают в документах и отчётах

Главное назначение реквизитов справочника — подстановка данных в документы. Когда пользователь выбирает товар в документе «Реализация», обработчик события получает ссылку на элемент справочника и читает его реквизиты: ставку НДС, единицу измерения, признак услуги. Это избавляет от ручного ввода и ошибок.

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

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

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

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

Типичные ошибки
01
Числа и даты хранятся в строковых реквизитах — ломается сортировка и невозможны итоги в отчётах
02
Список значений хранится в одном строковом реквизите через запятую — нельзя построить отбор и отчёт по отдельным значениям
03
Составной тип реквизита без необходимости — замедляются запросы и усложняются отборы
04
Индексация всех реквизитов подряд — замедляется запись элементов без выигрыша в поиске
05
Изменение типа реквизита на рабочей базе без копии — потеря данных при реструктуризации
06
Дублирование данных в табличной части, хотя строки нужны в документах, — вместо подчинённого справочника

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

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

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

Заполнение элемента в режиме предприятия
Норма

Новые поля видны на форме и сохраняются

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

Полей нет на форме или значения не сохраняются

Сортировка списка по реквизиту
Норма

Числа и даты сортируются по значению

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

Порядок строковый («10» раньше «2») — тип выбран неверно

Отчёт по реквизиту
Норма

Значения доступны в отборах и группировках

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

Реквизит недоступен — вероятно, строка неограниченной длины

Табличная часть
Норма

Строки добавляются, сохраняются и видны в запросах

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

Строки пропадают — форма не связана с данными

Итог

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

Реквизиты хранят одиночные характеристики элемента, табличные части — списки строк внутри элемента, а для самостоятельных сущностей используют подчинённые справочники. Правильный тип данных реквизита определяет работу отборов, сортировки и отчётов, а изменение структуры данных выполняйте только после резервной копии.

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

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

Предопределённые поля (код, наименование, ссылка, пометка удаления) создаются платформой автоматически и присутствуют у любого справочника — их нельзя удалить. Реквизиты добавляет разработчик под задачи учёта, их состав, типы и обязательность полностью настраиваются в конфигураторе.

Можно ли добавить реквизит без конфигуратора?

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

Сколько табличных частей может быть у справочника?

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

Что произойдёт с данными при удалении реквизита?

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

Когда лучше использовать регистр сведений вместо реквизита справочника?

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