Могут ли быть таблицы итогов у регистра сведений

1. Понятие «таблицы итогов» в 1С

  • Таблицы итогов (или агрегированные таблицы) мы обычно ассоциируем с регистрами накопления или расчётов:
    – В регистрах накопления есть виртуальные таблицы ТекущиеДанные, ОборотыПоРегистратору, ОборотыПоСрезуДанных, которые хранят предварительно рассчитанные суммы/остатки.
    – Эти «итоговые» таблицы позволяют быстро получать агрегаты (остатки или обороты) без длительных вычислений по истории.

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

2. Отсутствие встроенных «итоговых» таблиц в регистрах сведений

Нету виртуальных агрегатов
– Для регистров сведений доступны только четыре виртуальных таблицы:

<br/>РегистрСведений.&lt;Имя&gt;
РегистрСведений.&lt;Имя&gt;.СрезДанных
РегистрСведений.&lt;Имя&gt;.СрезДанныхПоРегистратору
РегистрСведений.&lt;Имя&gt;.СрезДанныхПоИзмерению
  1. – Ни ТекущиеДанные, ни Обороты… у них не определены.

  2. Архитектура данных
    – Регистры сведений не предполагают накопление числовых показателей (сумм, остатков), они хранят «статические» параметры или справочные факты (константы, настройки, характеристики предметов).

  3. Причина
    – Платформа считает, что «итоги» по сведениям логичнее считать ad-hoc (по SELECT … GROUP BY) или встраивать в отчёты, а не хранить постоянно, чтобы не нагружать систему избыточными расчётами.

3. Как получить «итоговые» данные по регистру сведений

Хотя у регистра сведений нет встроенных итоговых таблиц, агрегаты можно построить самостоятельно:

**СКД / Запрос с группировкой

<br/>**Запрос.Текст =
"ВЫБРАТЬ
Измерение1,
Измерение2,
Макс(Период) КАК ПоследнийПериод,
Макс(ЗначениеАтрибута) КАК АктуальноеЗначение
ИЗ
РегистрСведений.МойРегистр
ГДЕ
Период <= &НаПериод
СГРУППИРОВАТЬ ПО
Измерение1,
Измерение2";
  1. – Позволяет выбрать «итоги» (последнее значение) по комбинации измерений.

  2. Использование СрезДанных
    – Виртуальная таблица .СрезДанных(Период = &Период) уже возвращает по каждому набору измерений единственную (последнюю) запись — аналог «текущих данных».
    – Фактически это и есть самый близкий эквивалент «итоговой таблицы» для сведений.

  3. Создание вспомогательного регистра накопления
    – Если нужен быстрый доступ к часто востребованным агрегатам (например, средним, суммам значений), можно завести регистр накопления и при каждом изменении сведений обновлять в нём итоговые показатели:

    • Документ–регистратор записывает данные в оба регистра: в регистр сведений (для истории) и в регистр накопления (для «быстрых цифр»).

    • Это классический шаблон «Событие → Обработка → Агрегирование».

  4. Временные таблицы и кэш в ОбщихМодулях
    – При сложных расчётах можно в памяти (в Соответствие или ТаблицаЗначений) хранить агрегаты за сессию, чтобы не перегружать базу.

4. Когда всё-таки можно «смоделировать» итоговую таблицу у регистра сведений

  1. Расширения платформы
    – Теоретически, внутри кластера 1С сам механизм хранения может быть изменён, но API к регистру сведений всё равно не даст доступа к «итогам» напрямую.

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

5. Ключевые рекомендации для собеседования

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

  • Покажите глубину:
    – Расскажите про виртуальную таблицу .СрезДанных и её работу.
    – Упомяните возможность делать группировки в запросах и заводить вспомогательный регистр накопления.

  • Приведите пример:
    Вышеописанный запрос с Макс(Период) или использование .СрезДанных.

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