При обновлении нетиповых конфигураций (в частности, "Бухгалтерия предприятия" редакции 3.0) специалисты часто сталкиваются с ошибками компиляции или выполнения после завершения процесса объединения. Одной из распространенных проблем при переходе на релизы версии 3.0.119 и выше является ошибка инициализации модуля с текстом "Слишком много фактических параметров".
В этой статье мы подробно разберем причины возникновения этой ситуации, проанализируем изменения в Библиотеке Стандартных Подсистем (БСП), которые к ней привели, и пошагово рассмотрим методы устранения неисправности, включая использование ИИ помощника для обновления процедур и функций.
Давайте рассмотрим типичную ситуацию. Вы выполняете обновление конфигурации, например, с версии 3.0.115 на 3.0.119. Конфигурация находится на поддержке с возможностью изменения (нетиповая). Процесс сравнения и объединения проходит штатно, но при попытке запуска в режиме "1С:Предприятие" или при сохранении конфигурации вы получаете сообщение об ошибке следующего вида:
Ошибка инициализации модуля: ОбщийМодуль.СоединенияИБКлиент.Модуль
по причине:
{ОбщийМодуль.СоединенияИБКлиент.Модуль(55,32)}: Слишком много фактических параметров (ЗавершитьРаботуПользователей)
ЗавершитьРаботуПользователей(>ТекущийРежим);
Также могут возникать ошибки дублирования имен:
{ОбщийМодуль.СоединенияИБКлиент.Модуль(364,11)}: Процедура или функция с указанным именем уже определена (ЗавершитьРаботуПользователей)
Процедура >ЗавершитьРаботуПользователей(ТекущийРежим)
Давайте разберемся, почему это происходит, даже если вы не вносили изменений в данные модули.
Корень проблемы кроется в механизме обновления измененных конфигураций и рефакторинге кода со стороны поставщика (1С).
В версиях БСП, включенных в релизы "Бухгалтерии" начиная с 3.0.119, произошли значительные изменения в подсистеме завершения работы пользователей. Процедура ЗавершитьРаботуПользователей изменила свою сигнатуру (набор параметров). Если раньше она принимала определенные аргументы (например, режим или сообщение), то в новой версии она может не принимать параметров вовсе или принимать их в виде структуры.
Однако ошибка возникает не в новом коде, а из-за того, что в вашей конфигурации остались удаленные поставщиком объекты.
В данном конкретном случае речь идет об общем модуле СоединенияИБГлобальный. Разработчики 1С удалили этот модуль в новой версии конфигурации, распределив его функционал по другим модулям (например, СоединенияИБКлиент). Но так как ваша конфигурация не является полностью типовой, при обновлении окно сравнения могло не проставить автоматически галочку удаления для этого объекта.
В результате получается конфликт:
СоединенияИБГлобальный, который пытается вызывать процедуры по старым правилам.СоединенияИБКлиент, который уже не поддерживает старые вызовы.Самый быстрый и эффективный способ решения проблемы, подтвержденный практикой — это принудительное удаление модуля-призрака.
Выполним следующие действия:
СоединенияИБГлобальный.После удаления этого модуля глобальные процедуры, которые он перекрывал или дублировал, начнут корректно вызываться из новых модулей БСП.
Чтобы избежать подобных проблем в будущем ("зомби-объекты", которые должны были удалиться, но остались), давайте проанализируем правильный подход к обновлению нетиповых конфигураций, в том числе через автоматическое обновление из хранилища.
При выполнении сравнения и объединения с конфигурацией поставщика:
Это предотвратит накопление мусора в конфигурации, который рано или поздно приведет к ошибкам.
В обсуждении также упоминалась ошибка, возникающая уже после исправления модулей:
Поле объекта не обнаружено (НастройкиЯндексКассы)
Эта ошибка имеет ту же природу. В процессе развития конфигурации 1С изменила механизмы интеграции с платежными системами (ребрендинг Яндекс.Кассы в ЮKassa и изменение архитектуры хранения настроек). Старые константы или справочники были удалены.
Если такая ошибка возникает:
НастройкиЯндексКассы.Еще один важный момент, который стоит рассмотреть — это патчи (исправления), устанавливаемые через расширения конфигурации (имена обычно начинаются с EF_...).
Перед серьезным обновлением релиза (например, с 3.0.115 на 3.0.119) настоятельно рекомендуется удалять все установленные патчи.
Почему это важно?
ЗавершитьРаботуПользователей).Чтобы удалить патчи:
Ошибка "Слишком много фактических параметров" при обновлении БП 3.0 является прямым следствием наличия в конфигурации устаревшего модуля СоединенияИБГлобальный. Удалите его, а также проверьте конфигурацию на наличие других "потерянных" объектов (особенно связанных с интернет-эквайрингом), чтобы гарантировать стабильную работу системы.