Нюансы СОМ соединения Тащим данные из УТ 10.3 в БП 3.0. Перенос запускается из торговли и пишет в БП. Создаются документы без проблем, а вот получить объект для изменения не дает. Я знаю что объекты не ходят ЧЕРЕЗ СОМ но внутри то должен быть доступ? |
То есть почему не срабатывает такой код: V8 = Новый COMObject("V83.Application"); БазаП = V8.Connect("File="""+Путь+""";"+"Usr=""" + СокрЛП(ИмяПользователя) + """;Pwd=""" + СокрЛП(Пароль) + """;"); Пров = V8.Документы.РеализацияТоваровУслуг; Если Пров.НайтиПоНомеру(НОмерДок,ДатаДок)=Пров.ПустаяСсылка() ТОгда [b]Док = Пров.ПолучитьОбъект();[/b] КонецЕсли; |
Приподниму |
"[em]Я знаю что объекты не ходят ЧЕРЕЗ СОМ[/em]" [em]Док = Пров.ПолучитьОбъект()[/em]; - А это что? Пиши модуль внутри БП, который и будет работать с объектами БП, не вынося их наружу. Задание модулю через реквизиты простых типов: строка, число, дата. Вообще-то, для задач вида "Тащим данные" предусмотрен файловый обмен. И не стоит выпендриваться. |
2(3) Через COM можно работать и с объектами, главное. оставаться в объекте вызванной базы и команды отдавать через Вычислить() и т.п. Я так работал из внешних программ на c#. |
(0) ещё вариант из БП вызывать, и данные через ком получать |
4-bma1 > Одно дело [b]найти ссылку[/b] на документ, убедится, что док с нужными реквизитами ("номер") существует, другое дело - [b]получить объект[/b]. Ссылку - запросто: УникальныйИдентификатор(), храни (строкой) где хошь, передавай (строкой) как хошь. А разворачивай в родной среде. А то сдохнет. |
Ну собственно так я и думал. Просто казалось что ПРОВ внутри среды и работают все директивы. |
2(6) а я как раз с объектами и работал. Создавал их извне. Геморроя было много, но работало. |
8-bma1 > И это было в 8.3? [b]Толстый клиент[/b]? |
8-bma1 > может все же просто "командами извне", а объекты были все "внутри"? Такой метод хорош для элементарных объектов. А когда в реквизитах справочники, перечисления, и табличные части то трудозатраты бессмыслены |
Я сейчас полный бред напишу... А если так: Пров.Док = Пров.ПолучитьОбъект? Не? |
EvalExpr еще никто не отменял тоже. |
Текущее время: 23:22. Часовой пояс GMT +3. |