Почему в 1С:БГУ не выполняется пересчет итогов и как это исправить?

Системный администратор 1С v8.3 (Обычные формы) Бухгалтерский учет Сфера услуг, туризм и социальный сектор
← На главную

В процессе эксплуатации программы «1С:Бухгалтерия государственного учреждения 1.0» (или иных конфигураций на платформе 1С:Предприятие 8.3) пользователи иногда сталкиваются с ситуацией, когда граница рассчитанных итогов перестает сдвигаться. Программа продолжает указывать устаревшую дату (например, за прошлый месяц или год), процедура «Тестирование и исправление информационной базы» проходит без ошибок, но фактический пересчет итогов так и не происходит, а при запуске программы пересчитать итоги не предлагается.

Рассмотрим подробно причины возникновения этой проблемы и разберем проверенные практические способы ее решения.

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

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

  1. Рассинхронизация записей после свертки базы или ввода остатков: После выполнения процедуры свертки информационной базы или установки даты запрета изменения данных ссылки в регистрах накопления и бухгалтерии могут требовать актуализации записей.
  2. Некорректные настройки управляющей колонки: В обработке «Управление итогами» параметр диапазона расчета («Установить с») может блокировать автоматический сдвиг границы.
  3. Аномальные даты в движениях: Присутствие в базе записей с битыми датами (например, 01.01.0001 или даты далекого будущего вроде 3999 год) сдвигает границу расчета иторов в некорректный интервал.
  4. Программное отключение использования итогов: Если для конкретного регистра (например, РегистрБухгалтерии.ЕПСБУ) ранее выполнялось программное отключение итогов, граница перестает обновляться штатно.
  5. Накопление нулевых остатков и повреждение индексов: Переполнение таблиц итогов техническими записями с нулевыми остатками существенно снижает производительность СУБД и блокирует сдвиг границы.

Способ 1. Массовое перепроведение документов в базе

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

Для восстановления корректного расчета выполним следующие действия:

  1. Снимем или временно сдвинем дату запрета изменения данных в настройках программы.
  2. Выполним массовое перепроведение документов за последующие периоды (начиная с даты свертки по текущий момент). Сделать это можно через стандартный механизм «Групповая обработка справочников и документов» или обработку «Проведение документов».
  3. По завершении процедуры проверим дату рассчитанных итогов в обработке «Управление итогами». В большинстве случаев проведение документов принудительно актуализирует записи регистров и сдвигает границу.

Способ 2. Изменение параметра «Установить с» в управлении итогами

Посмотрим на решение, связанное с точной настройкой периода пересчета через стандартный интерфейс платформы:

  1. Перейдем в режим монопольной работы (в базе не должно быть других пользователей и активных фоновых заданий).
  2. Откроем обработку «Управление итогами» (или «Управление итогами и агрегатами»).
  3. Переключим режим отображения в «Полные возможности».
  4. В табличной части с регистрами обратим внимание на колонку «Установить с». Изменим указанную там дату на более раннюю (или явно укажем дату начала текущего года/квартала).
  5. Нажмем кнопку «Установить» или «Выполнить пересчет». Изменение начальной границы расчета заставляет платформу перестроить таблицы итогов заново.

Способ 3. Полный сброс и повторное включение итогов

Если стандартный пересчет не реагирует, проанализируем процедуру полного пересоздания таблиц итогов СУБД:

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

Способ 4. Программный пересчет через встроенный язык 1С

При наличии административных прав или внешних обработок разберем способ принудительной установки итогов через встроенный язык. Для регистра бухгалтерии ЕПСБУ в БГУ можно выполнить следующий код:


// Выполнять в монопольном режиме!
РегистрыБухгалтерии.ЕПСБУ.УстановитьИспользованиеИтогов(Истина);
РегистрыБухгалтерии.ЕПСБУ.УстановитьПериодРассчитанныхИтогов(КонецМесяца(ТекущаяДата()));
ВызватьИсключение "Итоги успешно обновлены";

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


Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |	МИНИМУМ(ЖурналПроводок.Период) КАК МинДата,
    |	МАКСИМУМ(ЖурналПроводок.Период) КАК МаксДата
    |ИЗ
    |	РегистрБухгалтерии.ЕПСБУ КАК ЖурналПроводок";
Результат = Запрос.Выполнить().Выбрать();
Если Результат.Следующий() Тогда
    Сообщить("Минимальная дата: " + Строка(Результат.МинДата));
    Сообщить("Максимальная дата: " + Строка(Результат.МаксДата));
КонецЕсли;

Если запрос возвращает пустые даты или даты с недопустимыми годами, их необходимо исправить, так как именно они препятствуют правильному сдвигу границы итогов.

Способ 5. Проверка файла базы утилитой chkdbfl.exe и очистка кэша

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

  1. Завершим работы всех пользователей в базе 1С.
  2. Создадим резервную копию файла информационной базы (1Cv8.1CD).
  3. Из каталога bin вашей версии платформы (например, C:\Program Files\1cv8\8.3.X.X\bin) запустим утилиту chkdbfl.exe.
  4. Укажем путь к файлу базы данных, установим флаг «Исправлять обнаруженные ошибки» и запустим проверку.
  5. После исправления ошибок запустим 1С и очистим локальный кэш конфигурации (или передобавим базу в списке запуска).

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

← На главную