Ошибка при обновлении с релиза 3.0.43.214 на 3.0.43.241

1. l-Rain 20.06.16 10:08 Сейчас в теме
БП 3.0.43.214 типовая на поддержке, платформа 8.3.6.2390, пробовали обновляться на платформе 8.3.7.1873.
Обновляю на 3.0.43.241. В конфигураторе все проходит отлично, но при первом запуске базы вылетает ошибка на 32% "Элемент с установленным признаком "ЭтотУзел" уже существует". Оказывается в плане обмена "Обмен сообщениями" две записи вместо одной. Программа не дает пометить запись на удаление, выводится та же ошибка. Не пойму, как появилась вторая запись и что теперь делать?
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. l-Rain 20.06.16 10:13 Сейчас в теме
Добавлю. Никакие синхронизации с другими базами не используются, простейший учет ИП на одном рабочем месте. И руками узлы обмена в указанный план обмена никто не добавлял.
3. Drak0n 188 20.06.16 11:00 Сейчас в теме
Из конфигуратора прогоните тестирование и исправление на 8.3.7... В теории дубли в предопределенных элементах должны убраться.
4. l-Rain 20.06.16 11:08 Сейчас в теме
Это ничего не дало. И проверка внешней утилитой тоже. Это первое, что было сделано.
5. l-Rain 20.06.16 11:09 Сейчас в теме
Выгрузила данные, загрузила в чистую базу той же версии. Кажется помогло. Во всяком случае, дубля в злополучном плане обмена нет. Сейчас пробую обновиться.
6. l-Rain 20.06.16 11:35 Сейчас в теме
Опять неудачно. Задвоились счета в плане счетов. Видимо у них разный внутренний ИД.
7. MyPuK_OLD 20.06.16 11:40 Сейчас в теме
(6) l-Rain, Если точно типовая, то можете залить конфигурацию поставщика, на рабочий релиз и потом попытайтесь обновить.
8. Drak0n 188 20.06.16 11:49 Сейчас в теме
Проще надо быть

Если элемент не предопределенный, что мешает обработкой признак "ЭтотУзел" скинуть и пометить дубль на удаление?
9. l-Rain 20.06.16 14:02 Сейчас в теме
Спасибо за идею, Вам плюс. Пять строк модуля обработки и проблема решилась.
10. crunderwood 20.06.16 14:28 Сейчас в теме
(9) l-Rain, поясните пожалуйста, не особо понял
11. l-Rain 20.06.16 19:00 Сейчас в теме
Простой внешней обработкой одному из двух идентичных узлов установила ЭтотУзел = Ложь; и пометила его на удаление. Он прекрасно удалился.
12. crunderwood 21.06.16 07:07 Сейчас в теме
(11) l-Rain, а как обработка называется? и если не трудно скиньте пожалуйста
13. l-Rain 21.06.16 09:15 Сейчас в теме
Обработка называется - сама написала. ) Что там скидывать-то. Выборка по записям, первой записи присвоить ЭтотУзел = Ложь, прервать. И все. У меня на второй записи стоял признак предопределенности, поэтому я удалила первую. У вас может быть по другому. Поэтому лучше исходить из конкретной ситуации. Моя обработка не универсальна, она написана под конкретную ситуацию.
&НаКлиенте
Процедура ВыполнитьОбработку(Команда)
	ВыполнитьОбработкуНаСервере();
КонецПроцедуры

&НаСервере
Процедура ВыполнитьОбработкуНаСервере()
	ВыборкаУзлов = ПланыОбмена.ОбменСообщениями.Выбрать();
Пока ВыборкаУзлов.Следующий() Цикл
    Если ВыборкаУзлов.Ссылка<>ПланыОбмена.ОбменСообщениями.ЭтотУзел() Тогда
        УзелОбъект = ВыборкаУзлов.ПолучитьОбъект();
		УзелОбъект.ЭтотУзел = Ложь;
		УзелОбъект.Записать();
		Прервать;
    КонецЕсли;    
КонецЦикла;
Показать
Поручик; +1 Ответить
14. l-Rain 21.06.16 09:16 Сейчас в теме
В конце кода КонецПроцедуры еще забыла.
15. pyrkin_vanya 497 08.10.16 09:10 Сейчас в теме
БП версии 3.0.43.263. Выходит аналогичная ошибка. Вариант действий.
1) Сделал ТиИ с созданием ссылок.
2) После чего в предприятии в плане обмена "Обмен сообщениями" появился еще один план обмена. Но уже соответствующий этому узлу. Т.е. с зелененькой точкой.
3) Написал обработку почти аналогичную как выше.
&НаКлиенте
Процедура Удалить(Команда)
	
	Удалить_Сервер();
	
КонецПроцедуры

&НаСервере
Процедура Удалить_Сервер()
	
	ВыборкаУзлов = ПланыОбмена.ОбменСообщениями.Выбрать();
	Пока ВыборкаУзлов.Следующий() Цикл
		УзелОбъект = ВыборкаУзлов.ПолучитьОбъект();
		Если ВыборкаУзлов.Ссылка <> ПланыОбмена.ОбменСообщениями.ЭтотУзел() Тогда
			УзелОбъект.Удалить();
		Иначе
			УзелОбъект.УстановитьНовыйКод();
			УзелОбъект.Наименование = "Предопределенный обмен";
			Попытка
				УзелОбъект.Записать();
			Исключение
				Сообщить(ОписаниеОшибки());
			КонецПопытки;
		КонецЕсли;
	КонецЦикла;
	
КонецПроцедуры

Показать

Все лишние обработка удаляет, присваивает код и наименование нужному.
4) Обновляемся на нужную версию и все готово.

P.S.Собственно нашел эту тему когда искал ответ на вопрос: "А почему такое произошло?". Ответа так и нет. Если кто-то сможет объяснить буду очень признателен.
Поручик; +1 Ответить
17. Поручик 4669 27.09.19 09:00 Сейчас в теме
(15)
(13) Всем спасибо. Помогло при обновлении.
16. mazechild 08.10.16 10:09 Сейчас в теме
Фирма 1С заботится о росте профессиональных качеств своих пользователей. Теперь чтобы обновиться необходимо еще и начать программировать.
Поручик; sur0g; +2 Ответить
18. Swamt 39 30.09.24 14:33 Сейчас в теме
у меня наоборот слетел признак ЭтотУзел и при обновлении вываливалась ошибка "Ошибка при вызове метода УдалитьРегистрациюИзменений(Выборка.Узел)".
Создал новую обработку с кнопкой на форме, открыл обработку в момент когда вываливается ошибка, через Еще->Открыть внешнюю обработку, выполнил обработку и перезапустил обновление - ошибка ушла и обновление закончилось успешно.
Код обработки прилагаю:
&НаКлиенте
Процедура ВыполнитьОбработку(Команда)
	ВыполнитьОбработкуНаСервере();
КонецПроцедуры

&НаСервере
Процедура ВыполнитьОбработкуНаСервере()
	
	ПредопределенныйУзел = ОбменДаннымиПовтИсп.ПолучитьЭтотУзелПланаОбмена("ОбновлениеИнформационнойБазы"); // здесь указываем имя плана обмена как оно задано в конфигураторе
	ПредопределенныйУзелОб = ПредопределенныйУзел.ПолучитьОбъект();
	ПредопределенныйУзелОб.ЭтотУзел = Истина;
	ПредопределенныйУзелОб.Записать();

КонецПроцедуры
Показать
Оставьте свое сообщение

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