|
После переноса изменились данные источника... | ☑ | ||
---|---|---|---|---|
0
pro3ri
22.06.15
✎
12:09
|
Добрый день!
Выполнил перенос данных между 8 ут 10 и 7.7 Бу с синхронизацией справочников. (код из обработки переноса: Процедура СинхронизироватьСправочник(ИмяСправочникаV7,ИмяСправочникаV8); Состояние("Синхронизация справочника "+ ИмяСправочникаV8); Спр=V7.CreateObject("Справочник."+ИмяСправочникаV7); Спр.ВыбратьЭлементы(); Пока Спр.ПолучитьЭлемент()=1 Цикл Ссылка=Справочники[ИмяСправочникаV8].НайтиПоКоду(строка(Спр.Код)); Если Ссылка<> Справочники[ИмяСправочникаV8].ПустаяСсылка() Тогда Если(Строка(Спр.Код)<>Строка(Ссылка.Код)) или (Строка(Спр.Наименование)<>Строка(Ссылка.Наименование)) или (Строка(Спр.Родитель.Код)<>Строка(Ссылка.Родитель.Код) )Тогда Объект=ссылка.ПолучитьОбъект(); Объект.Наименование=Спр.Наименование; Если СокрЛП(Спр.Родитель)<>"" Тогда КодРодителя=Спр.Родитель.Код; РодительСсылка=Справочники[ИмяСправочникаV8].НайтиПоКоду(КодРодителя); Объект.Родитель=РодительСсылка; Иначе Объект.Родитель=Справочники[ИмяСправочникаV8].ПустаяСсылка(); КонецЕсли; Если спр.ПометкаУдаления()=1 Тогда Объект.ПометкаУдаления=Истина; Иначе Объект.ПометкаУдаления=Ложь; КонецЕсли; Объект.записать(); КонецЕсли; Иначе Если Спр.ЭтоГруппа()=1 Тогда Объект=Справочники[ИмяСправочникаV8].СоздатьГруппу(); Иначе Объект=Справочники[ИмяСправочникаV8].СоздатьЭлемент(); КонецЕсли; Объект.Код=Спр.Код; Если СокрЛП(Спр.Родитель)<>"" Тогда КодРодителя=Спр.Родитель.Код; РодительСсылка=Справочники[ИмяСправочникаV8].НайтиПоКоду(КодРодителя); Объект.Родитель=РодительСсылка; Иначе Объект.Родитель=Справочники[ИмяСправочникаV8].ПустаяСсылка(); КонецЕсли; Объект.Наименование=Спр.Наименование; Если спр.ПометкаУдаления()=1 Тогда Объект.ПометкаУдаления=Истина; Иначе Объект.ПометкаУдаления=Ложь; КонецЕсли; Объект.Записать(); КонецЕсли; КонецЦикла; //Перенос Занесенных в УТ и окончательная Синхронизация Выборка=Справочники[ИмяСправочникаV8].ВыбратьИерархически(); Пока Выборка.Следующий() Цикл оЭлементСправочника(Выборка.Ссылка,ИмяСправочникаV7); Конеццикла; КонецПроцедуры) в результате изменились данные в базе - исходнике. Нужные данные есть в тестовой базе (бэкап), как "залить" из тестовой в рабочую? |
|||
1
mikecool
22.06.15
✎
12:17
|
универсальный перенос есть для одинаковых конфигураций
ВыгрузкаЗагрузкачмл |
|||
2
D_E_S_131
22.06.15
✎
12:21
|
Что здесь? Так, судя по коду, в v7 не должно было ничего меняться. |
|||
3
pro3ri
22.06.15
✎
12:25
|
(2) изменилось в 8-ке...
|
|||
4
palpetrovich
22.06.15
✎
12:26
|
(3) а разве не должно было? :)
|
|||
5
pro3ri
22.06.15
✎
12:31
|
(2) Функция оЭлементСправочника(Элемент,ИмяСправочникаV7)
Если Элемент=Неопределено тогда возврат ""; КонецЕсли; состояние(Элемент.Наименование); Спр=V7.CreateObject("Справочник."+ИмяСправочникаV7); ЭлементНайден=Ложь; Если (Спр.НайтиПоРеквизиту("UUID",строка(Элемент.Ссылка.УникальныйИдентификатор()),0)=0) Тогда Если (Спр.НайтиПоКоду(Элемент.Код)=1) Тогда ЭлементНайден=Истина; КонецЕсли; Иначе ЭлементНайден=Истина; КонецЕсли; Если ЭлементНайден Тогда Если (Строка(Спр.Код)<>Строка(Элемент.Код)) или (Строка(Спр.Наименование)<>Строка(Элемент.Наименование)) или (Строка(Спр.Родитель.Код)<>Строка(Элемент.Родитель.Код) или (Спр.UUID<>Строка(Элемент.ссылка.УникальныйИдентификатор())))Тогда Спр.Код=Строка(Элемент.Код); Спр.Наименование=Строка(Элемент.Наименование); Если Элемент.Родитель<>Справочники[Элемент.Метаданные().Имя].Пустаяссылка() Тогда Спр.Родитель=оЭлементСправочника(Элемент.Родитель,ИмяСправочникаV7); Иначе Спр.Родитель=""; КонецЕсли; Спр.UUID=строка(Элемент.Ссылка.УникальныйИдентификатор()); Спр.Записать(); КонецЕсли; Иначе Если Элемент.ЭтоГруппа Тогда Спр.НоваяГруппа(); Иначе Спр.Новый(); КонецЕсли; Спр.Код=Строка(Элемент.Код); Спр.Наименование=Строка(Элемент.Наименование); Если Элемент.Родитель<>Справочники[Элемент.Метаданные().Имя].Пустаяссылка() Тогда Спр.Родитель=оЭлементСправочника(Элемент.Родитель,ИмяСправочникаV7); Иначе Спр.Родитель=""; КонецЕсли; Спр.UUID=строка(Элемент.Ссылка.УникальныйИдентификатор()); Спр.Записать(); КонецЕсли; Возврат спр.текущийэлемент(); КонецФункции (4) судя по Ссылка=Справочники[ИмяСправочникаV8].НайтиПоКоду(строка(Спр.Код)); и Объект=ссылка.ПолучитьОбъект(); Объект.записать(); должно... |
|||
6
palpetrovich
22.06.15
✎
13:06
|
(5) :) обращайся еще, тут всегда помогут :)
|
|||
7
pro3ri
22.06.15
✎
13:24
|
спасибо!
|
|||
8
D_E_S_131
22.06.15
✎
14:32
|
И ведь пятница уже прошла...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |