Как исправить ошибку «Неверные параметры НовыйНабор» при увольнении в 1С:ЗУП 3.1.30.116

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

Обновление программных продуктов «1С:Предприятие» — процесс ответственный, и, к сожалению, иногда он сопровождается возникновением непредвиденных ошибок. Одной из наиболее резонансных проблем в релизах Зарплата и Управление Персоналом (ЗУП) 3.1.30.116 и 3.1.30.117 стала ошибка при проведении кадровых документов, таких как Увольнение или Регистрация трудовой деятельности. Ошибка проявляется в процедуре ПередЗаписью модуля набора записей регистра сведений МероприятияТрудовойДеятельности.

Ситуация осложняется тем, что на тестовых базах обновление может проходить успешно, а на рабочей базе пользователи сталкиваются с невозможностью провести документы, влияющие на отчетность ЕФС-1. В этой статье мы подробно разберем, почему возникает ошибка «Неверные параметры "НовыйНабор"» и какими способами можно восстановить работоспособность системы.

Анализ причины возникновения ошибки

Давайте проанализируем техническую сторону вопроса. В новой версии ЗУП 3.1.30 разработчики существенно переработали механизмы учета трудовой деятельности для корректного формирования отчетности в Социальный фонд России (СФР). Основное изменение коснулось того, как данные передаются в запросы внутри программного кода.

Ошибка Ошибка при вызове метода контекста (Выполнить) с уточнением Неверные параметры "НовыйНабор" означает, что в запрос, выполняемый в модуле набора записей регистра МероприятияТрудовойДеятельности, передается таблица значений (параметр &НовыйНабор), структура которой не соответствует ожидаемой метаданными конфигурации. Это может происходить из-за конфликта версий платформы, кэша или расширений.

Рассмотрим по шагам все возможные способы решения проблемы, начиная от самых простых и заканчивая сложными административными манипуляциями.

Способ 1: Конфликты с расширениями конфигурации

Проанализируем ситуацию: если на тестовой базе (где обычно нет расширений) всё работает, а на рабочей (где расширения установлены) возникает ошибка — корень проблемы, скорее всего, именно в них. В версии 3.1.30 изменилась структура регистра МероприятияТрудовойДеятельности. Если ваше расширение заимствует этот регистр или его модуль, возникает несоответствие типов.

  1. Перейдем в меню Администрирование — Обслуживание — Расширения.
  2. Попробуем поочередно отключать расширения, которые могут влиять на кадровый учет или работу с регистрами сведений.
  3. После отключения каждого расширения проверим проведение документа Увольнение.

Важно: Даже если расширение не содержит программного кода, а просто заимствует объект для добавления реквизита, платформа может использовать устаревшее описание структуры таблицы из расширения при формировании параметра &НовыйНабор.

Способ 2: Очистка серверного кэша

Часто после масштабных обновлений конфигурации сервер 1С:Предприятия продолжает использовать старые скомпилированные фрагменты кода или кэшированные описания метаданных. Обычная очистка кэша на клиентском компьютере здесь не поможет, так как ошибка происходит на сервере в модуле набора записей.

Выполним полную очистку серверного кэша по следующему алгоритму:

  1. Остановим службу Агент сервера 1С:Предприятия 8.3 через консоль управления службами.
  2. Перейдем в каталог с данными сервера (по умолчанию это C:\Program Files\1cv8\srvinfo для Windows).
  3. Найдем папку нужного кластера (например, reg_1541) и внутри нее удалим содержимое папки snccntx.
  4. Также удалим все временные папки с длинными именами-идентификаторами (UID), которые являются кэшем сеансов.
  5. Запустим службу сервера заново.

Этот метод заставляет платформу заново перечитать структуру метаданных из базы данных и корректно типизировать параметры запроса.

Способ 3: Соответствие версии платформы 1С

Для релизов ветки 3.1.30 установлены повышенные требования к версии технологической платформы. Если вы используете устаревшую версию платформы (например, ниже 8.3.21.1775 или 8.3.22.2239), механизмы работы с временными таблицами и типизированными параметрами в запросах могут работать некорректно.

Проверим текущую версию платформы и при необходимости обновим ее до рекомендуемых значений (например, последние патчи веток 8.3.23 или 8.3.24). Особое внимание стоит уделить тому, чтобы версия платформы на сервере и у клиента совпадала.

Способ 4: Проверка данных в регистре (Битые ссылки и UUID)

Разберем ситуацию, когда ошибка вызвана «мусорными» данными. В версии 3.1.30 ужесточен контроль уникальности идентификаторов мероприятий. Если в регистре МероприятияТрудовойДеятельности есть записи с пустыми уникальными идентификаторами (GUID), запрос в процедуре ПередЗаписью может завершиться ошибкой.

Для диагностики можно воспользоваться консолью запросов и выполнить поиск записей с пустым ИдентификаторПрограммы или ИдентификаторМероприятия:


ВЫБРАТЬ
    Мероприятия.Период,
    Мероприятия.Регистратор,
    Мероприятия.Сотрудник
ИЗ
    РегистрСведений.МероприятияТрудовойДеятельности КАК Мероприятия
ГДЕ
    Мероприятия.ИдентификаторМероприятия = ЗНАЧЕНИЕ(Справочник.ИдентификаторыМероприятийТрудовойДеятельности.ПустаяСсылка)

Если такие записи найдены, их необходимо исправить или перепровести соответствующие документы-основания.

Способ 5: Настройка уровня совместимости SQL-базы

Если ваша база работает в клиент-серверном варианте, проблема может скрываться в настройках СУБД. При выполнении запроса 1С передает таблицу НовыйНабор в SQL-сервер как типизированный параметр. Старые уровни совместимости (Compatibility Level) в MS SQL Server могут некорректно обрабатывать такие структуры.

  1. Откроем SQL Server Management Studio.
  2. Нажмем правой кнопкой на рабочую базу — Properties (Свойства).
  3. Перейдем в раздел Options (Параметры).
  4. Убедимся, что Compatibility level соответствует версии вашего SQL-сервера (например, SQL Server 2019 (150)).

Если уровень совместимости стоит слишком низкий (например, 2008 или 2012), рекомендуется его повысить после создания резервной копии.

Способ 6: Реструктуризация через выгрузку в DT

Если стандартное «Тестирование и исправление» (ТиИ) с галочкой «Реструктуризация таблиц» не помогло, проанализируем возможность полной физической пересборки таблиц. Метод выгрузки базы в файл .dt и последующей загрузки в новую пустую базу заставляет платформу заново создать все индексы и описания полей в словаре данных СУБД.

  1. В режиме Конфигуратор выполним Администрирование — Выгрузить информационную базу....
  2. Создадим новую пустую базу на сервере 1С.
  3. В новой базе выполним Администрирование — Загрузить информационную базу....

Этот радикальный, но эффективный метод часто устраняет ошибки «Неверные параметры», связанные с нарушением логической целостности структуры таблиц на уровне платформы.

Резюме и временный обходной путь

Если документ Увольнение нужно провести срочно для расчета зарплаты и выплат, а техническое решение затягивается, можно временно воспользоваться следующим методом: в документе снимите флажок «Отразить в трудовой книжке». В этом случае запись в проблемный регистр не производится, и документ проводится успешно. Однако помните, что после решения технической проблемы флажок нужно будет вернуть и провести документ снова, чтобы данные попали в ЕФС-1.

Мы рекомендуем начинать исправление с отключения расширений и очистки серверного кэша, так как в 90% случаев в релизе 3.1.30.116 проблема вызвана именно этими факторами.

← На главную