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