При работе в комплексных системах, таких как 1С:ERP Управление предприятием или 1С:ERP+Управление холдингом, пользователи часто сталкиваются с ситуацией, когда регламентная процедура «Закрытие месяца» выполнена полностью и успешно, однако при формировании бухгалтерских отчетов (например, Оборотно-сальдовой ведомости по счету 20) система продолжает выводить предупреждение: «Данные учета неактуальны по... Рекомендуется выполнить закрытие месяца». Рассмотрим подробно, почему так происходит, проанализируем технические причины этого поведения и разберем способы решения проблемы.
Для начала разберем, как система понимает, что данные в отчете могут быть «устаревшими». В отличие от простых конфигураций, в ERP актуальность данных в отчетах завязана не только на факт проведения документов, но и на состояние технических регистров сведений, которые управляют очередями заданий. Проанализируем основные объекты, влияющие на этот процесс:
ЗаданияКРасчетуСебестоимости, ЗаданияКРасчетуЭтаповПроизводства и ЗаданияКРаспределениюРасчетов. Любое перепроведение документа (даже если оно не изменило сумму) или ввод нового документа задним числом создает запись в этих регистрах.Рассмотрим ситуацию, когда месяц закрыт «в зеленую зону», заданий в очереди нет, но сообщение всё равно висит. Это может свидетельствовать либо о некорректных настройках отчета, либо о программной ошибке в конкретном релизе конфигурации.
Проанализируем программный код, который отвечает за вывод сообщения об актуальности. В некоторых релизах веток ERP 2.5 и ERP+УХ была обнаружена коллизия в логике обработки результата проверки. Выясним причину: процедура ОбработатьРезультатПроверкиАктуальности в общем модуле БухгалтерскиеОтчетыКлиент могла игнорировать состояние, когда проверка не требуется, и принудительно оставлять видимой панель предупреждения.
Если мы заглянем внутрь процедуры, то увидим, что при наличии заполненной даты актуальности (которая передается всегда при формировании отчета на конкретную дату), код не всегда корректно отрабатывал условие скрытия элемента формы.
Как исправить: Необходимо убедиться, что в коде присутствует проверка статуса НеТребуется. Разберем пример исправления, который можно внедрить через расширение:
Процедура ОбработатьРезультатПроверкиАктуальности(Форма, РезультатПроверки) Экспорт
// Если проверка вернула статус, что актуализация не требуется,
// мы должны явно скрыть информационную панель и прервать выполнение
Если РезультатПроверки.Состояние = "НеТребуется" Тогда
Элементы = Форма.Элементы;
Если Элементы.Найти("Актуализация") <> Неопределено Тогда
Элементы.Актуализация.Видимость = Ложь;
КонецЕсли;
Возврат;
КонецЕсли;
// Далее идет стандартная логика отображения предупреждения...
КонецПроцедуры
Этот небольшой фрагмент кода позволяет системе правильно интерпретировать успешное завершение закрытия месяца и не путать пользователя ложными сообщениями.
Иногда причина кроется не в программном баге, а в том, как именно настроен отчет. Рассмотрим подробнее: алгоритм проверки актуальности в 1С:ERP учитывает установленные отборы. Если в отчете ОборотноСальдоваяВедомостьПоСчету установлен отбор по конкретной Организации или Подразделению, система ищет «задания к расчету» именно по этому разрезу.
Посмотрим на алгоритм действий для диагностики:
Часто бывает, что по организации в целом месяц закрыт, но из-за ручных корректировок в регистре ЗаданияКРасчетуСебестоимости осталась запись, которую система считает невыполненной. Выясним, как это проверить: откройте через «Функции для технического специалиста» указанный регистр и посмотрите, нет ли там записей с датой, входящей в отчетный период.
Проанализируем ситуацию, когда процедура закрытия выполнена, но статус её «спорный». В 1С:ERP существует механизм, позволяющий отметить операцию как «Выполнено вручную». Это часто используется бухгалтерами, когда автоматический расчет выдает ошибку, которую некогда исправлять.
Однако для системы контроля актуальности это сигнал: «Расчет не был произведен программно, значит, данные могут не соответствовать документам». В этом случае отчет ОСВ будет постоянно напоминать о неактуальности. Чтобы решить это, рекомендуется:
Подводя итог, мы видим, что проблема ложного сообщения об актуальности может иметь как методический, так и чисто технический характер. Если вы программист, первым делом проверьте версию конфигурации и наличие указанного условия в общем модуле БухгалтерскиеОтчетыКлиент. Если вы бухгалтер, обратите внимание на настройки отборов и наличие ручных корректировок в процедуре закрытия месяца.
Для гарантированного устранения проблемы в случае программного сбоя рекомендуется использовать механизм расширений, чтобы не снимать конфигурацию с поддержки. Это позволит сохранить корректную логику работы отчетов даже после обновления системы на новый релиз, где данная ошибка может быть исправлена разработчиками вендора. При обслуживании нескольких информационных баз можно автоматизировать установку обновлений и тестирование по расписанию.