|
В базе Приемнике не создается новый документ с заданным GUID | ☑ | ||
---|---|---|---|---|
0
smpulan
17.08.15
✎
17:11
|
Поиск по форуму, как и google, не внес ясности почему у нового документа изменяется guid.
В общих чертах задача в следующем: На стороне базы источника создается com-соединение к базе приемнику. В базе приемнике создается новый документ и ему назначется guid из документа базы источника. При записи документ guid не соответствует заданному. Код следующий: Ссылка1=Документы.ТребованиеНакладная.ПолучитьСсылку(Док.УникальныйИдентификатор()); Требование = СоединениеCOM.Документы.ТребованиеНакладная.СоздатьДокумент(); Требование.GetNewObjectRef(Ссылка1); Guid из базы источника: "6c4bf88f-f968-11e4-b33d-005056b53fa3" После записи в базе приемнике: "b5a788c9-44e9-11e5-b5c7-005056b53fa3" |
|||
1
GreatOne
17.08.15
✎
17:16
|
не выпендривайся и пиши по русски.
Не получить, а установить |
|||
2
Зеленый пень
17.08.15
✎
17:16
|
Ссылка1=СоединениеCOM.Документы.ТребованиеНакладная.ПолучитьСсылку(Док.УникальныйИдентификатор());
|
|||
3
arccos6pi
17.08.15
✎
17:37
|
(0)
Ссылка1=Документы.ТребованиеНакладная.ПолучитьСсылку(Док.УникальныйИдентификатор()); Guid = СоединениеCOM.NEWObject("Запрос",Строка(Ссылка1)); Требование = СоединениеCOM.Документы.ТребованиеНакладная.СоздатьДокумент(); Требование.GetNewObjectRef(Guid); |
|||
4
arccos6pi
17.08.15
✎
17:38
|
Ссылка1=Документы.ТребованиеНакладная.ПолучитьСсылку(Док.УникальныйИдентификатор());
Guid = СоединениеCOM.NEWObject("УникальныйИдентификатор",Строка(Ссылка1)); Требование = СоединениеCOM.Документы.ТребованиеНакладная.СоздатьДокумент(); Требование.GetNewObjectRef(Guid); |
|||
5
smpulan
18.08.15
✎
09:27
|
(4) не работает, ошибка во 2-й строке, туда надо передавать УИД, а не ссылку на документ.
Распишу проблему более подробно: 1) Из базы А я подключаюсь к базе Б. 2) Получаю УИД документа из базы А. 3) В базе Б создаю документ и присваиваю ему УИД документа из базы А. 4) После записи УИД у созданного документа в базе Б изменяется, одинаковыми остаются только последние 12 символов. Пример: Guid из базы источника: "6c4bf88f-f968-11e4-b33d-005056b53fa3" После записи в базе приемнике: "b5a788c9-44e9-11e5-b5c7-005056b53fa3" Собственно сам код: Guid = СоединениеCOM.NEWObject("УникальныйИдентификатор",Строка(Док.УникальныйИдентификатор())); //УИД документа из базы А "6c4bf88f-f968-11e4-b33d-005056b53fa3" Требование = СоединениеCOM.Документы.ТребованиеНакладная.СоздатьДокумент();//Создаем документ в базе Б Требование.GetNewObjectRef(Guid); //Устанавливаем УИД для документа в базе Б "6c4bf88f-f968-11e4-b33d-005056b53fa3" Требование.Записать(); //УИД изменился на "b5a788c9-44e9-11e5-b5c7-005056b53fa3" В чем ошибка? |
|||
6
hhhh
18.08.15
✎
09:51
|
а разве не так надо?
Требование.GetNewObjectRef(СоединениеCOM.Документы.ТребованиеНакладная.ПолучитьСсылку(Guid));//Устанавливаем УИД для документа в базе Б "6c4bf88f-f968-11e4-b33d-005056b53fa3" |
|||
7
mogul
18.08.15
✎
09:58
|
В (1) же уже написано: не получить, а установить:
Требование.УстановитьСсылкуНового(Ссылка1); |
|||
8
smpulan
18.08.15
✎
10:15
|
(6) Тоже самое, УИД изменился.
Guid = СоединениеCOM.NEWObject("УникальныйИдентификатор",Строка(Док.УникальныйИдентификатор()));//УИД документа из базы А "6c4bf88f-f968-11e4-b33d-005056b53fa3" Требование = СоединениеCOM.Документы.ТребованиеНакладная.СоздатьДокумент()//Создаем документ в базе Б Требование.GetNewObjectRef(СоединениеCOM.Документы.ТребованиеНакладная.ПолучитьСсылку(Guid));//Устанавливаем УИД для документа в базе Б "6c4bf88f-f968-11e4-b33d-005056b53fa3" Требование.Записать(); //УИД изменился на "b5a788c9-44e9-11e5-b5c7-005056b53fa3" (7)Требование - это com-объект созданный в базе Б Ссылка1=Док.Ссылка; //Ссылка на документ в базе А, его УИД надо присвоить новому документу в базе Б //Ссылка1=СоединениеCOM.NewObject("УникальныйИдентификатор","6c4bf88f-f968-11e4-b33d-005056b53fa3"); Требование = СоединениеCOM.Документы.ТребованиеНакладная.СоздатьДокумент(); // надо установить УИД "6c4bf88f-f968-11e4-b33d-005056b53fa3" //Требование.GetNewObjectRef(Ссылка1); Требование.УстановитьСсылкуНового(Ссылка1); //ошибка несоответсвует параметр 1. |
|||
9
smpulan
18.08.15
✎
10:45
|
В общем разобрался, тему можно закрывать. Может кому пригодиться:
//Получаем тип в базе приемнике Сом_Тип = СоединениеCOM.NewObject("ОписаниеТипов", "ДокументСсылка.ТребованиеНакладная").Типы().Получить(0); //Создаем новый документ в базе приемнике Требование = СоединениеCOM.Документы.ТребованиеНакладная.СоздатьДокумент(); //Формируем ссылку источника в базе приемнике СсылкаИсточник = СоединениеCOM.XMLЗначение(Сом_Тип, XMLСтрока(Док.Ссылка)); //Устанавливаем УИД источника для нового документа в базе приемнике Требование.УстановитьСсылкуНового(СсылкаИсточник); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |