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