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

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

Варианты пересчета итогов в режиме 1С:Предприятие 8

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

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

В платформе есть несколько способов выполнить пересчет: через диалог администрирования в режиме «1С:Предприятие», через обработку «Тестирование и исправление», программными методами встроенного языка, а также через управление периодом рассчитанных итогов. Каждый вариант отличается скоростью, требованиями к монопольному доступу и областью применения.

Ниже разобраны все доступные варианты, условия их выбора, порядок действий и способы проверить результат. Материал ориентирован на администраторов и пользователей с правами на административные функции.

Когда итоги требуют пересчета

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

Типичные причины рассинхронизации: аварийное завершение сеанса во время проведения документов, отключение электричества, разрыв соединения с сервером СУБД, загрузка данных обменами с отключенным контролем, ручное изменение движений через внешние обработки минуя штатные механизмы. В файловых базах риск выше из-за особенностей механизма блокировок.

Остатки в отчетах расходятсяВероятна рассинхронизация итогов

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

Медленное проведение документовНеактуальный период рассчитанных итогов

Проверить период рассчитанных итогов в управлении итогами

Ошибка при получении остатковПовреждение таблиц итогов

Запустить Тестирование и исправление

После обмена данными остатки «поплыли»Движения загружены без пересчета

Выполнить пересчет итогов по затронутым регистрам

Вариант 1. Восстановление итогов через меню администрирования

Самый простой способ — штатный пункт меню. В режиме «1С:Предприятие» откройте раздел «Администрирование», затем «Обслуживание» (в ряде конфигураций — «Поддержка и обслуживание») и найдите команду «Восстановление итогов» или «Пересчет итогов». Точное расположение зависит от конфигурации: в «чистой» платформенной панели функций команда доступна через «Все функции — Стандартные — Управление итогами».

Через «Все функции» порядок такой: откройте главное меню, выберите «Все функции» (если пункт скрыт, включите его в «Сервис — Параметры» флажком «Отображать команду Все функции»). В дереве найдите «Стандартные — Управление итогами». Откроется диалог со списком регистров накопления и бухгалтерии, где для каждого регистра можно выполнить пересчет итогов, пересчет текущих итогов или изменить период рассчитанных итогов.

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

Пересчет итогов через «Все функции»
  1. 1
    Завершите работу пользователей или договоритесь об окне обслуживания
  2. 2
    Откройте «Сервис — Параметры» и включите отображение команды «Все функции»
  3. 3
    Откройте «Все функции — Стандартные — Управление итогами»
  4. 4
    Выберите нужный регистр и выполните «Пересчитать итоги»
  5. 5
    Дождитесь окончания и проверьте остатки в отчете

Вариант 2. Тестирование и исправление информационной базы

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

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

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

Вариант 3. Программный пересчет методами встроенного языка

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

Также доступны методы управления периодом рассчитанных итогов: ПолучитьПериодРассчитанныхИтогов(), УстановитьПериодРассчитанныхИтогов(), ПолучитьМинимальныйПериодРассчитанныхИтогов(). Программный вызов удобно оформить как регламентное задание или внешнюю обработку для администратора.

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

// Только текущие итоги (быстрее)
РегистрыНакопления.ТоварыНаСкладах.ПересчитатьТекущиеИтоги();

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

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

Вариант 4. Управление периодом рассчитанных итогов

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

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

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

Сравнение вариантов пересчета

Управление итогами через «Все функции»

Подходит для разового ручного пересчета выбранных регистров; требует монопольного доступа и прав администратора

Тестирование и исправление

Нужен при повреждении данных; долгий, требует копии базы, исправляет не только итоги

Программные методы

Для автоматизации и регламентных заданий; гибко, но нужны навыки и контроль блокировок

Сдвиг периода рассчитанных итогов

Ускоряет отчеты без полного пересчета; не исправляет поврежденные итоги

Файловые и клиент-серверные базы: различия

В файловых базах все варианты пересчета требуют монопольного режима — пока хоть один пользователь в базе, операция не запустится. Дополнительно для файловых баз доступна утилита chdbfl.exe из каталога платформы: она проверяет физическую целостность файла 1Cv8.1CD и может исправить повреждения, из-за которых штатный пересчет завершается ошибкой.

В клиент-серверных базах пересчет выполняется на стороне СУБД и обычно быстрее, но требует координации: блокировки на уровне СУБД могут привести к тайм-аутам при параллельной работе пользователей. Рекомендуется блокировать сеансы через консоль кластера серверов и отключать регламентные задания на время обслуживания.

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

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

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

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

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

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

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

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

Расхождение сохраняется — нужно тестирование и исправление

Скорость отчета по текущим остаткам
Норма

Формируется быстро

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

Отчет долгий — проверить период рассчитанных итогов

Период рассчитанных итогов
Норма

Соответствует актуальным потребностям учета

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

Стоит далекое прошлое — сдвинуть период вперед

Повторный запуск пересчета
Норма

Завершается без ошибок

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

Ошибки СУБД или блокировок — разбирать логи и технологический журнал

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

Частая ошибка — запуск пересчета в разгар рабочего дня. Пользователи получают ошибки блокировок, документы не проводятся, а сам пересчет может прерваться по тайм-ауту. Вторая ошибка — ожидать от пересчета итогов исправления самих движений: если документ проведен с неверными данными, пересчет честно пересчитает неверные итоги. Сначала исправляются движения, потом итоги.

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

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

Как выбрать действие

Остатки расходятся с движениями, но база работает стабильноПересчет итогов через «Управление итогами» или программно
Пересчет завершается ошибкой или не помогаетРезервная копия, затем «Тестирование и исправление»
Отчеты медленные, но цифры верныеСдвинуть период рассчитанных итогов вперед
Проблема повторяется регулярноНастроить регламентное задание пересчета и проверить стабильность инфраструктуры

FAQ

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

Да. В диалоге «Управление итогами» пересчет выполняется для выбранного регистра, а программные методы вызываются у менеджера конкретного регистра, например РегистрыНакопления.ТоварыНаСкладах.ПересчитатьИтоги(). Полный пересчет всех регистров сразу нужен только при массовом повреждении данных.

Чем отличается ПересчитатьИтоги() от ПересчитатьТекущиеИтоги()?

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

Нужен ли монопольный доступ для пересчета итогов?

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

Почему после пересчета итогов отчеты все равно медленные?

Скорее всего, период рассчитанных итогов установлен на раннюю дату, и платформа вычисляет актуальные остатки из всей истории движений. Сдвиньте период рассчитанных итогов ближе к текущей дате через «Управление итогами» или метод УстановитьПериодРассчитанныхИтогов().

Исправит ли пересчет итогов ошибки в проведенных документах?

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

Что делать, если пересчет итогов завершается ошибкой?

Сделайте резервную копию, затем для файловой базы проверьте файл утилитой chdbfl.exe и выполните «Тестирование и исправление». Для клиент-серверной базы изучите технологический журнал и логи СУБД — причина может быть в поврежденных индексах или нехватке ресурсов сервера.

Итог

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

Пересчет итогов в 1С:Предприятие 8 выполняется через «Управление итогами», «Тестирование и исправление» или программными методами регистров. Перед операцией делается резервная копия и завершаются сеансы пользователей. Если цифры верны, но отчеты медленные — вместо полного пересчета достаточно сдвинуть период рассчитанных итогов.