Ошибка при обновлении ЗУП на 3.1.17.94.

1. mspuz 27.02.21 21:35 Сейчас в теме
Добрый день. При обновлении до указанной версии появилась ошибка:

Код
Запись с такими ключевыми полями существует! : МероприятияТрудовойДеятельностиПереданные:
Показать полностью

Проблема в том, что данная ошибка появляется при обработках после обновления. И получить доступ к базе я не могу. Так вышло, что бэкап оказался не рабочим.

В другой базе я уже сделал бэкап и так же после обновления получил эту ошибку. Откатившись назад перешел в регистр МероприятияТрудовойДеятельностиПереданные и получил ошибку:
Код
Обнаружено дублирование ключевых значений в колонках "ИдМероприятия, Отменено"
Показать полностью


Видимо нужно где-то что-то поправить и все будет хорошо. Но где и что, не могу сообразить и главный вопрос - могу ли я пропустить обработчики после обновления, чтобы получить доступ к БД? Спасибо.
Прикрепленные файлы:
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. pyrkin_vanya 488 27.02.21 22:12 Сейчас в теме
(1)на память не вспомню какой общий модуль. Найти общий модуль что-то типа обновлениеинфориационнойбазы и т.д. найти там процедуру обновления на вашу версию. Закоментить. Открыть базу. Убрать дубли в регистре. Раскоментить все и запустить обновление иб ещё раз через параметр запуска. С ключом /запуститьобновлениеинформационнойбазы.
3. mspuz 27.02.21 23:52 Сейчас в теме
6. user1146392 01.03.21 09:03 Сейчас в теме
(3)
Нашел решение - https://infostart.ru/public/426048/


Удалось по этому решению победить? Обработками?
4. burgomister 59 28.02.21 11:48 Сейчас в теме
У нас нет таких проблем. Четыре базы обновил. Значит, у вас проблемы в данных.
5. TormDV 01.03.21 08:48 Сейчас в теме
На 3.1.14.433 обработчик обновления проходит. Хотя, если зайти в регистр МероприятияТрудовойДеятельностиПереданные и начать его листать, через некоторое время выдаст ошибку: Обнаружено дублирование ключевых значений в колонках "ИдМероприятия, Отменено, Организация", в ЖР она не пишется. Действительно дубли по этим полям есть в некоторых первых документах 2020 года, когда они только появились и работали, мягко говоря, непонятным образом.

3.1.14.433 РС МероприятияТрудовойДеятельностиПереданные в модуле менеджера процедура выглядит так:

Процедура ЗаполнитьОрганизации(ПараметрыОбновления = Неопределено) Экспорт
	
	Запрос = Новый Запрос;
	
	Если ПараметрыОбновления = Неопределено Тогда
		МассивОбновленных = Новый Массив;
	Иначе
		
		Если ПараметрыОбновления.Свойство("МассивОбновленных") Тогда
			МассивОбновленных = ПараметрыОбновления.МассивОбновленных;
		Иначе
			МассивОбновленных = Новый Массив;
			ПараметрыОбновления.Вставить("МассивОбновленных", МассивОбновленных);
		КонецЕсли;
		
	КонецЕсли;
	
	Запрос.УстановитьПараметр("МассивОбновленных", МассивОбновленных);
	
	Запрос.Текст =
		"ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 1000
		|	МероприятияПереданные.Регистратор КАК Регистратор,
		|	МероприятияПереданные.Регистратор.Организация КАК Организация
		|ИЗ
		|	РегистрСведений.МероприятияТрудовойДеятельностиПереданные КАК МероприятияПереданные
		|ГДЕ
		|	НЕ МероприятияПереданные.Регистратор В (&МассивОбновленных)
		|	И МероприятияПереданные.Организация = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)";
	
	Если ПараметрыОбновления = Неопределено Тогда
		Запрос.Текст = СтрЗаменить(Запрос.Текст, "ПЕРВЫЕ 1000","");
	КонецЕсли;
	
	Выборка = Запрос.Выполнить().Выбрать();
	Если Выборка.Количество() = 0 Тогда
		ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Истина);
		Возврат;
	КонецЕсли;
	
	ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Ложь);
	
	Пока Выборка.Следующий() Цикл
		
		МассивОбновленных.Добавить(Выборка.Регистратор);
		
		Если Не ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ПодготовитьОбновлениеДанных(ПараметрыОбновления, "РегистрСведений.МероприятияТрудовойДеятельностиПереданные.НаборЗаписей", "Регистратор", Выборка.Регистратор) Тогда
			Продолжить;
		КонецЕсли;
		
		НаборЗаписей = РегистрыСведений.МероприятияТрудовойДеятельностиПереданные.СоздатьНаборЗаписей();
		НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор);
		НаборЗаписей.Прочитать();
		
		Для Каждого Запись Из НаборЗаписей Цикл
			Запись.Организация = Выборка.Организация;
		КонецЦикла;
		
		ОбновлениеИнформационнойБазы.ЗаписатьНаборЗаписей(НаборЗаписей);
		ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ЗавершитьОбновлениеДанных(ПараметрыОбновления);
		
	КонецЦикла;
	
