При обновлении конфигурации «1С:Бухгалтерия предприятия» до версии 3.0.60.44 многие пользователи и технические специалисты столкнулись с критической остановкой процесса. Ошибка возникает на этапе выполнения дополнительных процедур обработки данных. В этой статье мы подробно разберем, почему возникает данная проблема, и рассмотрим все доступные способы ее решения — от официальных патчей до ручной корректировки данных и кода.
Рассмотрим текст ошибки, который выводится в журнале регистрации или в окне обновления: Недопустимое значение параметра (параметр номер '1') (Неверное имя пространства блокировок - РегистрСведений.ЗаписиОСтажеСведенияОСтраховомСтажеЗастрахованныхЛицСЗВ_СТАЖ.НаборЗаписей). Выясним причину такого поведения системы. Проблема кроется в общем модуле ПерсонифицированныйУчет. При попытке установить блокировку данных для обновления записей регистра, разработчики ошибочно указали путь к объекту через уточнение .НаборЗаписей.
В платформе «1С:Предприятие 8.3» при использовании объекта БлокировкаДанных в методе Добавить необходимо указывать имя самого объекта метаданных (например, РегистрСведений.НазваниеРегистра). Добавление суффикса .НаборЗаписей делает имя пространства блокировки невалидным, что и вызывает исключение.
Важный нюанс: Ошибка проявляется только в тех базах, где уже существуют документы Сведения о страховом стаже застрахованных лиц (СЗВ-СТАЖ). Если база новая или учет в ней велся без этого документа, обработчик обновления проходит по пустому списку и не вызывает проблемный участок кода.
Проанализируем самый простой и правильный путь. Компания «1С» оперативно выпустила исправительный релиз 3.0.60.46. Если вы еще не начали процесс обновления или имеете возможность откатиться к резервной копии перед переходом на версию 60.44, выполните следующие действия:
Если же база уже находится в состоянии «полуобновления» и выдает ошибку, перейдем к альтернативным методам.
Посмотрим, как можно исправить ошибку в коде самостоятельно. Если у вас конфигурация не базовая и включена возможность изменения, найдем в общем модуле ПерсонифицированныйУчет процедуру, отвечающую за подготовку обновления данных (ориентировочно строка 13912).
Найдем фрагмент кода:
Если Не ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ПодготовитьОбновлениеДанных(ПараметрыОбновления,
"РегистрСведений.ЗаписиОСтажеСведенияОСтраховомСтажеЗастрахованныхЛицСЗВ_СТАЖ.НаборЗаписей",
"ДокументОснование", Выборка.ДокументОснование) Тогда
И заменим его на исправленный вариант, удалив лишнее уточнение:
Если Не ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ПодготовитьОбновлениеДанных(ПараметрыОбновления,
"РегистрСведений.ЗаписиОСтажеСведенияОСтраховомСтажеЗастрахованныхЛицСЗВ_СТАЖ",
"ДокументОснование", Выборка.ДокументОснование) Тогда
Для тех, кто не хочет снимать конфигурацию с поддержки, лучше использовать расширение. Создадим новое расширение, добавим в него общий модуль ПерсонифицированныйУчет и перенесем туда процедуру с методом &Вместо. Важно: при подключении расширения обязательно снимите галочку "Безопасный режим", иначе расширение не сможет вносить изменения в работу обработчиков обновления.
Рассмотрим способ, который подходит для пользователей базовых версий, где правка кода невозможна. Суть заключается в том, чтобы «обмануть» логику обработчика. Если в регистре сведений Записи о стаже сведения о страховом стаже застрахованных лиц СЗВ-СТАЖ создать хотя бы одну запись вручную, это может изменить поведение системы при дозапуске обновления.
Записи о стаже сведения о страховом стаже застрахованных лиц СЗВ-СТАЖ.Если документов СЗВ-СТАЖ в базе несколько, некоторые пользователи рекомендуют создать по одной временной записи на каждый документ, чтобы обработчик «проскочил» все итерации цикла.
Проанализируем еще один вариант решения, который помогает, когда другие методы бессильны. Если отчетность СЗВ-СТАЖ уже была сдана через сторонние сервисы (например, СБИС или Контур) и документы в 1С не несут критической учетной нагрузки в текущем периоде, можно поступить так:
Сведения о страховом стаже застрахованных лиц, СЗВ-СТАЖ.Внимание: Перед выполнением этих действий обязательно сделайте копию базы, так как манипуляции с удалением документов могут повлиять на данные персонифицированного учета.
Посмотрим на сопутствующие изменения, которые могут вызвать вопросы у бухгалтера после успешного преодоления ошибки обновления. В данном релизе произошло изменение структуры плана счетов для счета 80 «Уставный капитал». Тип субконто Контрагенты был заменен на Учредители.
В процессе обновления система автоматически переносит остатки. Вы можете увидеть в журнале операций корректировки вида:
Дт 000 Кт 80.09 — Списание остатка с контрагента (физлицо).Дт 000 Кт 80.09 — Регистрация остатка на учредителе (физлицо).Это штатное поведение программы. Мы рекомендуем проверить оборотно-сальдовую ведомость по счету 80 после обновления, чтобы убедиться в корректности переноса данных по каждому учредителю.
Мы разобрали сложную техническую ошибку релиза 3.0.60.44. Подведем итог: наиболее стабильным решением является переход на версию 3.0.60.46. Если же вам необходимо завершить обновление именно на текущей версии, используйте способ с ручным созданием записи в регистре или отключение безопасного режима в расширении. Всегда помните о необходимости создания архивной копии перед любыми техническими манипуляциями с базой данных.