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