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

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

Что делает пересчет итогов в 1С

Разбираем, что делает пересчет итогов в 1С: как работает механизм, когда его запускать, какие ошибки он устраняет и как проверить результат без риска для данных.

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

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

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

Как устроены итоги и зачем они нужны платформе

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

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

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

Что конкретно делает операция пересчета итогов

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

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

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

Признаки, что итоги требуют пересчета

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

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

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

Сравните остаток в отчете с суммой по списку движений регистра за тот же период

Контроль остатков ошибаетсяИтоги не соответствуют движениям

Проверьте, исчезает ли ошибка после перепроведения документа

Расхождение в одном документеОшибка в данных, не в итогах

Пересчет итогов не поможет — исправляйте сам документ

Проблема после обмена или загрузкиИтоги могли не обновиться

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

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

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

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

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

Порядок действий в конфигураторе
  1. 1
    Сделайте резервную копию базы (выгрузка в dt или бэкап СУБД)
  2. 2
    Завершите все активные сеансы пользователей и фоновые задания
  3. 3
    Откройте конфигуратор, перейдите в «Администрирование — Тестирование и исправление»
  4. 4
    Отметьте только пункт «Пересчет итогов», выберите режим «Тестирование и исправление»
  5. 5
    Запустите и дождитесь завершения, не прерывая процесс
  6. 6
    Проверьте результат: сравните остатки в отчете с движениями по проблемному регистру

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

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

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

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

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

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

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

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

Расхождение сохраняется — ищите ошибку в документах

Остатки на конец каждого месяца
Норма

Цепочка остатков непрерывна и логична

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

Скачки и разрывы между соседними периодами

Проведение документа со списанием
Норма

Контроль остатков проходит корректно

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

Ложная ошибка нехватки остатка повторяется

Два разных отчета по одному регистру
Норма

Показывают одинаковые итоги

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

Отчеты расходятся между собой

Частая ошибка — запускать полное тестирование и исправление со всеми галочками «на всякий случай». Это в разы увеличивает время простоя и может внести нежелательные изменения (например, режим исправления ссылочной целостности создает объекты-заглушки). Для задачи пересчета итогов достаточно одной соответствующей проверки.

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

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

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

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

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

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

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

Отчет расходится с движениями при корректных документахЗапустите пересчет итогов по проблемному регистру
Ошибка в самом документе или ручной операцииИсправьте данные, пересчет итогов не нужен
Отчеты медленные, но цифры верныеСдвиньте период рассчитанных итогов в «Управлении итогами»
Ошибки чтения базы, сообщения о поврежденииСначала проверка физической целостности (chdbfl или средства СУБД), затем тестирование и исправление
Проблема появилась после обмена или загрузкиПроверьте, как обработка писала данные, затем пересчитайте итоги затронутых регистров

FAQ

Меняет ли пересчет итогов документы или проводки?

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

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

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

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

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

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

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

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

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

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

Да. В режиме «Предприятие» через «Управление итогами» можно выбрать конкретный регистр и пересчитать только его. Это заметно быстрее полного пересчета и сокращает время блокировки базы, если проблема локализована.

Итог

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

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