Справочники и Данные · 11 мин
Реквизиты и табличные части справочника 1С: назначение и практика
Для чего используются реквизиты и табличные части справочника в 1С: структура, настройка, типовые ошибки и практические примеры работы.
Справочник в 1С — это объект конфигурации, который хранит нормативно-справочную информацию: номенклатуру, контрагентов, сотрудников, склады, договоры. Простейший справочник содержит только два стандартных поля — код и наименование, но в реальной учётной задаче этого мало. Чтобы описать объект полноценно, используются реквизиты и табличные части: первые хранят одиночные характеристики элемента, вторые — списки связанных данных, количество которых заранее неизвестно.
Контрагент, например, описывается реквизитами «ИНН», «КПП», «Юридический адрес», а список его договоров или контактных лиц логично хранить в табличной части. От правильного выбора между реквизитом и табличной частью зависит скорость работы базы, удобство отчётов и отсутствие дублирования данных. Неверное решение на этапе проектирования потом приходится исправлять миграцией данных — а это всегда риск.
Материал разбирает назначение обоих механизмов, критерии выбора между ними, порядок настройки в конфигураторе и типичные ошибки, которые приводят к медленным отчётам и избыточным данным.
Что такое реквизит справочника и когда его добавлять
Реквизит — это дополнительное поле элемента справочника, которое хранит одно значение заданного типа: строку, число, дату, булево, перечисление или ссылку на другой объект. У каждого элемента справочника реквизит существует в единственном экземпляре. Если у контрагента один ИНН — это реквизит. Если телефонов несколько — одиночный реквизит уже не подходит.
Добавление реквизита оправдано, когда выполняются три условия: характеристика относится к самому элементу, значение одно, по этому полю нужен отбор, поиск или вывод в отчёты. Типичные примеры: «Ставка НДС» у номенклатуры, «Основной склад» у магазина, «Дата рождения» у физического лица, «Признак архивности» у договора.
Важно понимать различие стандартных реквизитов и добавленных вручную. Код, наименование, родитель, владелец и пометка удаления — стандартные, они есть всегда и управляются настройками справочника (длина кода, длина наименования, иерархия, подчинение). Пользовательские реквизиты создаются в конфигураторе на закладке «Данные» и отражаются в форме элемента.
Что такое табличная часть и какие задачи она решает
Табличная часть — это встроенная в элемент справочника таблица, каждая строка которой содержит набор колонок-реквизитов. Количество строк не ограничено структурой: у одного элемента может быть ноль строк, у другого — несколько сотен. Табличная часть физически хранится отдельно от основной таблицы справочника и всегда привязана к конкретному элементу через ссылку.
Классические сценарии использования табличных частей справочников:
- «Договоры» или «Банковские счета» у контрагента — список объектов с реквизитами каждого;
- «Состав комплекта» у номенклатуры — перечень входящих позиций с количеством;
- «Цены» или «Единицы измерения» у товара, если механизм ценообразования не вынесен в регистры сведений;
- «Контактные лица» у партнёра — ФИО, должность, телефон каждого человека;
- «График работы» у подразделения — дни недели и часы.
Ключевой признак, что нужна табличная часть: данные логически принадлежат элементу, не имеют самостоятельной жизни вне его и их количество переменно. Строка табличной части не может существовать без элемента-владельца — при удалении элемента удаляются и её строки.
Как выбрать: реквизит, табличная часть или отдельный объект
Проектировщик конфигурации постоянно решает, куда поместить данные. Выбор делается по трём вопросам: сколько значений у характеристики, нужна ли ей самостоятельная жизнь, требуется ли история изменений.
Варианты хранения данных
Одно значение на элемент, нужен отбор и быстрый доступ. Ограничение: нельзя хранить список и историю.
Несколько значений, жёстко привязанных к элементу, история не нужна. Ограничение: неудобны для отборов и агрегатных отчётов по всем элементам.
Значения сами являются объектами с собственными реквизитами, нужны права, поиск и ссылки из документов. Издержки: больше объектов, сложнее формы.
Нужна история изменений по датам или значения, общие для разных объектов. Издержки: требует отдельной настройки и обслуживания.
Практическое правило: если по данным нужно строить отчёт с группировкой или отбором по всей базе (например, «все договоры, истекающие в этом месяце»), табличная часть — плохой выбор, потому что запросы по табличным частям сложнее и медленнее. Здесь правильнее подчинённый справочник «Договоры контрагентов» или регистр сведений.
Обратная ситуация: состав комплекта почти никогда не анализируют сквозным отчётом, он нужен только внутри карточки товара и при сборке — значит, табличная часть справочника «Номенклатура» оправдана и не перегружает структуру.
Как добавить реквизит и табличную часть в конфигураторе
Изменение структуры справочника выполняется в конфигураторе и требует прав на изменение конфигурации. В типовых конфигурациях, находящихся на поддержке, прямое изменение объектов может привести к сложностям при обновлении — предпочтительный путь описан в следующем разделе.
- 1Откройте конфигуратор и найдите нужный справочник в дереве объектов.
- 2Откройте его свойства и перейдите на закладку «Данные».
- 3Добавьте реквизит: задайте имя, синоним и точный тип (строка с длиной, число с точностью, ссылка на объект).
- 4Для табличной части добавьте объект «Табличная часть», затем внутри неё — реквизиты колонок.
- 5На закладке «Формы» разместите новые поля на форме элемента.
- 6Обновите конфигурацию базы данных (F7), согласившись с реструктуризацией.
- 7Проверьте: создайте тестовый элемент, заполните новые поля, сохраните и откройте заново.
При реструктуризации платформа изменяет физические таблицы базы. На больших справочниках (сотни тысяч элементов) обновление может занять заметное время, поэтому его выполняют в нерабочие часы и обязательно после резервной копии.
Тип реквизита выбирайте максимально точно. Ссылочный тип («СправочникСсылка.Склады») вместо строки «Склад» гарантирует целостность: нельзя вписать несуществующее значение, а переименование склада автоматически отразится везде. Составной тип (несколько типов одновременно) используйте только при реальной необходимости — он замедляет индексирование и усложняет запросы.
Дополнительные реквизиты и сведения в типовых конфигурациях
В типовых решениях (1С:Бухгалтерия, Управление торговлей, ERP) есть механизм дополнительных реквизитов и дополнительных сведений, который позволяет расширять карточки объектов без изменения конфигурации. Это безопасный путь для большинства прикладных задач.
Дополнительный реквизит отображается прямо на форме элемента и доступен в отборах списка; дополнительное сведение хранится отдельно и видно по кнопке «Ещё». Настройка выполняется в режиме предприятия: «Администрирование» → «Общие настройки» → «Дополнительные реквизиты и сведения», далее выбирается набор для нужного справочника и добавляется свойство с типом значения.
Ограничения механизма: значения хранятся в универсальной таблице, поэтому отчёты по ним работают медленнее, чем по «настоящим» реквизитам, а сложные проверки заполнения настраиваются труднее. Если поле участвует в ключевых отчётах, обменах или проводках — правильнее добавить его через расширение конфигурации, а не через дополнительный реквизит.
Расширения конфигурации как компромисс
Расширение позволяет добавить реквизит или табличную часть к типовому справочнику, не снимая конфигурацию с поддержки. Это сохраняет простое обновление и при этом даёт полноценное поле в структуре данных. Подход требует навыков разработки, но для долгоживущих доработок предпочтительнее дополнительных реквизитов.
Проверка результата и типичные ошибки
После добавления реквизита или табличной части проверьте не только факт их появления, но и поведение в реальных сценариях: заполнение, сохранение, вывод в списке и в отчётах, работу обменов данными, если они настроены.
Как проверить результат
Элемент записывается, значения новых полей сохраняются после переоткрытия
Значения пропадают или возникает ошибка записи
Новые поля видны, доступны для ввода, порядок полей логичен
Поля отсутствуют на форме или перекрывают другие элементы
По реквизиту работает отбор в списке и группировка в отчёте
Поле недоступно в настройках отчёта
Новые поля учтены в правилах обмена или осознанно исключены
Обмен падает с ошибкой или данные расходятся между базами
FAQ
Чем реквизит отличается от стандартного поля «Наименование»?
Наименование — стандартный реквизит, который есть у любого справочника и обычно используется для представления элемента в списках и полях ввода. Пользовательские реквизиты создаются разработчиком под конкретные характеристики объекта и могут иметь любой тип: число, дату, ссылку на другой справочник и так далее.
Сколько табличных частей может быть у одного справочника?
Количество табличных частей не ограничено жёстко — можно создать несколько, например «Договоры» и «Контактные лица» у контрагента. Однако каждая табличная часть — это отдельная физическая таблица, поэтому без реальной потребности плодить их не стоит: усложняется форма, запросы и обмены данными.
Можно ли использовать табличную часть в отчёте?
Да, в запросе табличная часть доступна через конструкцию вида «Справочник.Номенклатура.СоставКомплекта». Но соединение основной таблицы с табличной частью по всей базе работает медленнее, чем запрос к регистру сведений, поэтому для массовой аналитики табличные части подходят плохо.
Что произойдёт с данными при удалении реквизита или табличной части?
При обновлении конфигурации базы данных все значения удаляемого реквизита и все строки удаляемой табличной части будут уничтожены без возможности восстановления. Перед таким изменением сделайте резервную копию и при необходимости выгрузите данные в файл или перенесите их в другой объект обработкой.
Когда дополнительный реквизит лучше обычного?
Дополнительный реквизит создаётся пользователем без конфигуратора и не затрагивает поддержку типового решения — это подходит для аналитических пометок, редко используемых свойств и быстрых доработок. Обычный реквизит нужен, когда поле участвует в проводках, обменах, ключевых отчётах или требует строгого контроля заполнения.
Можно ли сделать реквизит обязательным для заполнения?
Да, в свойствах реквизита устанавливается признак «Проверка заполнения» со значением «Выдавать ошибку». Для дополнительных реквизитов в типовых конфигурациях обязательность включается в настройках свойства. Учитывайте, что проверка сработает и при записи из обработок и обменов — убедитесь, что они заполняют это поле.
Что важно запомнить
Реквизит хранит одно значение характеристики элемента, табличная часть — переменный список связанных данных. Для истории и сквозной аналитики используйте регистры сведений и подчинённые справочники. В типовых конфигурациях предпочитайте дополнительные реквизиты и расширения, а перед любой реструктуризацией делайте резервную копию.