При переходе на новые версии конфигурации «1С:Зарплата и управление персоналом 8» (ЗУП) пользователи нередко сталкиваются с техническими сложностями. Одной из наиболее резонансных проблем стало обновление до версии 3.1.17.94. Проблема проявляется на этапе выполнения отложенных обработчиков обновления и блокирует дальнейшую работу с базой. В этой статье мы подробно разберем, почему возникает ошибка в регистре МероприятияТрудовойДеятельностиПереданные, и какими способами можно восстановить работоспособность системы.
Рассмотрим ситуацию: в процессе обновления системы на этапе обработки данных возникает критическая ошибка: «Запись с такими ключевыми полями существует! : МероприятияТрудовойДеятельностиПереданные». В тексте ошибки часто фигурирует пустой уникальный идентификатор (GUID) вида 00000000-0000-0000-0000-000000000000.
Выясним причину такого поведения системы. В релизе 3.1.17.94 разработчики 1С изменили структуру хранения данных в регистре сведений Мероприятия трудовой деятельности переданные. Для корректной работы с электронными трудовыми книжками (ЭТК) потребовалось перенести данные из старых структур в новые. За этот процесс отвечает специальный обработчик обновления ПереносДанныхМероприятийТрудовойДеятельности.
Конфликт возникает из-за того, что в базе данных уже присутствуют записи, которые система считает идентичными по ключевым полям. Проанализируем основные факторы, приводящие к «замусориванию» регистра:
СЗВ-ТД или пытались «поправить» записи непосредственно в регистрах, это могло привести к потере связи между мероприятием и его идентификатором.СЗВ-ТД записи в регистре сведений остаются «сиротами», что и вызывает конфликт при попытке их конвертации.Эта проблема официально зарегистрирована в реестре ошибок 1С под номером 10229410.
Прежде чем приступать к исправлению, проанализируем состояние базы. Как показывает практика, ошибка может не проявляться на «чистых» базах, где учет велся строго по регламенту. Однако, если конфигурация типовая, но данные копились годами, риск высок.
Важно: Перед любыми манипуляциями с регистрами обязательно создайте полную резервную копию информационной базы (файл .dt или выгрузка средствами SQL-сервера). Если обновление уже запущено и «упало» с ошибкой, рекомендуется откатиться к копии, сделанной до начала обновления.
Проверим логическую целостность базы. Для этого выполним стандартную процедуру «Тестирование и исправление» (ТиИ):
Для исправления этой конкретной ошибки фирма 1С выпускала внешнюю обработку ИсправлениеДублейМероприятийТрудовойДеятельности.epf. Это самый безопасный и эффективный метод.
Разберем алгоритм работы с обработкой:
Мероприятия трудовой деятельности переданные на предмет пустых GUID и записей с одинаковыми ключами.Если записей немного или вы не можете найти официальную обработку, проанализируем ситуацию вручную через интерфейс системы. Для этого нам понадобится доступ к функциям технического специалиста.
Мероприятия трудовой деятельности переданные.Идентификатор мероприятия (GUID), указав значение 00000000-0000-0000-0000-000000000000 или просто пустое поле.СЗВ-ТД они относятся.ДокументОснование, ФизическоеЛицо и ИдентификаторМероприятия.Для программистов может быть полезен следующий пример кода, позволяющий быстро найти пустые записи программным способом:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Мероприятия.Регистратор,
| Мероприятия.НомерСтроки,
| Мероприятия.ФизическоеЛицо
|ИЗ
| РегистрСведений.МероприятияТрудовойДеятельностиПереданные КАК Мероприятия
|ГДЕ
| Мероприятия.ИдентификаторМероприятия = ЗНАЧЕНИЕ(УникальныйИдентификатор.Пустой)";
Результат = Запрос.Выполнить();
Если Не Результат.Пустой() Тогда
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
Сообщить("Пустой GUID в документе: " + Выборка.Регистратор);
КонецЦикла;
КонецЕсли;
Проанализируем опыт пользователей: многие отмечают, что ошибка 3.1.17.94 была исправлена в последующих сборках. Если ваша текущая версия позволяет «перепрыгнуть» проблемный релиз, мы рекомендуем обновляться сразу до версии 3.1.17.101 или выше (вплоть до актуальных веток 3.1.18+ или 3.1.23+).
В более поздних версиях алгоритм конвертации данных был доработан разработчиками 1С так, чтобы автоматически пропускать или корректно обрабатывать записи с неуникальными ключами, не прерывая процесс обновления всей базы.
Мы рассмотрели одну из самых неприятных ошибок обновления ЗУП, связанную с переходом на новый механизм учета трудовой деятельности. Подводя итог, выделим основные правила успешного обновления:
СЗВ-ТД или Регистрация трудовой деятельности.Следуя этим шагам, мы сможем успешно завершить обновление и продолжить работу в актуальной версии программы без потери данных в учете трудовой деятельности сотрудников.