Остатки в отчётах не сходятся с движениями: пересчёт итогов регистров в 1С 8.3

· 10 мин

Содержание

Чтобы пересчитать итоги в 1С 8.3, откройте Администрирование → Обслуживание → Корректировка данных → Управление итогами и агрегатами, перейдите в полный режим и нажмите Пересчитать итоги для нужных регистров. Второй путь — Конфигуратор: Администрирование → Тестирование и исправление с галкой Пересчёт итогов. Он требует монопольного доступа к базе.

Типичная ситуация: кладовщик видит на складе 40 штук, а отчёт по остаткам показывает 37. Документы все на месте, движения правильные, но цифра в отчёте другая. Это повод пересчитать итоги. Если же неверны сами движения документов, пересчёт не поможет — нужно перепроводить документы. Ниже оба случая и способ отличить один от другого.

Почему остатки и обороты расходятся с документами

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

Откуда берутся расхождения:

  • ⚡ аварийное завершение — пропало питание, оборвалась сеть, «упал» рабочий процесс сервера в момент записи документа;
  • 💾 сбой диска или СУБД — повреждены страницы таблиц, особенно в файловой базе на сетевой папке;
  • 🔄 загрузка данных при выключенных итогах — обмен или обработка отключила использование итогов и не включила их обратно;
  • 🛠 прямые правки в таблицах — запись движений обработкой в обход проведения или правка через SQL;
  • 📦 неудачное обновление конфигурации — изменилась структура регистра, итоги не перестроились.

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

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

Перепроведение документов: когда виноваты движения

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

В 1С:Бухгалтерии 3.0 перепровести документы можно двумя способами:

  1. Через закрытие месяца . Откройте Операции → Закрытие месяца, выберите месяц. В обработке есть команда перепроведения документов за месяц — она проводит всё в хронологическом порядке, а затем выполняет регламентные операции.
  2. Групповым перепроведением. Администрирование → Обслуживание → Корректировка данных → Групповое перепроведение документов. Укажите период, при необходимости ограничьте виды документов и запустите.

В 1С:Управлении торговлей 11 и ERP часть расчётов (себестоимость, взаиморасчёты) идёт не при проведении документа, а отдельными регламентными расчётами. Поэтому после перепроведения выполните расчёт себестоимости и закрытие месяца заново.

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

Перед массовым перепроведением сделайте резервную копию базы . Если что-то пойдёт не так, откат займёт минуты, а ручное восстановление — дни.

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

Пересчёт итогов регистров накопления и бухгалтерии

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

Регистры накопления делятся на два вида:

  • остатков — хранят итоги по месяцам и текущие итоги (остатки на последний момент);
  • оборотов — хранят только обороты, а для ускорения отчётов используют агрегаты.

Регистры бухгалтерии (план счетов в БП, ЗУП, ERP) тоже хранят итоги, и для них работают те же команды.

Что важно знать до запуска:

  1. Период рассчитанных итогов. Платформа хранит готовые итоги до определённой даты. Остатки на даты позже неё считаются «на лету» по движениям. Если период рассчитанных итогов давно не сдвигали, отчёты тормозят. В типовых конфигурациях его сдвигает регламентное задание раз в месяц, в файловой базе — при запуске программы.
  2. Использование итогов. Итоги можно выключить. Это ускоряет массовую загрузку данных, но пока итоги выключены, остатки по регистру читать нельзя. После включения платформа пересчитывает их сама.
  3. Текущие итоги. Отдельная таблица для регистров остатков — остатки «на сейчас». Их можно пересчитать отдельно, это быстрее полного пересчёта.
  4. Разделение итогов. Режим для клиент-серверной базы: снижает конфликты блокировок, когда много пользователей одновременно проводят документы по одному регистру.

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

Обработка «Управление итогами»: пошагово

Обработка встроена в платформу 1С 8.3, поэтому есть в любой конфигурации. В типовых на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11, ERP) её вынесли в меню.

Как открытьПуть
БП 3.0, ЗУП 3.1, УТ 11, ERPАдминистрирование → Обслуживание → Корректировка данных → Управление итогами и агрегатами
Любая конфигурацияМеню Все функции → Стандартные → Управление итогами

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

Пошагово:

  1. Сделайте резервную копию базы (для файловой — копию папки с файлом 1Cv8.1CD, для серверной — бэкап СУБД или выгрузку .dt).
  2. Откройте обработку. Сначала появится упрощённая форма с частыми действиями. Нажмите Все функции (или ссылку перехода в полный режим), чтобы увидеть список регистров.
  3. Отметьте галками регистры, где расходятся остатки. Если не знаете, какие именно, выделите все.
  4. Нажмите Пересчитать итоги. Для регистров остатков достаточно сначала попробовать Пересчитать текущие итоги — это быстрее.
  5. Если нужно ограничить пересчёт периодом, используйте команду Пересчитать итоги за период и укажите начало и конец. Это экономит время на базе за много лет.
  6. Для регистров оборотов, если в отчётах неверные обороты, на вкладке агрегатов выполните Перестроить и Заполнить агрегаты.
  7. Дождитесь окончания и сформируйте отчёт, где было расхождение.

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

Пересчёт через Конфигуратор

Когда база падает при открытии отчётов или обработка «Управление итогами» не запускается, используйте Конфигуратор:

  1. Попросите всех выйти из базы. Этой процедуре нужен монопольный доступ: сеансы пользователей будут прерваны, несохранённые данные пропадут.
  2. Запустите 1С в режиме Конфигуратор.
  3. Меню Администрирование → Тестирование и исправление.
  4. Отметьте Пересчёт итогов. Для «лёгкого» прохода больше ничего не нужно. При подозрении на физическое повреждение добавьте Реиндексацию таблиц и Проверку логической целостности.
  5. Нажмите Выполнить и дождитесь сообщения о завершении.

