Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Нюансы СОМ соединения (http://forums.kuban.ru/f1040/nyuansy_som_soedineniya-7592950.html)

Pursh 14.03.2016 09:34

Нюансы СОМ соединения
 
Тащим данные из УТ 10.3 в БП 3.0. Перенос запускается из торговли и пишет в БП. Создаются документы без проблем, а вот получить объект для изменения не дает. Я знаю что объекты не ходят ЧЕРЕЗ СОМ но внутри то должен быть доступ?

Pursh 14.03.2016 09:36

То есть почему не срабатывает такой код:

V8 = Новый COMObject("V83.Application");
БазаП = V8.Connect("File="""+Путь+""";"+"Usr=""" + СокрЛП(ИмяПользователя)
+ """;Pwd=""" + СокрЛП(Пароль) + """;");

Пров = V8.Документы.РеализацияТоваровУслуг;
Если Пров.НайтиПоНомеру(НОмерДок,ДатаДок)=Пров.ПустаяСсылка() ТОгда
[b]Док = Пров.ПолучитьОбъект();[/b]
КонецЕсли;

Pursh 14.03.2016 10:06

Приподниму

VZ 14.03.2016 11:01

"[em]Я знаю что объекты не ходят ЧЕРЕЗ СОМ[/em]"
[em]Док = Пров.ПолучитьОбъект()[/em]; - А это что?

Пиши модуль внутри БП, который и будет работать с объектами БП, не вынося их наружу. Задание модулю через реквизиты простых типов: строка, число, дата.

Вообще-то, для задач вида "Тащим данные" предусмотрен файловый обмен. И не стоит выпендриваться.

bma1 14.03.2016 11:21

2(3) Через COM можно работать и с объектами, главное. оставаться в объекте вызванной базы и команды отдавать через Вычислить() и т.п. Я так работал из внешних программ на c#.

angro 14.03.2016 11:22

(0) ещё вариант из БП вызывать, и данные через ком получать

VZ 14.03.2016 14:15

4-bma1 > Одно дело [b]найти ссылку[/b] на документ, убедится, что док с нужными реквизитами ("номер") существует, другое дело - [b]получить объект[/b]. Ссылку - запросто: УникальныйИдентификатор(), храни (строкой) где хошь, передавай (строкой) как хошь.
А разворачивай в родной среде. А то сдохнет.

Pursh 14.03.2016 14:42

Ну собственно так я и думал. Просто казалось что ПРОВ внутри среды и работают все директивы.

bma1 14.03.2016 15:03

2(6) а я как раз с объектами и работал. Создавал их извне. Геморроя было много, но работало.

VZ 14.03.2016 16:18

8-bma1 > И это было в 8.3? [b]Толстый клиент[/b]?

endfilm 15.03.2016 10:08

8-bma1 > может все же просто "командами извне", а объекты были все "внутри"?
Такой метод хорош для элементарных объектов.
А когда в реквизитах справочники, перечисления, и табличные части то трудозатраты бессмыслены

DeiMos 15.03.2016 21:22

Я сейчас полный бред напишу...

А если так:

Пров.Док = Пров.ПолучитьОбъект?

Не?

DeiMos 15.03.2016 21:23

EvalExpr еще никто не отменял тоже.


Текущее время: 23:22. Часовой пояс GMT +3.