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

Администрирование · 9 мин

Управление итогами в 1С: назначение, настройка и типичные ошибки

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

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

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

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

Что такое итоги и зачем их хранить

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

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

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

Где находится настройка «Управление итогами»

Настройка доступна в конфигураторе: меню «Администрирование» → «Управление итогами». Диалог показывает список регистров накопления и регистров бухгалтерии с двумя ключевыми колонками: «Использование итогов» и «Текущие итоги», а также общую дату, до которой рассчитаны итоги по всем регистрам сразу.

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

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

Как платформа рассчитывает остатки на дату

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

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

Именно поэтому «отставшие» итоги — одна из самых частых причин жалоб на медленную работу 1С, хотя пользователи обычно винят сеть или сервер.

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

Проверить дату в «Администрирование → Управление итогами»

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

Проверить флажки по регистру в том же диалоге

Остаток в отчёте не сходится с движениями документовВозможно повреждение итогов

Выполнить пересчёт итогов на тестовой копии

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

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

Пересчёт итогов выполняется через «Администрирование → Управление итогами» (команда установки периода рассчитанных итогов) либо через тестирование и исправление информационной базы с включённой проверкой логической целостности. В клиент-серверных базах пересчёт также можно запускать средствами регламентных заданий или кода на встроенном языке.

Порядок восстановления итогов
  1. 1
    Сделайте резервную копию базы или работайте на копии
  2. 2
    Откройте конфигуратор: Администрирование → Управление итогами
  3. 3
    Проверьте, что у нужных регистров включены «Использование итогов» и «Текущие итоги»
  4. 4
    Установите период рассчитанных итогов на последний закрытый месяц
  5. 5
    Дождитесь завершения пересчёта и проверьте скорость отчёта остатков
  6. 6
    Если данные не сходятся — запустите тестирование и исправление с пересчётом итогов

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

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

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

Во встроенном языке итогами управляют методы объекта регистра: УстановитьПериодРассчитанныхИтогов(), ПолучитьПериодРассчитанныхИтогов(), ПересчитатьИтоги(), УстановитьИспользованиеИтогов(). Это позволяет автоматизировать обслуживание: например, регламентным заданием раз в месяц сдвигать дату актуальности.

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

bsl
РегистрыНакопления.ТоварыНаСкладах.УстановитьПериодРассчитанныхИтогов(КонецМесяца(ТекущаяДатаСеанса()));

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

Типичные ошибки
01
Отключение итогов «для экономии места» — экономия небольшая, а отчёты и проведение документов замедляются в разы
02
Пересчёт итогов в разгар рабочего дня на большой базе — блокировки и жалобы пользователей; делайте это в нерабочее время
03
Проведение документов задним числом без контроля — каждый такой документ заставляет пересчитывать итоги с даты документа; используйте дату запрета изменения данных
04
Игнорирование отставшей даты актуальности — постепенная деградация скорости, которую ошибочно лечат наращиванием железа

Важное ограничение: управление итогами не заменяет контроль корректности данных. Если в учёте есть ошибки (незакрытые периоды, некорректные движения), пересчёт итогов их не исправит — он лишь приведёт агрегаты в соответствие с движениями, какими бы они ни были.

Ещё одна граница самостоятельной работы: в клиент-серверных базах под высокой нагрузкой вопросы производительности итогов пересекаются с настройками СУБД (индексы, статистика, планы запросов). Если пересчёт итогов не решает проблему скорости, дальнейшая диагностика требует участия специалиста по администрированию.

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

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

Дата актуальности итогов в диалоге «Управление итогами»
Норма

Соответствует последнему закрытому месяцу

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

Отстает на несколько месяцев или пустая

Скорость отчёта по остаткам на текущую дату
Норма

Открывается за секунды

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

Выполняется минутами при включённых текущих итогах

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

Значения совпадают

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

Расхождение — нужен пересчёт итогов и анализ движений

Частые вопросы об управлении итогами

Чем «текущие итоги» отличаются от «использования итогов»?

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

Почему после свёртки базы отчёты стали медленнее?

При свёртке старые движения удаляются, и итоги пересчитываются заново. Если после операции дата актуальности итогов оказалась в прошлом или итоги не пересчитаны, отчёты будут досчитывать большие интервалы. Проверьте дату в «Управление итогами» и при необходимости выполните пересчёт.

Можно ли отключить итоги по ненужному регистру?

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

Как часто нужно пересчитывать итоги?

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

Влияет ли проведение документов задним числом на итоги?

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

Итог

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

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