Как исправить ошибку «Недопустимое значение параметра» при открытии формы списка в 1С:УПП 1.3?

Программист 1С v8.3 (Обычные формы) IT и автоматизация бизнеса
← На главную

При открытии списка документов (например, «Поступление товаров и услуг») после обновления конфигурации 1С:Управление производственным предприятием (УПП 1.3) может возникать критическая ошибка следующего вида:

{ОбщийМодуль.ЭлектронныеДокументыКлиент.Модуль(756)}: Ошибка при вызове метода контекста (ПодключитьОбработчикОжидания)
Форма.ПодключитьОбработчикОжидания("Подключаемый_ОбработчикОжиданияЭДО", ВремяОжиданияЭДО(), Истина);
по причине: Недопустимое значение параметра (параметр номер '1') (В модуле формы отсутствует процедура с указанным именем)

Проанализируем ситуацию, выясним причины появления этой проблемы и разберем проверенные способы её решения.

Причины возникновения ошибки

Метод платформы ПодключитьОбработчикОжидания требует, чтобы в контексте передаваемой формы присутствовала процедура с ровно тем именем, которое указано в первом параметре вызова. Если подсистема ЭДО пытается подключить обработчик Подключаемый_ОбработчикОжиданияЭДО, а в модуле открываемой формы этой процедуры нет, платформа выбрасывает исключение.

Основные причины, почему процедура может отсутствовать в модуле формы:

  1. Форма снята с поддержки или дорабатывалась: если форма документа ранее изменялась разработчиками и была снята с поддержки (или стояла в режиме «Редактируется с сохранением поддержки»), стандартное обновление конфигурации могло не обновить модуль этой формы. В результате общий модуль подсистемы ЭДО обновился, а модуль формы остался старой версии.
  2. Пропуск релизов при обновлении: при обновлении конфигурации «через несколько релизов» или некорректном выборе правил объединения изменения в модулях форм могли не перенестись.
  3. Кэш конфигуратора или пользователя: временно сохраненные формы в кэше могут вызывать сбои, хотя чаще всего проблема кроется именно в коде модуля формы.

Способ 1. Сравнение и объединение с конфигурацией поставщика (Рекомендуемый)

Первым делом проверим состояние поддержки проблемной формы и восстановим недостающие процедуры из типовой конфигурации поставщика.

Разберем процесс по шагам:

  1. Откроем конфигурацию в режиме Конфигуратор.
  2. В меню выберем Конфигурация — Поддержка — Настройка поддержки.
  3. Найдем документ (например, ПоступлениеТоваровУслуг) и его форму списка. Проверим символ поддержки (замок).
  4. Выполним сравнение и объединение с конфигурацией поставщика (меню Конфигурация — Сравнить, объединить с конфигурацией поставщика).
  5. В дереве сравнения найдем модуль проблемной формы списка и убедимся, что процедура Подключаемый_ОбработчикОжиданияЭДО присутствует в типовой конфигурации поставщика, но отсутствует в основной конфигурации базы.
  6. Объединим модуль формы с конфигурацией поставщика или перенесем недостающие процедуры вручную.

Способ 2. Добавление процедуры-заглушки в модуль формы

Если форма сильно доработана и восстановление модуля из конфигурации поставщика требует длительного времени, либо если подсистема ЭДО в организации не используется, можно добавить процедуру-заглушку непосредственно в модуль проблемной формы.

Не рекомендуется комментировать вызовы в общем модуле ЭлектронныеДокументыКлиент, так как это усложнит последующие обновления. Безопаснее добавить в конец модуля формы списка следующую процедуру без параметров:


Процедура Подключаемый_ОбработчикОжиданияЭДО()
	// Заглушка для обработчика ожидания ЭДО
КонецПроцедуры

Платформа успешно обнаружит указанную процедуру по имени, подключит обработчик ожидания, и ошибка перестанет возникать.

Способ 3. Очистка кэша и проверка установленных патчей

Если модуль формы содержит нужную процедуру, но ошибка все равно появляется, проанализируем дополнительные факторы:

  1. Очистка кэша: выполним очистку кэша 1С (удалим базу из списка запуска и добавим заново либо очистим каталоги %LocalAppData%\1C\1cv8 и %AppData%\1C\1cv8).
  2. Конфликт патчей (исправлений): проверим список установленных расширений и исправлений. Если в базу был установлен патч для подсистемы ЭДО, он мог обновить общий модуль, не изменив модули форм. В таком случае патч следует обновить или удалить.
← На главную