После проведения масштабных обновлений в решениях на базе флагманских конфигураций, таких как 1С:Комплексная автоматизация 2.5 или 1С:ERP Управление предприятием, пользователи часто сталкиваются с пугающей ситуацией. В Оборотно-сальдовой ведомости (ОСВ) по счетам расчетов (чаще всего это 60 и 62 счета) внезапно появляются огромные суммы — «миллиарды», которые не имеют никакого отношения к реальности. При этом, если сформировать расшифровку (Карточку счета), суммы там могут отображаться корректно. Рассмотрим подробно, почему это происходит и как вернуть учет в нормальное состояние.
Для начала разберем техническую сторону вопроса. В платформе 1С данные хранятся в двух основных типах таблиц для регистров бухгалтерии: таблицах движений (записи каждой операции) и таблицах итогов (предварительно рассчитанные остатки и обороты за периоды). Оборотно-сальдовая ведомость для скорости работы берет данные из таблиц итогов. Карточка счета же обращается напрямую к таблице движений.
Когда мы видим расхождение (в ОСВ — миллиарды, в карточке — норма), это явный признак того, что таблицы итогов повреждены или рассинхронизированы. В последних релизах 1С (начиная с 2.5.10) произошли изменения в структуре хранения данных, связанные с общими реквизитами и разделителями данных (поле ОбластьДанныхОсновныеДанные). Проблема часто заключается в конфликте значений 0 и NULL в базе данных на уровне SQL. Система ожидает пустое значение (NULL), но из-за ошибки обновления или платформы там прописывается 0, что приводит к некорректному суммированию итогов по всем областям данных сразу.
Первым делом проанализируем версию используемой платформы. Ошибки в расчете итогов по регистрам с общими реквизитами часто фиксировались на версиях ветки 8.3.21 и ранних сборках 8.3.22. Выясним, какая версия установлена у нас, и выполним следующие действия:
Если простое обновление не помогло, перейдем к глубокому восстановлению целостности базы данных. Разберем по шагам, какие опции в режиме «Тестирование и исправление» нам критически важны. Перед началом обязательно создаем резервную копию базы.
Запустим Конфигуратор и перейдем в меню «Администрирование» — «Тестирование и исправление». Установим следующие флаги:
В настройках обработки объектов выберем:
В процессе тестирования мы можем увидеть сообщения следующего вида:
Проверка логической целостности. РегистрБухгалтерии.Хозрасчетный.Ресурс.ВалютнаяСумма
ОбщийРеквизит.ОбластьДанныхОсновныеДанные = 0 Значение должно быть NULL. Сохранено значение NULL.
Это именно те исправления, которые «выравнивают» таблицы итогов, убирая лишние нулевые разделители, которые платформа ошибочно интерпретировала как данные.
Иногда стандартный «Пересчет итогов» через ТиИ не дает результата с первого раза. В таком случае попробуем метод полной очистки и перезаполнения итогов. Проанализируем ситуацию в режиме «Предприятие»:
Если «миллиарды» все еще на месте, выясним причину их появления через анализ дат. Сформируем ОСВ с максимальной детализацией по периодам (по дням) и найдем самую раннюю дату, когда появляется неверное сальдо.
Рассмотрим ситуацию, когда миллиарды видны уже на 01.01.1980 или даже 01.01.0001. Это означает, что в базе есть записи с «пустой» датой или поврежденная аналитика. Проанализируем такие записи:
Хозрасчетный.Сумма > 1 000 000 000).Если такие записи найдены, их необходимо исправить (заполнить аналитику или удалить, если это «мусорные» записи от некорректно прерванных обновлений). Часто именно пустые значения Субконто в сочетании с ошибками платформы дают эффект гигантских сумм при группировке данных в ОСВ.
Подведем итог: проблема миллиардных остатков в 1С:КА 2.5 и ERP после обновления — это следствие изменения структуры метаданных и ошибок платформы при работе с NULL-значениями в таблицах итогов.
Алгоритм действий для исправления:
Помните, что если вы продолжите работать в базе с «кривыми» итогами, это может привести к невозможности корректного закрытия месяца и дальнейшим сбоям в расчете себестоимости. Исправляйте ситуацию сразу после обнаружения!