Имя: Пароль:
1C
1С v8
УФ как передать COM-объект между формами?
0 Mashinist
 
05.11.14
18:19
Внешняя обработка
Думал как обычный параметр

    ПараметрыОбработки = Новый Структура;
    ПараметрыОбработки.Вставить("Объект",СОМБаза);
    ОткрытьФорму("ВнешняяОбработка.ADT_ЗагрузкаНачальныхДанных.Форма.Остатки",ПараметрыОбработки);



{Форма.Форма.Форма(57)}: Ошибка при вызове метода контекста (ОткрытьФорму)
    ОткрытьФорму("ВнешняяОбработка.ADT.Форма.Остатки",ПараметрыОбработки);
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства 'val':
    форма: Элемент
    имя: {http://v8.1c.ru/8.2/mngsrv/ws}val
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа 'COMОбъект'
1 Mashinist
 
05.11.14
18:28
Даже
    АдресCOMОбъекта=ПоместитьВоВременноеХранилище(СОМБаза,Новый УникальныйИдентификатор());


Не работает...
Что делать-то?
2 ДенисЧ
 
05.11.14
18:30
Общий модуль с кешированием значений, и в нём функция, которая возвращает объект
3 Mashinist
 
05.11.14
18:36
(2) Общий модуль не годиться. Конфа на поддержке.
Все во внешней обработке...
4 ДенисЧ
 
05.11.14
18:40
(3) Добавить новый модуль можно, ничему не помешает
5 Гёдза
 
05.11.14
18:42
а общий модуль с кэшированием на клиенте работает?
6 ДенисЧ
 
05.11.14
18:46
(5) А чому бы нет?
7 DmitrO
 
05.11.14
19:01
Что же все такие одинэсники-то..
В форме куда надо передать надо сделать экспортную переменную модуля с директивой компиляции НаКликнте, открыть эту форму функцией ОткрытьФорму как обычно, она вернет форму, и установить экземпляр ком-объекта в эту переменную. Передача ком-объекта произойдет в рамках клиента, без сервера. На сервер передать ком-объект не возможно в принципе.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший