|
Прочитать Записи ПланаОбмена через ОЛЕ в УТ 11.1 |
☑ |
0
StormProff
11.02.14
✎
09:54
|
Здравствуйте, Уважаемые!
Мне нужно из БП 2 подключиться к УТ 11.1 и прочитать мой ПланОбмена.
Я начала с того что научилась читать непосредственно в УТ, а затем уже подключилась через ОЛЕ и натолкнулась на проблему.
...
База8 = Новый COMОбъект("V82.Application");
ПодключенаБаза = База8.Connect("File=""" + Путь + """;Usr=""" + Пользов + """;Pwd ="""+СокрЛП(Пароль)+"""");
ЗапXML = новый ЗаписьXML();
ЗапXML.УстановитьСтроку();
Узел = База8.ПланыОбмена.лд_ОбменБухгалтерия.НайтиПоКоду("21");
сообщить(Узел.Наименование);
ЗапСообщения = База8.ПланыОбмена.СоздатьЗаписьСообщения();
ЗапСообщения.НачатьЗапись(ЗапXML,Узел);
...
База подключается, название узла выводится, но на последней строчке
выскакивает ошибка:
Ошибка при вызове метода контекста (НачатьЗапись)
ЗапСообщения.НачатьЗапись(ЗапXML,Узел);
по причине:
Произошла исключительная ситуация (1C:Enterprise 8.2.19.83): Несоответствие типов (параметр номер '1')
Я понимаю что косяк, скорее всего, в ЗапXML, но это объект, с помощью которого осуществляется запись сообщения. Но не знаю как правильно тут сделать. Помогите, пожалуйста!
|
|
1
Wobland
11.02.14
✎
10:04
|
=NewObject("ЗаписьXML")
|
|
2
Wobland
11.02.14
✎
10:05
|
(1) База.НьюОбжест
|
|
3
StormProff
11.02.14
✎
10:13
|
(2) Спасибо! помогло. А что написать чтобы получить реальный UID вместо "COMОбъект"?
Выборка = База8.ПланыОбмена.ВыбратьИзменения(Узел,ЗапСообщения.НомерСообщения);
Пока Выборка.Следующий() Цикл
Данные = Выборка.Получить();
Сообщить(Данные.Ссылка.УникальныйИдентификатор()) КонецЦикла;
|
|
4
Wobland
11.02.14
✎
10:14
|
(3) а что ты с ним делать собралась?
|
|
5
Wobland
11.02.14
✎
10:15
|
как вариант: Результат=База8.СделайМнеКрасиво()
|
|
6
Wobland
11.02.14
✎
10:16
|
я ничего лучше не придумал
Запрос=Там.NewObject("Запрос");
Результат=Запрос.Выполнить().Выгрузить();
Для Каждого ТекСтрока Из Результат Цикл
ТекСтрока.УИДОрганизации=Там.ЗначениеВСтрокуВнутр(ТекСтрока.Организация);
ТекСтрока.УИДСклада=Там.ЗначениеВСтрокуВнутр(ТекСтрока.Склад);
ТекСтрока.УИДНоменклатуры=Там.ЗначениеВСтрокуВнутр(ТекСтрока.Номенклатура);
КонецЦикла;
Результат.Колонки.Удалить("Организация");
Результат.Колонки.Удалить("Склад");
Результат.Колонки.Удалить("Номенклатура");
|
|
7
StormProff
11.02.14
✎
10:25
|
(4) у меня большие планы) Найду Тут док по UID и заменю его на док из Там. А если не найду Тут, то создам с таким UID.
Создавать глобальную в конфе Там и её пользоваться чтобы получать строку Тут? Ого такой фигнёй в 7.7
я не занималась) Там через точку все доставалось)
|
|
8
Wobland
11.02.14
✎
10:27
|
что-то смахивает на собственный эксклюзивный велосипед
|
|
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой