При последовательном обновлении конфигурации 1С:Зарплата и управление персоналом 3.1 (особенно при переходе со старых релизов, таких как 3.1.14) многие специалисты сталкиваются с критической ошибкой при первом запуске программы. Система выдает сообщение об ошибке инициализации модуля, которое блокирует дальнейшую работу и завершение процедур обновления. Рассмотрим подробно, почему возникает эта ситуация, проанализируем механизмы работы расширений-патчей и разберем по шагам способы исправления этой проблемы.
Типичный текст ошибки выглядит следующим образом: Ошибка инициализации модуля: EF_30175038 Документ.РеестрСтимулирующихВыплатМедицинскимИСоциальнымРаботникам.МодульМенеджера. Причина указывается как Недостаточно фактических параметров (ТаблицаПериодовРаботСотрудниковСКоронавирусом).
Проанализируем ситуацию: в коде расширения (патча) происходит обращение к функции, где передается, например, 3 параметра:
ПериодыРаботыСКоронавирусом = ТаблицаПериодовРаботСотрудниковСКоронавирусом(Организация, ПериодРасчета, Сотрудники);
В то же время в самой основной конфигурации после наката обновления эта функция уже была изменена разработчиками и теперь ожидает 5 параметров:
Функция ТаблицаПериодовРаботСотрудниковСКоронавирусом(Организация, НачалоПериода, ОкончаниеПериода, Сотрудники, ПолучательСтимулирующихВыплатФСС)
Выясним причину такого несоответствия. Имена модулей, начинающиеся на EF_, принадлежат так называемым исправлениям (патчам). Это временные расширения, которые фирма «1С» выпускает для оперативного устранения багов в текущих релизах без выпуска полноценного обновления. Когда вы устанавливаете полноценный новый релиз, функционал этих патчей уже включен в основной код программы, а сами патчи становятся не только бесполезными, но и вредными, так как их код начинает конфликтовать с обновленной структурой метаданных.
Если база долго не обновлялась (например, с версии 3.1.14.154), и вы последовательно накатываете релизы один за другим, система может автоматически скачивать патчи для промежуточных версий. Разберем механизм: вы обновились до версии 3.1.14.369, запустили «1С:Предприятие», и система через интернет-поддержку скачала патч EF_30175038, актуальный именно для этого билда. При следующем шаге обновления код основной конфигурации меняется, а расширение остается в базе и пытается переопределить работу методов по-старому. В итоге мы получаем конфликт параметров.
Если после обновления база не открывается в режиме «1С:Предприятие» и вылетает с ошибкой, нам необходимо вмешаться через Конфигуратор. Это самый надежный метод очистки конфигурации от конфликтующих исправлений.
EF_.EF_ и характерные цифровые коды (например, EF_30175038).Если вам удалось войти в базу или если вы хотите предотвратить появление ошибки на следующих этапах обновления, воспользуйтесь стандартным интерфейсом управления исправлениями.
Рассмотрим порядок действий:
Иногда даже после удаления расширений ошибка продолжает преследовать систему. Проанализируем ситуацию: платформа 1С активно кэширует скомпилированные модули расширений. Для полного решения проблемы выполним следующие шаги:
1C:Enterprise 8.3 Server Agent. Это гарантированно выгрузит из памяти сервера старые версии модулей расширений.При выполнении цепочки обновлений (когда нужно прогнать 5-10 и более релизов за один раз) придерживайтесь следующей стратегии, чтобы избежать подобных ошибок:
Во-первых, не заходите в пользовательский режим между промежуточными релизами без необходимости. Если регламент обновления позволяет, накатывайте конфигурации в Конфигураторе одну за другой (с сохранением конфигурации БД после каждого шага), и только на финальном или контрольном релизе делайте запуск в режиме «Предприятие» для выполнения обработок обновления данных.
Во-вторых, перед началом процесса обновления всегда делайте полную резервную копию (выгрузку .dt или бэкап SQL-базы). Это позволит вам откатиться, если автоматические процедуры патчинга повредят структуру данных.
В-третьих, если вы столкнулись с ошибкой в модуле РеестрСтимулирующихВыплатМедицинскимИСоциальнымРаботникам, помните, что это специфический функционал периода пандемии. В новых релизах ЗУП 3.1 структура этих документов и отчетов существенно менялась, поэтому старые патчи практически гарантированно будут выдавать ошибку «Недостаточно фактических параметров».
Таким образом, мы выяснили, что ошибка не является признаком «битого» обновления или вашей ошибки в коде. Это следствие штатного механизма работы патчей 1С, которые требуют своевременного удаления при переходе на новые версии программы. Следуя приведенным выше инструкциям, вы сможете успешно завершить обновление и восстановить работоспособность системы 1С:Зарплата и управление персоналом.