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

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

Реквизиты и табличные части справочника 1С: назначение и практическое применение

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

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

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

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

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

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

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

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

Что такое табличная часть и какие задачи она решает

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

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

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

Что выбрать для хранения данных

Реквизит

Одно значение на элемент: ИНН, ставка, флаг, ссылка на единицу измерения. Простой отбор и вывод в отчётах.

Табличная часть

Список строк внутри элемента: состав комплекта, счета. Строки не существуют отдельно от владельца, на них нельзя сослаться.

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

Самостоятельные объекты с владельцем: договоры контрагента, единицы измерения товара. На элементы можно ссылаться из документов.

Как добавить реквизит или табличную часть в конфигураторе

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

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

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

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

Главная ценность реквизитов справочника проявляется в момент, когда элемент выбирается в документе. По ссылке на элемент система может автоматически подставить связанные данные: при выборе контрагента подставляется его ИНН, договор по умолчанию и адрес; при выборе номенклатуры — единица измерения и ставка НДС. Это ускоряет ввод документов и снижает количество ошибок.

В запросах реквизиты доступны как поля таблицы справочника, например Справочник.Контрагенты.ИНН. Табличные части в запросах представлены отдельными виртуальными таблицами вида Справочник.Номенклатура.Состав, которые соединяются с основной таблицей по ссылке. Это позволяет строить отчёты по строкам табличных частей — например, список всех комплектов, содержащих конкретный товар.

При построении отчётов учитывайте, что обращение к реквизитам «через точку» от ссылки (разыменование) в больших выборках замедляет запрос. Если отчёт тормозит, проверьте, не выбираются ли лишние поля через разыменование, и перенесите условия в соединения таблиц.

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

Большинство проблем со справочниками возникает не из-за технических сбоев, а из-за неверных решений на этапе проектирования. Ниже — ошибки, которые встречаются чаще всего.

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

Отдельная группа проблем — попытка обойти ограничения платформы «хитрыми» приёмами: хранение структурированных данных в реквизите типа «Хранилище значения» или в длинной строке с разделителями. Такие решения работают только через программный код, недоступны для отчётов и создают зависимость от разработчика. Используйте их только когда стандартные механизмы объективно не подходят.

Как проверить, что структура спроектирована правильно

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

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

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

Количество значений на элемент
Норма

Для каждого реквизита у любого элемента ровно одно значение

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

Пользователи вынуждены вписывать несколько значений в одно поле

Использование в документах
Норма

Нужные данные подставляются автоматически при выборе элемента

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

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

Отчётность
Норма

По каждому показателю можно построить отбор или группировку в отчёте

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

Часть данных хранится «текстом» и недоступна для анализа

Самостоятельность строк
Норма

Строки табличной части нужны только внутри владельца

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

На строки нужно ссылаться из документов — значит, нужен подчинённый справочник

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

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

Дополнительные реквизиты как альтернатива изменению конфигурации

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

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

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

Как выбрать способ хранения

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

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

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

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

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

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

Можно ли удалить реквизит, в котором уже есть данные?

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

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

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

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

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

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

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

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

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