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

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

Пересчет итогов в 1С 8.3: пошаговая инструкция

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

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

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

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

Что такое итоги и когда они требуют пересчета

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

Признаки того, что итоги рассинхронизировались с движениями:

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

Сравните оборотно-сальдовую ведомость с карточкой счета

Ошибка контроля остатков при проведенииВозможен сбой текущих итогов

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

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

Выполните пересчет после восстановления

Как пересчитать итоги через конфигуратор

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

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

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

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

Пересчет итогов через тестирование и исправление

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

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

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

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

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

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

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

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

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

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

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

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

Особенности для файловых и клиент-серверных баз

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

В клиент-серверном варианте (MS SQL, PostgreSQL и др.) пересчет выполняется на стороне СУБД и обычно быстрее, но создает нагрузку на сервер и может удерживать блокировки. Перед запуском проверьте отсутствие активных сеансов через консоль кластера и при необходимости установите блокировку сеансов, чтобы пользователи не подключились в середине операции.

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

Обслуживание в конфигураторе

Быстрый точечный пересчет по выбранным регистрам; подходит, когда проблема локализована

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

Пересчет в составе комплексной проверки; уместен после сбоев, но занимает много времени

Программный вызов

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

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

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

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

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

Остаток в отчете совпадает с суммой по детальным записям

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

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

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

Документ проводится без ложных ошибок нехватки

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

Ошибка контроля возникает при наличии остатка

Скорость формирования отчетов
Норма

Отчеты строятся быстро

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

Отчеты «висят» — возможно, итоги отключены

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

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

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

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

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

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

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

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

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

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

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

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

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

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

После пересчета отчет всё равно показывает неверные данные. Что делать?

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

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

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

Итог

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

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