При переходе на новые релизы конфигурации 1С:Бухгалтерия предприятия 3.0 (в частности, на ветку 3.0.119.x) пользователи часто сталкиваются с критической ошибкой при запуске: «Недопустимое значение параметра (параметр номер '1')». Эта ситуация особенно коварна тем, что администратор системы иногда может нажать кнопку «Продолжить» и войти в программу, в то время как обычные пользователи полностью блокируются данным сообщением.
В этой статье мы подробно разберем причины возникновения этой исключительной ситуации, проанализируем взаимосвязь ошибки с обновлением Библиотеки стандартных подсистем (БСП) и рассмотрим пошаговые алгоритмы решения проблемы — от простых манипуляций с кэшем до анализа исходного кода конфигурации.
Проанализируем техническую природу сообщения. В 1С:Предприятие 8 ошибка с текстом «Недопустимое значение параметра» в контексте запуска управляемого приложения практически всегда связана с методом ПодключитьОбработчикОжидания. Разберем этот механизм подробнее.
Функция ПодключитьОбработчикОжидания принимает первым параметром строку — имя процедуры, которая должна вызываться системой через определенный интервал времени. Если в коде прописан вызов процедуры, которой физически не существует в общих модулях или модуле управляемого приложения (она была удалена, переименована или перемещена в новом релизе), платформа выдает ошибку, указывая на «параметр номер 1».
В релизе 3.0.119.9 произошло масштабное обновление модулей БСП. Некоторые процедуры, такие как ОбработчикОжиданияСтандартныхПериодическихПроверок, были либо упразднены, либо перенесены в другие глобальные модули. Если процесс обновления прошел с микро-сбоями или в базе остались расширения, обращающиеся к старым именам процедур, возникает данный конфликт.
Прежде чем приступать к правке кода, рассмотрим самый простой вариант. Иногда после обновления конфигурации платформа «помнит» старую структуру модулей. Посмотрим, как правильно выполнить полную очистку.
1C:Enterprise 8.3 Server Agent. В некоторых случаях требуется зайти в каталог кластера сервера (обычно это C:\Program Files\1cv8\srvinfo) и вручную очистить содержимое папки snccntx, предварительно остановив службу.Если после очистки кэша у пользователей ошибка сохраняется, перейдем к анализу конфигурации.
Рассмотрим ситуацию, когда обновление «встало» некорректно. Это часто случается, если конфигурация находится на поддержке с возможностью изменения. Проанализируем, как проверить целостность кода.
Откроем Конфигуратор и выполним следующие действия:
.cf) именно версии 3.0.119.9.Обратим особое внимание на общий модуль СтандартныеПодсистемыКлиент. Если в вашей текущей конфигурации в процедуре ПриНачалеРаботыСистемы или ПередНачаломРаботыСистемы вызывается обработчик, которого нет в списке процедур модуля, это и есть источник проблемы. Проверьте наличие процедуры ОбработчикОжиданияСтандартныхПериодическихПроверок. Если её нет, а вызов остался — значит, модуль не обновился должным образом.
Проанализируем роль расширений. Очень часто программисты используют расширения для кастомизации процесса запуска. Если в расширении есть заимствованный метод ПриНачалеРаботыСистемы, он может содержать старый код вызова обработчиков ожидания.
Попробуем следующий алгоритм диагностики:
Если ошибка исчезла, значит, проблему нужно искать в коде одного из расширений, обновляя в нем вызовы методов БСП в соответствии с новым релизом.
Выясним, на какой платформе работают пользователи. Релиз БП 3.0.119.9 требователен к версии технологической платформы. Рассмотрим требования:
Для корректной работы механизмов БСП в данном релизе рекомендуется использовать платформу не ниже 8.3.17.2760, а лучше 8.3.20 или 8.3.21. Использование устаревших версий (например, 8.3.15) может приводить к ошибкам интерпретации параметров в системных методах инициализации системы.
Если проблему нужно решить «здесь и сейчас», а полное сравнение и объединение занимает слишком много времени, разберем, как локализовать ошибку в коде. Чаще всего проблемное место находится в общем модуле СтандартныеПодсистемыКлиент.
Посмотрим на пример кода, который может вызывать сбой:
// В процедуре инициализации системы
Интервал = 20 * 60; // 1200 секунд
ИмяПроцедуры = "СтандартныеПодсистемыГлобальный.ОбработчикОжиданияСтандартныхПериодическихПроверок";
ПодключитьОбработчикОжидания(ИмяПроцедуры, Интервал, Ложь);
Если процедура ОбработчикОжиданияСтандартныхПериодическихПроверок отсутствует в модуле СтандартныеПодсистемыГлобальный, выполнение прервется. Для временного устранения ошибки можно закомментировать строку с вызовом ПодключитьОбработчикОжидания, однако правильным решением будет найти актуальное имя процедуры в новом релизе БСП.
Также стоит проверить настройки Центра мониторинга. Попробуйте зайти под администратором в раздел Администрирование — Интернет-поддержка и сервисы — Центр мониторинга и отключить опцию «Разрешить отправку статистики». Это может предотвратить запуск проблемного фонового процесса у обычных пользователей.
Подведем итог наших действий для успешного запуска 1С:
.cf файлом, обращая внимание на модули СтандартныеПодсистемыКлиент и СтандартныеПодсистемыГлобальный.Следуя этим рекомендациям, мы сможем восстановить работоспособность программы и обеспечить стабильный доступ всех пользователей к базе данных.