КонецПроцедуры
Показать


Сравните с 17 версией, может есть отличия, поможет для обновления.
7. _MPV_ 2 01.03.21 09:34 Сейчас в теме
Возникает ошибка из-за того, что в кадровых документах уже стоит флаг "отразить в трудовой книжке", но дополнительно введен еще и документ "сведения о трудовой деятельности работников"

У себя исправил так: в диалоге ошибки через пункт "еще", открыл консоль запросов и через выборку РС "МероприятияТрудовойДеятельностиПереданные" нашел id, на которые ругается программа. Дальше распровел документы, где были эти ID.
8. user1146392 01.03.21 09:59 Сейчас в теме
(7)
"еще", открыл консоль запросов и через выборку РС "МероприятияТрудовойДеятельностиПереданные" нашел id, на которые ругается программа. Дальше распровел документы, где были эти ID.


А можно подробнее инструкцию?
9. TormDV 01.03.21 10:08 Сейчас в теме
(7)
Как один из вариантов, другой вопрос, что не все кадровики пустят документы февраля прошлого года корячить.
11. mspuz 01.03.21 12:41 Сейчас в теме
(7)Именно так и сделал. Другого решения пока не вижу.
10. waitklassik 01.03.21 10:10 Сейчас в теме
Документы прошлого года не один кадровик не даст корячить=)
12. VAAngelov 366 02.03.21 09:24 Сейчас в теме
(10)Что значит не даст корячить?

В нашей ситуации я нашел дубли в РС МероприятияТрудовойДеятельностиПереданные. Записи в этом регистре делает документ СЗВ-ТД.
Показываю:
февраль 2020 СЗВ-ТД - по проблемному сотруднику - прием на работу
март 2020 СЗВ-ТД - по этому же сотруднику - 1 событие тот же самый прием на работу (Это как вообще?) 2 событие - увольнение

А я знаю как это. это было начало этого отчета, он тогда был весь сырой вдоль и поперек, проверок программно было мало и вот и заполнилось одно и то же событие дважды.
В новом релизе обработчик обновления видимо проверяет дубли УИД (додумались наконец спустя год!) и выполнить обработчик не может, так как не может быть 2х уникальных записей в одном регистре.

Мое решение - поднял копию, нашел дубли, провалился в каждую запись, в марте в мероприятиях сотрудника убрал прием на работу, убрал в СЗВ-ТД (вопрос как это принял ПФР?) и дубли с регистра улетели. обновил базу.

Так что покажите мне того кадровика, который не даст мне это сделать) Возьмем такого кадровика и пойдем вместе с ним к главбуху и посмотрим кто отгребет.

Я считаю тут нет вины кадровиков в том периоде, потому что отчет был очень сырой, постоянно все менялось и было непонятно как все это работает вообще. Но вот если кадровик становится в позу - смотрите мой пункт выше.
yaroslavch; +1 Ответить
13. Bukaska 140 12.03.21 21:33 Сейчас в теме
(10)НЕ даст...но надо... Если есть дубль... Как дров наломаете, так и исправлять надо.
Спасибо что тут нашла тему. Людям не обновиться было, сказала ищите там то то в отчетах, и скрин дала с темы. Слава Богу, люди нормальные, не пришлось за них ничего искать, нашли дубль, сняли с проведения проблемный док и привели доки в порядок, после чего успешно прога обновилась и нужные отчеты сдались)
НЕ надо ломать дров, чтобы потом не исправлять, а вообще конечно не дело трогать прошлый период, но в данном случае другого выхода нет)
14. VAAngelov 366 12.03.21 21:36 Сейчас в теме
(13)И я о том же) даст, как миленькая.) Выбора у нее все равно нет)
А вы сами подумайте, что вы там можете сломать? отправленное дважды событие? так это уже косяк. так что его надо править. Делайте. Не бойтесь. Все будет норм.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот