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

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

Для чего нужна табличная часть в справочнике 1С

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

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

Классический пример — справочник «Номенклатура» с табличной частью «Штрихкоды»: у одного товара может быть несколько штрихкодов от разных поставщиков. Другой пример — справочник «Сотрудники» с табличной частью «Состав семьи» или «Образование». Все эти данные невозможно уместить в одиночный реквизит, но они логически принадлежат элементу и должны храниться вместе с ним.

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

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

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

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

Типовые сценарии применения

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

Штрихкоды и единицы измерения номенклатуры

У товара может быть несколько штрихкодов: базовый, транспортный, штрихкоды разных поставщиков. Хранить их в табличной части позволяет вводить и проверять прямо в карточке товара. Аналогично табличная часть «Единицы измерения» хранит упаковки с коэффициентами пересчёта.

Состав комплекта или спецификация

Для комплектов и наборов табличная часть «Состав» содержит перечень входящих товаров с количеством. Это простейший вариант спецификации: строки ссылаются на другие элементы справочника «Номенклатура», а при продаже комплекта программа может списывать составляющие.

Контактные лица и дополнительные сведения контрагентов

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

Данные не живут отдельноПодходит

Строки бессмысленны без элемента-владельца: штрихкод без товара не нужен

Нужны ссылки из документовНе подходит

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

Нужны отчёты по строкамОграничение

По табличным частям отчёты строятся сложнее, чем по регистрам сведений

Табличная часть, подчинённый справочник или регистр сведений

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

КритерийТабличная частьПодчинённый справочникРегистр сведений
Ссылка на строку из других объектовНетДаЧерез ключ записи
История изменений по периодамНетНетДа (периодический)
Удаление вместе с владельцемАвтоматическиНет (нужна обработка)Нет
Удобство отчётов по строкамСреднееВысокоеВысокое
Редактирование в карточке элементаДа, на формеЧерез отдельный списокЧерез отдельную форму

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

Сравнение вариантов хранения

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

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

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

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

Регистр сведений

Поддерживает периодичность и удобен для отчётов. Ограничение: менее нагляден для пользователя, ввод идёт через отдельную форму.

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

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

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

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

Работа с табличной частью в режиме предприятия

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

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

Обращение к табличной части из кода и отчётов

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

bsl
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| НоменклатураШтрихкоды.Ссылка КАК Товар,
| НоменклатураШтрихкоды.Штрихкод КАК Штрихкод
|ИЗ
| Справочник.Номенклатура.Штрихкоды КАК НоменклатураШтрихкоды
|ГДЕ
| НоменклатураШтрихкоды.Ссылка = &Товар";
Запрос.УстановитьПараметр("Товар", ТоварСсылка);

При построении отчётов на СКД табличная часть доступна как вложенная таблица — её можно соединять с основной таблицей справочника. Учтите, что соединение с табличной частью размножает строки результата: если у товара три штрихкода, в отчёте появятся три строки на один товар. Для итогов по товарам используйте группировки.

Типичные ошибки и ограничения

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

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

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

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

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

Сохранение строк
Норма

После записи и повторного открытия карточки строки на месте

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

Строки исчезают — элемент не был записан или форма не связана с табличной частью

Отчёт по табличной части
Норма

Запрос вида Справочник.Имя.ТабличнаяЧасть возвращает строки

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

Ошибка «поле не найдено» — неверное имя табличной части или её нет в конфигурации

Обновление конфигурации
Норма

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

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

Табличная часть пропала — она была добавлена в основную конфигурацию, а не в расширение

Итог

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

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

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

Можно ли добавить табличную часть в типовую конфигурацию без снятия с поддержки?

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

Чем табличная часть отличается от дополнительных сведений?

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

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

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

Можно ли загрузить данные в табличную часть из Excel?

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

Почему табличная часть не отображается на форме элемента?

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

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

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