через СОМ, передать ГУИД для нового документа #810156


#0 by lirt82
Необходимо подключиться к базе через СОМ, и проверить существует ли документ Перемещения по гуиду, если не находит в подключенной базе тогда в ней же создает и присваивает гуид из базы источника и затем тянет данные в него. Проблема в присваивании гуида из базы источника для нового созданного документа.     ЗапросCom = ПодключеннаяБаза.NewObject("Запрос"); ******* Метод объекта не обнаружен (ПолучитьСсылку)
#1 by catena
Ссылка = НовыйДок.ПолучитьСсылку(ПодключеннаяБаза.NewObject("УникальныйИдентификатор",СокрЛП(ГуидДокЭкспорт)));
#2 by Antony8x
+1
#3 by lirt82
Метод объекта не обнаружен (ПолучитьСсылку)             Ссылка = НовыйДок.ПолучитьСсылку(ПодключеннаяБаза.NewObject("УникальныйИдентификатор", СокрЛП(ГуидДокЭкспорт)));
#4 by lirt82
Если эту строку убрать Для каждого Стр Из Список Цикл то выдает следующее  Ошибка при вызове метода контекста (УстановитьСсылкуНового) по причине: Несоответствие типов (параметр номер '1')
#5 by lirt82
...в синтаксисе у метода ПолучитьСсылку Доступность:
#6 by catena
у меня работает:
#7 by catena
Конечно будет ошибка, ты ему вместо гуила ком-объект даешь.
#9 by lirt82
а может из за платформы? подключаюсь через 8.2.19.83
#10 by catena
#11 by lirt82
всмысле в этой версии этот метод неизвестен
#12 by Сти
потому что должно быть не а это метод не объекта, а менеджера
#13 by lirt82
при таком коде выдает следующее Для каждого Стр Из Список Цикл по причине: Произошла исключительная ситуация (1C:Enterprise 8.2.19.83): Ошибка при попытке вставки записи с неуникальным значением ссылки. таблица Document118.
#14 by Сти
Погоди, так ГуидДокЭкспорт это ГУИД уже имеющегося документа в подключенной базе, как я понимаю (из кода мне неясно, что там в СписокЭкспорт) потому и ругается. Для нового объекта нужно новую уникальную ссылку типа ПодключеннаяБаза.NewObject("УникальныйИдентификатор") без второго параметра
#15 by Efir12
не проще ли получить ссылку, потом получить объект, если его нет будет новый создан
#16 by lirt82
есть обработка выполняется в базе Источник, создает доки проводит их, следующий этап эти доки должны мигрировать в базу приемник, через сом создается подключение, далее запросом получаю существующие доки и проверяю их по гуиду из базы источника если гуид не совпал тогда в базе приемнике создаю новый док и присваиваю ему гиуд из источника, заполняю, записываю и провожу. Проблема только в присваивании гиуда из источника для созданного дока в базе приемнике.
#17 by Сти
Ага, ясно. Такгуид из источника может просто не подойти к приемнику. Это же разные базы, в них одинаковые гуиды могут быть присвоены не соответствующим друг другу объектам. Это и есть тот случай - гуид из источника уже присвоен в приемнике какому-то другому объекту. Коллизий с гуидами нет в базах, связанных планами обмена, где есть главный и подчиненные узлы, и подчиненные выгружены из главной, у них одна конфа, но это же не тот случай? Вот там уникальность поддерживается для каждой базы. А так, у меня, например, отдельный регистр для ведения соответствия гуидов внешних баз объектам "центральной". И в типовых тоже бывает что-то вроде РС СоответствиеОбъектовДляОбмена - для случаев обмена между разными конфигурациями.
#18 by George Wheels
Вместо функции Строка используй XMLСтрока
#19 by lirt82
всем спасибо, буду делать в два этапа) двумя разными обработками)).
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С