Тот же пересчёт можно запустить из командной строки, например ночным заданием:

"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F"D:\Bases\Buh" /N"Администратор" /P"пароль" /IBCheckAndRepair -RecalcTotals /Out"D:\Logs\recalc.log"

Номер платформы в пути замените на свой. Для серверной базы вместо /F укажите /S"сервер\имябазы".

Диагностика: выберите симптом

Как проверить остатки запросом в консоли

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

Консоль запросов — внешняя обработка, она входит в состав дистрибутивов для разработчиков и есть в открытом доступе. Откройте её через Файл → Открыть в режиме Предприятие. Нужны права на открытие внешних обработок.

Пример для регистра остатков. Замените ИмяРегистра, Номенклатура и Количество на имена из вашей конфигурации (их видно в Конфигураторе в дереве метаданных):

ВЫБРАТЬ
    Движения.Номенклатура КАК Номенклатура,
    СУММА(ВЫБОР
            КОГДА Движения.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
                ТОГДА Движения.Количество
            ИНАЧЕ -Движения.Количество
        КОНЕЦ) КАК ПоДвижениям
ПОМЕСТИТЬ ВТ_Движения
ИЗ
    РегистрНакопления.ИмяРегистра КАК Движения
ГДЕ
    Движения.Активность
СГРУППИРОВАТЬ ПО
    Движения.Номенклатура
;

ВЫБРАТЬ
    ЕСТЬNULL(Остатки.Номенклатура, ВТ_Движения.Номенклатура) КАК Номенклатура,
    ЕСТЬNULL(Остатки.КоличествоОстаток, 0) КАК ПоИтогам,
    ЕСТЬNULL(ВТ_Движения.ПоДвижениям, 0) КАК ПоДвижениям
ИЗ
    РегистрНакопления.ИмяРегистра.Остатки КАК Остатки
        ПОЛНОЕ СОЕДИНЕНИЕ ВТ_Движения КАК ВТ_Движения
        ПО Остатки.Номенклатура = ВТ_Движения.Номенклатура
ГДЕ
    ЕСТЬNULL(Остатки.КоличествоОстаток, 0) <> ЕСТЬNULL(ВТ_Движения.ПоДвижениям, 0)

Как читать результат:

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

Виртуальная таблица Остатки без параметров даёт остатки на текущий момент, поэтому в первом запросе отбора по дате нет. Если в регистре несколько измерений (склад, организация), добавьте их и в группировку, и в условие соединения. Иначе одинаковые суммы по разным складам «схлопнутся», и расхождение спрячется.

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

Как не допустить повторного расхождения

Итоги редко портятся сами. Обычно за этим стоит причина, которая повторится.

Профилактика расхождения итогов
Выполнено: 0 / 6

Ещё несколько настроек, которые снижают риск:

  • 🕒 Регламентные задания. В клиент-серверной базе проверьте, что задания по итогам и агрегатам включены. Найти их можно в Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания.
  • 🔒 Дата запрета изменения данных. Закрытые периоды защищены от случайного перепроведения, а значит и от неожиданных изменений итогов задним числом.
  • 🧾 Журнал регистрации. Если остатки «плывут» регулярно, отфильтруйте журнал по событию записи данных и посмотрите, кто и какой обработкой правит регистр.
  • 🗂 Разделение итогов в серверной базе с большим числом пользователей уменьшает ошибки блокировок при одновременном проведении.

Если пересчёт итогов не помог

Пересчитали, перепровели, а цифры всё равно не те. Варианты:

  1. Физическое повреждение файловой базы. Закройте 1С у всех пользователей и запустите утилиту chdbfl.exe из папки bin платформы — она проверяет физическую целостность файла 1Cv8.1CD. Затем повторите тестирование и исправление в Конфигураторе.
  2. Перенос через выгрузку. Выгрузите базу в .dt (Конфигуратор → Администрирование → Выгрузить информационную базу) и загрузите в новую пустую базу. При загрузке таблицы, итоги и индексы строятся заново. Проверьте результат в копии, прежде чем заменять рабочую базу.
  3. Ошибка в конфигурации. Если база доработана, проверьте, не пишет ли нетиповой модуль движения в регистр в обход проведения. Сравните поведение на копии базы с типовой конфигурацией того же релиза.
  4. Ошибка в логике учёта. Часто «неверный остаток» на деле верный: например, товар числится на другом складе или другой организации. Перед пересчётом сформируйте отчёт с детализацией по всем измерениям регистра.

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

Удаляет ли пересчёт итогов документы или проводки?
Нет. Пересчёт строит заново только таблицу итогов по уже существующим движениям. Документы, проводки и движения регистров не меняются.
Нужно ли выгонять пользователей для пересчёта в режиме Предприятие?
Монопольный доступ не нужен, но таблицы итогов блокируются. Коллеги, проводящие документы по тем же регистрам, получат ожидание или ошибку блокировки, поэтому лучше работать вне рабочего времени.
Чем пересчёт итогов отличается от перепроведения?
Пересчёт исправляет посчитанные остатки по верным движениям. Перепроведение заново формирует сами движения документов. Если ошибка в движениях, пересчёт её не исправит.
Как часто нужно пересчитывать итоги профилактически?
Регулярно — не нужно. Достаточно включённого регламентного задания по периоду рассчитанных итогов. Пересчёт запускают после сбоев, массовых загрузок и при найденном расхождении.
Почему отчёты стали медленными после пересчёта?
Скорее всего, сбился период рассчитанных итогов или выключено использование итогов. Проверьте это в обработке «Управление итогами» и установите период рассчитанных итогов на конец прошлого месяца.