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

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

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

Как пересчитать итоги в 1С: пересчет итогов регистров, восстановление последовательностей, тестирование и исправление. Пошаговые инструкции и ошибки.

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

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

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

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

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

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

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

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

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

Ошибки при проведенииКонтроль остатков видит неверные данные

Проверьте, не было ли аварийных завершений и обменов

Медленное проведениеИтоги неактуальны или отключены

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

Расхождение за один периодЛокальная проблема

Достаточно пересчета итогов за конкретный период

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

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

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

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

Способ 1. Пересчет через «Управление итогами»

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

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

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

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

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

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

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

Учтите ограничения: тестирование и исправление требует монопольного доступа и для файловой базы большого объема может идти несколько часов. Для клиент-серверных баз часть проверок недоступна или выполняется иначе — в таких случаях предпочтительнее пересчет итогов штатными средствами платформы или СУБД-профилактика по регламенту.

Способ 3. Программный пересчет итогов

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

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

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

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

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

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

Восстановление последовательностей и границы документов

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

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

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

Управление итогами

Быстрый точечный пересчет по регистру за период; подходит для локальных расхождений

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

Глубокая проверка всей базы; долго, требует монопольного доступа, уместно после сбоев

Программный пересчет

Гибкая автоматизация и регламентные задания; требует навыков разработки

Восстановление последовательностей

Исправляет порядок проведения, а не сами итоги; применять при проведении задним числом

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

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

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

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

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

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

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

Остаток равен сумме приходов минус расходы

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

Расхождение сохраняется после пересчета

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

Проводится без ошибок контроля остатков

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

Ошибки блокировок или ложный отказ по остаткам

Скорость отчетов
Норма

Отчет за месяц формируется быстро

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

Отчет «думает» — граница итогов не установлена

Итог

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

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

Частые вопросы

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

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

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

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

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

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

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

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

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

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

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

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