← Назад к вопросам

В чем разница между хранением информации в регистре сведений и в табличной части?

2.0 Middle🔥 221 комментариев
#Регистры#СУБД и хранение

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI23 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Регистр сведений vs Табличная часть

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

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

Регистр сведений — отдельная таблица в БД для хранения свойств объектов:

  • Независимая таблица в базе данных
  • Может содержать информацию о многих объектах
  • Поддерживает многомерность (иерархические ключи)
  • Позволяет быстрый поиск и фильтрацию по ключам
  • Данные существуют независимо от документа
  • Легко запрашивать информацию за период
  • Оптимален для исторических и периодических данных
  • Используется для остатков, движений, сведений

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

Табличная часть — встроенная таблица внутри документа:

  • Часть структуры документа
  • Хранится в одной записи документа
  • Загружается вместе с документом целиком
  • Данные жестко привязаны к документу
  • Удаление документа = удаление всех строк
  • Быстрый доступ к строкам документа
  • Небольшой размер (до 1-2 МБ в документе)
  • Используется для подробностей, спецификаций

Практические различия

ПараметрРегистр сведенийТабличная часть
ХранилищеОтдельная таблица БДТаблица документа
НезависимостьНезависимо от объектаЗависит от документа
Размер данныхБольшой объёмОграничено (МБ)
Скорость загрузкиБыстро нужные строкиВся таблица целиком
ЗапросыПо всем объектамТолько текущего док.
ИсторияСохраняетсяПереписывается
ПримерыОстатки, ценыТовары в накладной

Примеры использования

// Регистр сведений - информация о ценах товаров
РегистрСведений.ЦеныТоваров.УстановитьНовый();
РегистрСведений.ЦеныТоваров.Товар = ТекущийТовар;
РегистрСведений.ЦеныТоваров.Дата = ТекущаяДата();
РегистрСведений.ЦеныТоваров.Цена = НоваяЦена;
РегистрСведений.ЦеныТоваров.Записать();

// Табличная часть - товары в накладной
Документ = Новый ДокументОбъект.ПриходнаяНакладная();
Строка = Документ.Товары.Добавить();
Строка.Товар = Справочник.Товары.ПолучитьСсылку(УИД);
Строка.Количество = 10;

Когда использовать каждый

Регистр сведений лучше для:

  • Информации, необходимой из разных мест (цены, курсы валют)
  • Истории изменений (хронология зарплаты, льготы)
  • Остатков и накопленных движений
  • Больших объёмов данных
  • Частых запросов по разным критериям

Табличная часть лучше для:

  • Деталей документа (товары в накладной)
  • Строк, существующих только в контексте документа
  • Небольших объёмов данных (до нескольких сотен строк)
  • Данных, которые не нужны в других документах
  • Когда нужна атомарность (всё вместе или ничего)

Производительность

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