Добрый день. При обновлении до указанной версии появилась ошибка:
Код
Запись с такими ключевыми полями существует! : МероприятияТрудовойДеятельностиПереданные:
Показать полностью
Проблема в том, что данная ошибка появляется при обработках после обновления. И получить доступ к базе я не могу. Так вышло, что бэкап оказался не рабочим.
В другой базе я уже сделал бэкап и так же после обновления получил эту ошибку. Откатившись назад перешел в регистр МероприятияТрудовойДеятельностиПереданные и получил ошибку:
Код
Обнаружено дублирование ключевых значений в колонках "ИдМероприятия, Отменено"
Показать полностью
Видимо нужно где-то что-то поправить и все будет хорошо. Но где и что, не могу сообразить и главный вопрос - могу ли я пропустить обработчики после обновления, чтобы получить доступ к БД? Спасибо.
(1)на память не вспомню какой общий модуль. Найти общий модуль что-то типа обновлениеинфориационнойбазы и т.д. найти там процедуру обновления на вашу версию. Закоментить. Открыть базу. Убрать дубли в регистре. Раскоментить все и запустить обновление иб ещё раз через параметр запуска. С ключом /запуститьобновлениеинформационнойбазы.
На 3.1.14.433 обработчик обновления проходит. Хотя, если зайти в регистр МероприятияТрудовойДеятельностиПереданные и начать его листать, через некоторое время выдаст ошибку: Обнаружено дублирование ключевых значений в колонках "ИдМероприятия, Отменено, Организация", в ЖР она не пишется. Действительно дубли по этим полям есть в некоторых первых документах 2020 года, когда они только появились и работали, мягко говоря, непонятным образом.
3.1.14.433 РС МероприятияТрудовойДеятельностиПереданные в модуле менеджера процедура выглядит так:
Процедура ЗаполнитьОрганизации(ПараметрыОбновления = Неопределено) Экспорт
Запрос = Новый Запрос;
Если ПараметрыОбновления = Неопределено Тогда
МассивОбновленных = Новый Массив;
Иначе
Если ПараметрыОбновления.Свойство("МассивОбновленных") Тогда
МассивОбновленных = ПараметрыОбновления.МассивОбновленных;
Иначе
МассивОбновленных = Новый Массив;
ПараметрыОбновления.Вставить("МассивОбновленных", МассивОбновленных);
КонецЕсли;
КонецЕсли;
Запрос.УстановитьПараметр("МассивОбновленных", МассивОбновленных);
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 1000
| МероприятияПереданные.Регистратор КАК Регистратор,
| МероприятияПереданные.Регистратор.Организация КАК Организация
|ИЗ
| РегистрСведений.МероприятияТрудовойДеятельностиПереданные КАК МероприятияПереданные
|ГДЕ
| НЕ МероприятияПереданные.Регистратор В (&МассивОбновленных)
| И МероприятияПереданные.Организация = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)";
Если ПараметрыОбновления = Неопределено Тогда
Запрос.Текст = СтрЗаменить(Запрос.Текст, "ПЕРВЫЕ 1000","");
КонецЕсли;
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Количество() = 0 Тогда
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Истина);
Возврат;
КонецЕсли;
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Ложь);
Пока Выборка.Следующий() Цикл
МассивОбновленных.Добавить(Выборка.Регистратор);
Если Не ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ПодготовитьОбновлениеДанных(ПараметрыОбновления, "РегистрСведений.МероприятияТрудовойДеятельностиПереданные.НаборЗаписей", "Регистратор", Выборка.Регистратор) Тогда
Продолжить;
КонецЕсли;
НаборЗаписей = РегистрыСведений.МероприятияТрудовойДеятельностиПереданные.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор);
НаборЗаписей.Прочитать();
Для Каждого Запись Из НаборЗаписей Цикл
Запись.Организация = Выборка.Организация;
КонецЦикла;
ОбновлениеИнформационнойБазы.ЗаписатьНаборЗаписей(НаборЗаписей);
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ЗавершитьОбновлениеДанных(ПараметрыОбновления);
КонецЦикла;
КонецПроцедуры
Показать
Сравните с 17 версией, может есть отличия, поможет для обновления.
Возникает ошибка из-за того, что в кадровых документах уже стоит флаг "отразить в трудовой книжке", но дополнительно введен еще и документ "сведения о трудовой деятельности работников"
У себя исправил так: в диалоге ошибки через пункт "еще", открыл консоль запросов и через выборку РС "МероприятияТрудовойДеятельностиПереданные" нашел id, на которые ругается программа. Дальше распровел документы, где были эти ID.
"еще", открыл консоль запросов и через выборку РС "МероприятияТрудовойДеятельностиПереданные" нашел id, на которые ругается программа. Дальше распровел документы, где были эти ID.
В нашей ситуации я нашел дубли в РС МероприятияТрудовойДеятельностиПереданные. Записи в этом регистре делает документ СЗВ-ТД.
Показываю:
февраль 2020 СЗВ-ТД - по проблемному сотруднику - прием на работу
март 2020 СЗВ-ТД - по этому же сотруднику - 1 событие тот же самый прием на работу (Это как вообще?) 2 событие - увольнение
А я знаю как это. это было начало этого отчета, он тогда был весь сырой вдоль и поперек, проверок программно было мало и вот и заполнилось одно и то же событие дважды.
В новом релизе обработчик обновления видимо проверяет дубли УИД (додумались наконец спустя год!) и выполнить обработчик не может, так как не может быть 2х уникальных записей в одном регистре.
Мое решение - поднял копию, нашел дубли, провалился в каждую запись, в марте в мероприятиях сотрудника убрал прием на работу, убрал в СЗВ-ТД (вопрос как это принял ПФР?) и дубли с регистра улетели. обновил базу.
Так что покажите мне того кадровика, который не даст мне это сделать) Возьмем такого кадровика и пойдем вместе с ним к главбуху и посмотрим кто отгребет.
Я считаю тут нет вины кадровиков в том периоде, потому что отчет был очень сырой, постоянно все менялось и было непонятно как все это работает вообще. Но вот если кадровик становится в позу - смотрите мой пункт выше.
(10)НЕ даст...но надо... Если есть дубль... Как дров наломаете, так и исправлять надо.
Спасибо что тут нашла тему. Людям не обновиться было, сказала ищите там то то в отчетах, и скрин дала с темы. Слава Богу, люди нормальные, не пришлось за них ничего искать, нашли дубль, сняли с проведения проблемный док и привели доки в порядок, после чего успешно прога обновилась и нужные отчеты сдались)
НЕ надо ломать дров, чтобы потом не исправлять, а вообще конечно не дело трогать прошлый период, но в данном случае другого выхода нет)
(13)И я о том же) даст, как миленькая.) Выбора у нее все равно нет)
А вы сами подумайте, что вы там можете сломать? отправленное дважды событие? так это уже косяк. так что его надо править. Делайте. Не бойтесь. Все будет норм.