Как исправить ошибку заполнения записей о стаже СЗВ-СТАЖ при обновлении 1С:Бухгалтерия 3.0.60.44?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Налоговый учет
← На главную

При обновлении конфигурации «1С:Бухгалтерия предприятия» до версии 3.0.60.44 многие пользователи и технические специалисты столкнулись с критической остановкой процесса. Ошибка возникает на этапе выполнения дополнительных процедур обработки данных. В этой статье мы подробно разберем, почему возникает данная проблема, и рассмотрим все доступные способы ее решения — от официальных патчей до ручной корректировки данных и кода.

Анализ технической причины ошибки

Рассмотрим текст ошибки, который выводится в журнале регистрации или в окне обновления: Недопустимое значение параметра (параметр номер '1') (Неверное имя пространства блокировок - РегистрСведений.ЗаписиОСтажеСведенияОСтраховомСтажеЗастрахованныхЛицСЗВ_СТАЖ.НаборЗаписей). Выясним причину такого поведения системы. Проблема кроется в общем модуле ПерсонифицированныйУчет. При попытке установить блокировку данных для обновления записей регистра, разработчики ошибочно указали путь к объекту через уточнение .НаборЗаписей.

В платформе «1С:Предприятие 8.3» при использовании объекта БлокировкаДанных в методе Добавить необходимо указывать имя самого объекта метаданных (например, РегистрСведений.НазваниеРегистра). Добавление суффикса .НаборЗаписей делает имя пространства блокировки невалидным, что и вызывает исключение.

Важный нюанс: Ошибка проявляется только в тех базах, где уже существуют документы Сведения о страховом стаже застрахованных лиц (СЗВ-СТАЖ). Если база новая или учет в ней велся без этого документа, обработчик обновления проходит по пустому списку и не вызывает проблемный участок кода.

Способ 1: Установка исправительного обновления (рекомендуется)

Проанализируем самый простой и правильный путь. Компания «1С» оперативно выпустила исправительный релиз 3.0.60.46. Если вы еще не начали процесс обновления или имеете возможность откатиться к резервной копии перед переходом на версию 60.44, выполните следующие действия:

  1. Скачайте дистрибутив обновления версии 3.0.60.46 (или более поздней).
  2. Выполните обновление конфигурации через Конфигуратор в обычном режиме.
  3. Запустите предприятие и дождитесь завершения всех обработчиков обновления. В этой версии ошибочный вызов блокировки удален.

Если же база уже находится в состоянии «полуобновления» и выдает ошибку, перейдем к альтернативным методам.

Способ 2: Программная правка кода (через расширение или напрямую)

Посмотрим, как можно исправить ошибку в коде самостоятельно. Если у вас конфигурация не базовая и включена возможность изменения, найдем в общем модуле ПерсонифицированныйУчет процедуру, отвечающую за подготовку обновления данных (ориентировочно строка 13912).

Найдем фрагмент кода:


Если Не ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ПодготовитьОбновлениеДанных(ПараметрыОбновления, 
    "РегистрСведений.ЗаписиОСтажеСведенияОСтраховомСтажеЗастрахованныхЛицСЗВ_СТАЖ.НаборЗаписей", 
    "ДокументОснование", Выборка.ДокументОснование) Тогда

И заменим его на исправленный вариант, удалив лишнее уточнение:


Если Не ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ПодготовитьОбновлениеДанных(ПараметрыОбновления, 
    "РегистрСведений.ЗаписиОСтажеСведенияОСтраховомСтажеЗастрахованныхЛицСЗВ_СТАЖ", 
    "ДокументОснование", Выборка.ДокументОснование) Тогда

Для тех, кто не хочет снимать конфигурацию с поддержки, лучше использовать расширение. Создадим новое расширение, добавим в него общий модуль ПерсонифицированныйУчет и перенесем туда процедуру с методом &Вместо. Важно: при подключении расширения обязательно снимите галочку "Безопасный режим", иначе расширение не сможет вносить изменения в работу обработчиков обновления.

Способ 3: Ручное заполнение регистра (без изменения кода)

Рассмотрим способ, который подходит для пользователей базовых версий, где правка кода невозможна. Суть заключается в том, чтобы «обмануть» логику обработчика. Если в регистре сведений Записи о стаже сведения о страховом стаже застрахованных лиц СЗВ-СТАЖ создать хотя бы одну запись вручную, это может изменить поведение системы при дозапуске обновления.

  1. Перейдем в меню «Все функции» (в новых версиях «Функции для технического специалиста»).
  2. Найдем раздел Регистры сведений и выберем Записи о стаже сведения о страховом стаже застрахованных лиц СЗВ-СТАЖ.
  3. Нажмем «Создать». Заполним обязательные поля: выберем любого сотрудника и любой существующий документ-основание (СЗВ-СТАЖ).
  4. Сохраним запись.
  5. Вернемся в окно с ошибкой обновления и нажмем кнопку «Повторить» или «Выполнить» для проблемного обработчика.
  6. После успешного завершения обновления созданную вручную запись в регистре необходимо удалить.

Если документов СЗВ-СТАЖ в базе несколько, некоторые пользователи рекомендуют создать по одной временной записи на каждый документ, чтобы обработчик «проскочил» все итерации цикла.

Способ 4: Работа с документами-основаниями

Проанализируем еще один вариант решения, который помогает, когда другие методы бессильны. Если отчетность СЗВ-СТАЖ уже была сдана через сторонние сервисы (например, СБИС или Контур) и документы в 1С не несут критической учетной нагрузки в текущем периоде, можно поступить так:

  1. Найдем все документы Сведения о страховом стаже застрахованных лиц, СЗВ-СТАЖ.
  2. Пометим их на удаление (в некоторых случаях помогает только полное физическое удаление, но начните с пометки).
  3. Запустим дообновление. Поскольку объектов для обработки не останется, ошибка блокировки не возникнет.
  4. После обновления снимите пометку на удаление с документов.

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

Дополнительные изменения в версии 3.0.60.44

Посмотрим на сопутствующие изменения, которые могут вызвать вопросы у бухгалтера после успешного преодоления ошибки обновления. В данном релизе произошло изменение структуры плана счетов для счета 80 «Уставный капитал». Тип субконто Контрагенты был заменен на Учредители.

В процессе обновления система автоматически переносит остатки. Вы можете увидеть в журнале операций корректировки вида:

Это штатное поведение программы. Мы рекомендуем проверить оборотно-сальдовую ведомость по счету 80 после обновления, чтобы убедиться в корректности переноса данных по каждому учредителю.

Резюме

Мы разобрали сложную техническую ошибку релиза 3.0.60.44. Подведем итог: наиболее стабильным решением является переход на версию 3.0.60.46. Если же вам необходимо завершить обновление именно на текущей версии, используйте способ с ручным созданием записи в регистре или отключение безопасного режима в расширении. Всегда помните о необходимости создания архивной копии перед любыми техническими манипуляциями с базой данных.

← На главную