Почему в ОСВ после обновления появились миллиарды и как это исправить?

Системный администратор 1С v8.3 (Управляемые формы) 1С:Комплексная автоматизация Бухгалтерский учет IT и автоматизация бизнеса
← На главную

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

Проанализируем причину появления «фантомных» миллиардов

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

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

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

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

Дополнительно в этих «сломанных» релизах наблюдалось искажение аналитики: если в проводке счет дебета совпадал со счетом кредита, платформа могла затирать субконто. Из-за этого ОСВ «рвалась» еще сильнее, выдавая необоснованное развернутое сальдо (красноту) по контрагентам.

Разберем по шагам алгоритм решения проблемы

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

  1. Создание резервной копии. Это обязательный первый шаг перед любыми манипуляциями с базой данных. Сделайте выгрузку в .dt или бэкап средствами СУБД (SQL).
  2. Обновление платформы. Убедитесь, что вы используете стабильный релиз платформы 1С, в котором устранены ноябрьские ошибки 2022 года. Если вы работали на 8.3.21.1622, обновитесь до актуальной версии.
  3. Обновление конфигурации (опционально). Если проблема возникла в процессе многоэтапного обновления конфигурации (например, 1С:Комплексная автоматизация), завершите применение всех обновлений в режиме Конфигуратора на новой, исправной платформе.
  4. Запуск Тестирования и исправления (ТИИ). Это ключевой этап лечения базы. Откройте Конфигуратор и перейдите в меню Администрирование -> Тестирование и исправление...

В открывшемся окне настроек ТИИ нам необходимо выбрать параметры, которые затронут индексы и таблицы итогов. Отметьте следующие пункты:

В настройках действий при наличии ссылок на несуществующие объекты выберите Создавать объекты, а при частичной потере данных — Удалять объекты. Запустите процесс.

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

Альтернативный способ: Управление итогами

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

  1. В режиме пользователя откройте Функции для технического специалиста.
  2. В разделе Стандартные найдите и откройте обработку Управление итогами - Полные возможности.
  3. В этой обработке можно сдвинуть границу рассчитанных итогов в прошлое, а затем вернуть обратно на текущий период. Это принудительно заставит платформу переформировать записи итогов за указанный интервал.

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

Проанализируем результат. После завершения процедуры ТИИ на стабильной версии платформы, запустите систему в пользовательском режиме и сформируйте ОСВ. Миллиарды должны полностью исчезнуть, а сальдо на начало и конец периода — выровняться в соответствии с реальными первичными документами.

← На главную