Администрирование · 10 мин
Пересчет итогов в 1С 8.3: пошаговая инструкция
Как выполнить пересчет итогов в 1С 8.3 через конфигуратор и тестирование, зачем это нужно, когда процедура обязательна и как проверить результат без риска для базы.
Итоги в 1С — это заранее рассчитанные промежуточные данные по регистрам (накопления, сведений, бухгалтерии), которые платформа хранит отдельно, чтобы быстро строить отчеты и получать остатки. Когда итоги «ломаются» — из-за аварийного завершения работы, сбоя сервера, прямых изменений данных или ошибок при обмене — отчеты начинают показывать неверные остатки, а проведение документов может выдавать ошибочные сообщения о нехватке товара или отрицательных остатках.
Пересчет итогов — это штатная процедура, которая заново рассчитывает эти промежуточные данные на основании движений документов. Сами движения она не меняет: операция затрагивает только служебные таблицы итогов. Именно поэтому пересчет считается относительно безопасной операцией, хотя выполнять ее следует осмысленно и с резервной копией.
Ниже разобраны оба способа пересчета — через конфигуратор и через механизм тестирования и исправления, а также ситуации, когда процедура действительно нужна, и типичные ошибки, которые приводят к потере времени или данным.
Что такое итоги и когда они требуют пересчета
Регистры накопления и бухгалтерии хранят не только записи движений, но и таблицы итогов — срезы остатков и оборотов по периодам. Благодаря им отчет «Остатки товаров» формируется за секунды, а не пересчитывает миллионы строк заново. Для регистров накопления есть еще понятие «текущие итоги» — срез на актуальную дату, который используется при контроле остатков при проведении.
Признаки того, что итоги рассинхронизировались с движениями:
- отчет по остаткам показывает одно значение, а карточка расчетов или детальный отчет по движениям — другое;
- при проведении документа возникает ошибка «недостаточно товара», хотя по отчету остаток есть;
- после восстановления базы из копии или аварийного завершения работы сервера отчеты стали вести себя странно;
- после массовой загрузки данных через обмен или обработки появились расхождения.
Сравните оборотно-сальдовую ведомость с карточкой счета
Проверьте остаток по регистру на дату документа
Выполните пересчет после восстановления
Как пересчитать итоги через конфигуратор
Основной способ — штатная функция конфигуратора. Она доступна только при монопольном доступе к базе, поэтому предварительно нужно завершить работу всех пользователей и фоновых заданий.
- 1Сделайте резервную копию базы (выгрузку в dt или средствами СУБД)
- 2Завершите сеансы всех пользователей и отключите регламентные задания
- 3Откройте базу в конфигураторе
- 4Перейдите в меню «Администрирование» — «Обслуживание»
- 5Найдите группу «Пересчет итогов» и нажмите «Выполнить»
- 6Дождитесь окончания процесса и проверьте отчеты
В открывшемся окне платформа показывает список регистров, по которым возможен пересчет. Можно пересчитать итоги по всем регистрам сразу или выборочно — это полезно, если проблема локализована, например, в одном регистре товаров. Для больших баз полный пересчет может занять значительное время, поэтому выборочный пересчет экономит часы простоя.
По завершении никакого отчета о результатах платформа не выдает — об успехе говорит отсутствие ошибок в процессе. Проверку делайте прикладными средствами: сформируйте отчет, который ранее показывал неверные данные, и сравните с движениями.
Пересчет итогов через тестирование и исправление
Второй способ — механизм «Тестирование и исправление информационной базы», который также запускается из конфигуратора (меню «Администрирование»). Среди проверок есть пункт «Пересчет итогов» — если отметить его флажком, процедура выполнится в составе общего тестирования.
Этот вариант удобен, когда пересчет итогов — часть комплексной проверки базы после сбоя: одновременно можно запустить проверку логической и ссылочной целостности. Минус — общая длительность: полное тестирование большой базы может идти часами, и прервать его без последствий не всегда возможно.
В режиме тестирования выбирайте вариант «Тестирование и исправление», а не «Только тестирование» — иначе платформа найдет ошибки, но не исправит их. Для файловых баз перед тестированием рекомендуется сначала выполнить проверку физической целостности утилитой chdbfl, если есть подозрение на повреждение файла.
Управление итогами: отключение и восстановление
Помимо пересчета, в 1С есть смежные операции, которые часто путают с ней. Для регистров накопления и бухгалтерии можно отключить использование итогов или текущих итогов — это делается при массовой загрузке данных, чтобы ускорить проведение документов. После загрузки итоги нужно включить обратно, и именно тогда потребуется их пересчет.
Если итоги отключены и не включены обратно, отчеты будут формироваться медленно или показывать неактуальные данные, а контроль остатков при проведении перестанет работать корректно. Проверить состояние итогов можно в том же окне «Управление итогами» в конфигураторе либо программно.
Программный пересчет итогов
Для регламентных операций пересчет можно выполнять из встроенного языка. У менеджеров регистров есть методы пересчета итогов и управления их использованием.
// Пересчет итогов по регистру накопления
РегистрыНакопления.ТоварыНаСкладах.ПересчитатьИтоги();
// Пересчет текущих итогов
РегистрыНакопления.ТоварыНаСкладах.ПересчитатьТекущиеИтоги();
// Пример для регистра бухгалтерии
РегистрыБухгалтерии.Хозрасчетный.ПересчитатьИтоги();Программный вызов требует монопольного доступа к базе так же, как и интерактивный пересчет, — иначе метод завершится ошибкой. Обычно его встраивают в обработки обслуживания или запускают после массовой перепроводки документов.
Особенности для файловых и клиент-серверных баз
В файловой базе пересчет итогов блокирует файл целиком, и длительность сильно зависит от размера базы и скорости диска. Запускайте процедуру в нерабочее время и убедитесь, что никто не откроет базу по сети в процессе.
В клиент-серверном варианте (MS SQL, PostgreSQL и др.) пересчет выполняется на стороне СУБД и обычно быстрее, но создает нагрузку на сервер и может удерживать блокировки. Перед запуском проверьте отсутствие активных сеансов через консоль кластера и при необходимости установите блокировку сеансов, чтобы пользователи не подключились в середине операции.
Сравнение способов пересчета
Быстрый точечный пересчет по выбранным регистрам; подходит, когда проблема локализована
Пересчет в составе комплексной проверки; уместен после сбоев, но занимает много времени
Для регламентных обработок и автоматизации; требует монопольного доступа и навыков разработки
Проверка результата и типичные ошибки
Как проверить результат
Остаток в отчете совпадает с суммой по детальным записям
Расхождение сохраняется после повторного пересчета
Документ проводится без ложных ошибок нехватки
Ошибка контроля возникает при наличии остатка
Отчеты строятся быстро
Отчеты «висят» — возможно, итоги отключены
Ключевое, что стоит понимать: пересчет итогов не исправляет ошибки учета. Если в отчете неверные данные из-за неправильно проведенного документа или прямой корректировки движений, пересчет лишь приведет итоги в соответствие с этими же ошибочными движениями. Сначала исправляйте первичные данные, потом пересчитывайте итоги.
Как выбрать действие
Частые вопросы
Сколько времени занимает пересчет итогов?
Зависит от объема регистров, мощности сервера и варианта базы. В небольшой файловой базе — минуты, в крупной клиент-серверной с миллионами записей — десятки минут и дольше. Выборочный пересчет по одному регистру проходит заметно быстрее полного.
Можно ли пересчитать итоги без монопольного режима?
Нет, штатный пересчет требует монопольного доступа. Пользователей нужно вывести из базы, а регламентные задания — остановить. В клиент-серверном варианте удобно установить блокировку сеансов через консоль кластера.
Опасен ли пересчет итогов для данных?
Процедура затрагивает только служебные таблицы итогов и не изменяет документы и движения. Риск связан не с самой операцией, а с возможным сбоем посреди нее — поэтому резервная копия перед запуском обязательна.
Чем пересчет итогов отличается от перепроведения документов?
Перепроведение заново формирует движения документов и может изменить учетные данные. Пересчет итогов лишь обновляет агрегированные остатки и обороты по уже существующим движениям, ничего в учете не меняя.
После пересчета отчет всё равно показывает неверные данные. Что делать?
Значит, проблема в самих движениях или в запросе отчета. Проверьте движения проблемных документов, убедитесь, что итоги включены, и посмотрите, нет ли записей с датами за пределами рассчитанных итогов. При физическом повреждении файловой базы сначала прогоните chdbfl.
Нужно ли регулярно пересчитывать итоги для профилактики?
Специальной регламентной необходимости нет: платформа поддерживает итоги автоматически. Процедура нужна по событию — после сбоя, восстановления из копии, массовой загрузки или при появлении расхождений между отчетами и движениями.
Что важно запомнить
Пересчет итогов восстанавливает служебные остатки и обороты по существующим движениям, не меняя учетных данных. Выполняется через «Обслуживание» в конфигураторе, тестирование и исправление или программно — всегда в монопольном режиме и после резервной копии. Если расхождения остались после пересчета, ищите ошибку в движениях, а не в итогах.