При переходе на новые релизы программных продуктов 1С:Предприятие технические специалисты часто сталкиваются с коллизиями, вызванными установленными ранее исправлениями (патчами). Одной из наиболее заметных проблем при обновлении 1С:Зарплата и Управление Персоналом (ЗУП) с версии 3.1.18.151 на 3.1.18.189 стала ошибка инициализации модуля EF_1954. В данной статье мы подробно разберем, почему возникает эта ошибка, как ее устранить для различных версий программы и как избежать повторения ситуации.
Рассмотрим природу возникшего конфликта. При запуске программы после обновления системы выдает сообщение о том, что процедуры или функции, такие как ПрочитатьВложенныйНесжатыйАрхив, ПрочитатьАрхивВнутр, ПрочитатьВФайл и ПрочитатьВБуферДвоичныхДанных, уже определены в общем модуле РаботаВМоделиСервиса. Выясним причину этой ситуации.
Разработчики фирмы 1С выпускают патчи (расширения с префиксом EF_) для оперативного исправления критических багов между официальными релизами. В нашем случае патч EF_1954 содержал исправления для работы с архивами в модели сервиса. Однако при выпуске полноценного релиза 3.1.18.189 эти исправления были включены непосредственно в основной код конфигурации. Поскольку патч остался в системе, платформа видит дублирование имен функций в одном и том же контексте, что приводит к критической ошибке компиляции модуля.
Если вы используете версии ПРОФ или КОРП, процедура удаления конфликтующего расширения наиболее проста, так как у нас есть доступ к управлению расширениями через Конфигуратор. Разберем этот процесс по шагам:
EF_1954.Проанализируем ситуацию, если патчей в системе много. Как отмечают специалисты на форумах, иногда в базе может быть установлено более тридцати исправлений. В этом случае перед масштабным обновлением рекомендуется превентивно удалять все установленные патчи, так как функционал многих из них может быть уже реализован в новом релизе.
Для пользователей Базовой версии стандартный путь через Конфигуратор недоступен, так как пункт меню «Расширения конфигурации» там отсутствует. В этом случае нам поможет запуск программы с использованием параметров командной строки. Рассмотрим, как это сделать:
Создадим ярлык для запуска или воспользуемся командной строкой (cmd). Нам необходимо выполнить команду удаления конкретного расширения:
"C:\Program Files\1cv8\common\1cestart.exe" /DeleteCfg -Extension EF_1954
Или, если вы работаете через окно запуска, добавьте в поле «Дополнительные параметры запуска» следующую строку:
/DeleteCfg -Extension EF_1954
После выполнения этой команды система принудительно удалит расширение, и конфликт имен будет исчерпан. После успешного входа в программу не забудьте удалить этот параметр из настроек запуска ярлыка.
Проблема может вернуться, если в базе настроена автоматическая загрузка и установка исправлений. Рассмотрим, как отключить этот механизм, чтобы патч EF_1954 не установился снова до того, как разработчики 1С официально отзовут его с серверов обновлений:
Также полезно будет проверить регламентные задания. Проанализируем список в разделе «Обслуживание» — «Регламентные операции». Задание «Загрузка и установка исправлений» следует временно отключить до момента, пока ситуация с релизом полностью не стабилизируется.
Обновление на релиз 3.1.18.189 может принести еще один сюрприз для пользователей версии КОРП — исчезновение данных о направлениях и заключениях на медосмотры. Выясним, с чем это связано.
В этой ветке релизов произошла серьезная реорганизация подсистемы «Охрана труда». Посмотрим на возможные пути решения этой проблемы:
Настройка — Охрана труда. Убедитесь, что флаг Использовать медицинские осмотры установлен. Иногда при обновлении настройки сбрасываются в состояние «по умолчанию».Администрирование — Обслуживание — Результаты обновления программы. Если есть невыполненные пересчеты с ошибками, их нужно запустить повторно.8.3.18.1334. Работа на более старых версиях (например, 8.3.18.1208) может провоцировать некорректную обработку данных при обновлении.Подводя итог, отметим, что большинство проблем при обновлении на 189-й релиз ЗУП решаются именно через очистку списка патчей. Мы рекомендуем всегда делать резервную копию базы перед любыми манипуляциями с расширениями и обновлением конфигурации.