Обновление крупных корпоративных систем, таких как 1С:ERP Управление предприятием 2, — это всегда сложный и ответственный процесс. Довольно часто после успешного, на первый взгляд, завершения процедуры обновления пользователи и специалисты первой линии поддержки сталкиваются с неприятными сюрпризами. Один из самых распространенных сбоев — невозможность открыть форму регламентированного отчета (например, РСВ, Декларации по НДС или формы СЗВ-ТД). При попытке сформировать или открыть отчет система выдает критическую ошибку, аварийно завершает работу или сообщает о ненайденных полях объекта.
В этой статье мы подробно проанализируем, почему возникает подобная проблема на примере обновления до промежуточного релиза 2.4.11.88, выясним технические причины сбоев и разберем по шагам, как полностью восстановить работоспособность механизмов регламентированной отчетности.
Рассмотрим ситуацию, обсуждаемую разработчиками. При обновлении конфигурации до версии 2.4.11.88 программисты столкнулись со сбоем в регламентированных отчетах. Как показывает практика автоматизации, данный релиз являлся промежуточным. В нем содержался ряд системных недоработок в коде общих модулей, отвечающих за динамическое построение экранных форм отчетности.
В то же время в последующем стабильном релизе 2.4.11.102 разработчики фирмы 1С исправили эти критические ошибки, обновили шаблоны выгрузки и скорректировали внутренние процедуры. Если вы столкнулись с подобным поведением системы, наиболее надежным решением будет незамедлительный переход на стабильный релиз. Однако, если конфигурация сильно доработана и оперативно обновить ее невозможно, нам придется локализовать и устранить технические причины сбоя вручную.
Платформа 1С:Предприятие активно кэширует структуру метаданных, программные модули и элементы управляемых форм на компьютерах пользователей. При обновлении конфигурации (особенно динамическом или промежуточном) локальный кэш может частично устареть или повредиться. Платформа пытается собрать форму регламентированного отчета, используя старые файлы разметки интерфейса из локальной папки пользователя и новый программный код из базы данных. Это неизбежно приводит к краху сеанса.
Решение: Полная очистка локального кэша
Для устранения этой проблемы выполним очистку временных файлов. Сделать это можно несколькими способами:
%userprofile%\AppData\Local\1C\1cv8\ и %userprofile%\AppData\Roaming\1C\1cv8\ и полностью удалим все каталоги с длинными буквенно-цифровыми наименованиями (идентификаторами баз).1cestart, а затем добавим ее заново под тем же именем. При этом платформа создаст для базы новый чистый каталог кэша./ClearCache. Обратите внимание, что этот параметр очищает только кэш метаданных, но не всегда помогает при повреждении кэша управляемых форм, поэтому первые два способа более надежны.Бухгалтеры часто сохраняют промежуточные варианты отчетов в виде черновиков. При сохранении отчета система записывает во внутренние таблицы (в частности, в системный регистр сведений СохраненныеНастройки или непосредственно в реквизиты документа регламентированного отчета) структуру данных формы на момент сохранения.
При обновлении релиза разработчики 1С часто меняют состав реквизитов, структуру дерева показателей отчета или алгоритмы заполнения строк (например, процедуру ОбновитьСоставДополнительныхСтрокИзСохраненныхДанных). При попытке открыть ранее сохраненный черновик система пытается восстановить старую структуру данных в новые экранные формы, что вызывает ошибку: Поле объекта не обнаружено.
Решение: Очистка старых настроек и пересоздание отчетов
Разберем, как исправить эту ситуацию:
Для продвинутых администраторов и программистов приведем пример кода обработки, которая позволяет программно сбросить сохраненные настройки формы отчета для определенного пользователя:
Процедура СброситьНастройкиОтчета(ИмяПользователя, ИмяОтчета) Экспорт
ПользовательИнформационнойБазы = ПользователиИнформационнойБазы.НайтиПоИмени(ИмяПользователя);
Если ПользовательИнформационнойБазы <> Неопределено Тогда
КлючОбъекта = "РегламентированныйОтчет" + ИмяОтчета;
ХранилищеСистемныхНастроек.Удалить(КлючОбъекта, Неопределено, ИмяПользователя);
ЗаписьЖурналаРегистрации("Настройки.Очистка",
УровеньЖурналаРегистрации.Информация,
,
,
"Настройки отчета " + ИмяОтчета + " для пользователя " + ИмяПользователя + " успешно сброшены.");
КонецЕсли;
КонецПроцедуры
В современных конфигурациях 1С:ERP встроен механизм автоматического обновления шаблонов отчетов через интернет-поддержку. Система может скачивать новые внешние формы (файлы с расширением .erf) напрямую с серверов 1С и использовать их вместо встроенных в конфигурацию.
Если ваша конфигурация была обновлена на промежуточный или устаревший релиз (как 2.4.11.88), а система интернет-поддержки успела скачать внешнюю форму, предназначенную для более нового релиза (например, для 2.4.11.102), возникнет конфликт программных интерфейсов (API). Внешняя форма будет обращаться к функциям общих модулей конфигурации, которых в релизе 2.4.11.88 еще просто не существует.
Решение: Отключение внешних форм или их ручная замена
Выполним следующие действия по шагам:
2.4.11.88, и загрузить ее в справочник дополнительных отчетов и обработок.Крупные обновления прикладных решений (ERP, КА, УТ) часто сопровождаются изменением режима совместимости конфигурации. Для корректной работы механизмов управляемых форм в новых релизах требуются определенные системные компоненты платформы 1С:Предприятие.
Если вы обновили конфигурацию ERP до ветки 2.4.11.х, а версия установленной технологической платформы осталась старой (например, ниже рекомендованной 8.3.14 или 8.3.15), то при построении сложных табличных документов в регламентированной отчетности могут возникать непредвиденные сбои и ошибки работы с памятью.
Решение: Обновление платформы
Проанализируем требования к релизу конфигурации в файле ReadMe.txt или на странице обновлений. При необходимости выполним обновление технологической платформы на сервере приложений и на всех локальных рабочих станциях пользователей до актуальной рекомендованной версии.
Фирма 1С оперативно выпускает исправления обнаруженных ошибок в виде патчей (расширений с префиксом EF_). Для промежуточных релизов, таких как 2.4.11.88, установка патчей жизненно необходима, так как разработчики не выпускают новые полноценные релизы каждый день, но исправляют критические баги в регламентированных отчетах именно через механизм патчей.
Решение: Настройка автоматической загрузки исправлений
2.4.11.88 и установим их через форму Установка обновлений и исправлений.Подводя итоги, согласимся с мнением опытных специалистов из обсуждения на форуме: попытка остаться на промежуточном релизе и тратить ресурсы программистов на "копание в типовом коде" и ручное исправление шаблонов — это крайне неэффективный путь.
Наиболее правильная и экономически оправданная стратегия поддержки 1С:ERP заключается в следующем:
2.4.11.102 и выше).Используя предложенные методики очистки кэша, контроля совместимости платформы и своевременной установки патчей, вы сможете оперативно решать любые сложности, возникающие в процессе работы с регламентированными отчетами в 1С:ERP.