Перейти к содержимому

❓ 1.18 Для чего в справочниках 1С используются табличные части?

ИТС: Методические рекомендации — Рекомендации по выбору между подчиненным справочником и табличной частью
https://its.1c.ru/db/metod8dev#content:2706:hdoc

ИТС: Методические рекомендации — Особенности использования типов, предназначенных для манипулирования необъектными данными
https://its.1c.ru/db/metod8dev/content/2701/hdoc

ИТС: Методические рекомендации — Особенности использования типов данных, предназначенных для манипулирования объектами базы данных
https://its.1c.ru/db/metod8dev/content/2700/hdoc

ИТС: Руководство разработчика — Теория: особенности использования ссылочных данных
https://its.1c.ru/db/pubdevguide83#content:287:hdoc

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

В платформе 1С можно выделить две модели хранения информации:

  • объектная, или ссылочная;
  • необъектная.

В объектной модели данные имеют собственную объектную природу.

Для таких данных характерно следующее:

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

К объектным данным относятся, например:

  • справочники;
  • документы;
  • планы видов характеристик;
  • планы обмена.

В необъектной модели в базе данных хранятся не объекты, а записи.

Для таких данных характерно следующее:

  • у записи нет собственной ссылки;
  • запись не является объектом платформы;
  • если удалить запись и добавить новую с теми же реквизитами для 1С это та же самая запись;
  • в таблицах нет поля Ссылка.

К необъектным данным относятся, например:

  • регистры сведений;
  • регистры накопления;
  • регистры бухгалтерии;
  • константы;
  • последовательности.

Табличные части могут добавляться к объектным данным: например, к справочникам или документам.

Например, у справочника Клиенты может быть табличная часть Адреса.

При этом важно понимать, что строка табличной части — это не самостоятельный объект платформы.

Как это хранится в базе данных:

  • для табличной части создается отдельная таблица;
  • связь с владельцем выполняется по ссылке объекта;
  • строка табличной части не имеет собственной ссылки;
  • строка табличной части не является самостоятельной объектной сущностью.

Хранение табличной части в базе данных

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

Иначе говоря, табличная часть подходит для данных, которые являются частью самого элемента справочника и не должны жить отдельно от него.

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

Как выбрать: подчиненный справочник или табличная часть

Заголовок раздела «Как выбрать: подчиненный справочник или табличная часть»

При проектировании важно определить, чем является связанная информация:

  • самостоятельной сущностью;
  • или просто набором строк внутри объекта.

Подчиненный справочник лучше выбрать, если:

Заголовок раздела «Подчиненный справочник лучше выбрать, если:»
  • у данных есть собственная объектная природа;
  • на эти данные могут понадобиться ссылки;
  • данные могут использоваться в документах, регистрах или других справочниках;
  • данные живут долго и участвуют в логике системы;
  • количество строк может быть большим.

Примеры:

  • контрагент → расчетные счета;
  • сотрудник → образование;
  • сотрудник → состав семьи;
  • сотрудник → места работы.

В таких случаях данные лучше оформлять как отдельные объекты, а не как строки табличной части.

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

Примеры:

  • номенклатура → единицы измерения и коэффициенты пересчета;
  • сотрудник → утверждаемые документы.

Табличные части удобны, но их не стоит использовать бездумно.

При чтении объекта платформа загружает связанные с ним данные, в том числе табличные части. Поэтому большие табличные части могут создавать лишнюю нагрузку на память.

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

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

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