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

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

1С: как запустить пересчет итогов

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

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

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

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

Что такое итоги и когда их нужно пересчитывать

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

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

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

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

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

Разные итоги на одну датуПовреждены таблицы итогов

Сформируйте один отчет дважды на одинаковую границу

База работает медленно, но цифры верныИтоги в порядке, проблема в другом

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

Подготовка: резервная копия и монопольный доступ

Перед любым пересчетом итогов сделайте резервную копию базы. Для файловой базы достаточно скопировать каталог с файлом 1Cv8.1CD при отсутствии активных сеансов. Для клиент-серверной базы используйте средства СУБД (резервное копирование в MS SQL или PostgreSQL) либо выгрузку в dt через конфигуратор. Копия позволит откатиться, если процедура завершится с ошибкой на середине.

Пересчет итогов через конфигуратор требует монопольного доступа: все пользователи должны завершить сеансы, фоновые задания — остановиться. В клиент-серверном варианте завершить сеансы можно из консоли кластера или через «Администрирование → Активные пользователи» в режиме предприятия, после чего установить блокировку сеансов, чтобы никто не вошел заново во время процедуры.

Пересчет итогов через конфигуратор

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

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

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

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

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

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

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

// Пересчет итогов по регистру бухгалтерии
РегистрыБухгалтерии.Хозрасчетный.ПересчитатьИтоги();

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

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

Управление актуальностью итогов вместо полного пересчета

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

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

Маршрут решения

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

Отчеты расходятся с движениями по одному региструВыполните ПересчитатьИтоги() только для этого регистра
Расхождения по многим регистрам после сбоя сервераЗапустите тестирование и исправление с пересчетом итогов по всей конфигурации
Отчеты верные, но строятся медленноПроверьте актуальность итогов и границу рассчитанных итогов, полный пересчет не нужен
Пересчет завершается с ошибками в протоколеПроблема в данных, а не в итогах — выполните проверку логической целостности и анализ поврежденных записей

Проверка результата и типичные ошибки

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

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

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

FAQ: частые вопросы о пересчете итогов

Сколько времени занимает пересчет итогов?

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

Можно ли пересчитать итоги без конфигуратора?

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

Опасен ли пересчет итогов для данных?

Сама процедура не изменяет документы и движения — она перестраивает только служебные таблицы агрегатов. Риск связан с прерыванием процесса на поврежденной базе, поэтому резервная копия перед запуском обязательна.

Отчет показывает неверные остатки, но итоги в порядке. Что делать?

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

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

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

Чем пересчет итогов отличается от восстановления последовательности?

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

Итог

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

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