Имя: Пароль:
1C
1С v8
Избежать нежелат. передачи данных между клиентом и сервером ...
0 Ион
 
29.10.14
13:50
Ситуация следующая.  Делаю обработку с управляемой формой для импорта данных из Excel и создания нескольких документов в БП.
СOM-объект Excel  хранится у меня в структуре

СтруктПараметры.Док=ПолучитьCOMОбъект(СтруктПараметры.ПолноеИмяФайла);

инициализирую я его в одной клиентской процедуре (в событии НачалоВыбора элемента) , а использовать нужно далее в другой - сама загрузка собственно, соответственно создал реквизит формы "СтруктПараметры" произвольного типа (для видимости СтруктПараметры в разных клиентских процедурах). На клиенте весь код нормально отрабатывает до момента исполнения процедуры создания документов, которая , понятно, исполняется на сервере (контекстная).
Выдает :
========================================================
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
....
Ошибка отображения типов:
Отсутствует отображение для типа 'COMОбъект'
=======================================================
Т.е. платформа пытается передать на сервер контекст , и соотв. не может передать этот реквизит формы произвольного типа "СтруктПараметры" , где хранится COMОбъект (я его , собственно передавать туда на сервер и не хотел).
Вопрос : Где в этой ситуации правильно хранить данную структуру "СтруктПараметры"(она мне нужна только на клиенте), чтобы она была доступна в различных клиентских процедурах , но на сервер не передавалась ? Спасибо.
1 18_plus
 
29.10.14
14:10
можно вызывать &насерверебезконтекста

только зачем где-то хранить COM-объект? прочитал эксельку-выбросил.
2 DmitrO
 
29.10.14
14:14
хранить в переменной модуля формы с директивой компиляции НаКлиенте. В начале модуля:

&НаКлиенте
Перем СтруктПараметры;
3 Ион
 
29.10.14
14:17
(1) Сначала при выборе файла нужно проанализировать файл, взять из него некоторую инф. , которая нужна для пользователя для проставления опций загрузки
(2)Вот это сейчас попробую
4 18_plus
 
29.10.14
14:20
(3) а зачем при этом держать открытым файл?
а если пользователь передумал и закрыл обработку? нужно закрывать эксель, иначе в процессах висеть останется.
5 18_plus
 
29.10.14
14:22
и плюс захваченный файл
6 Ион
 
29.10.14
14:29
(2) Спасибо большое - именно так получилось!  Я пробовал переменную модуля формы создать , да не догадался директиву компиляции к ней добавить , соотв. кучу ошибок показывал.

(4,5) Спасибо - может быть Вы и правы , но тут уже был просто интерес - "КАК сделать вот это , каким образом сохранить доступность к структуре в клиентских процедурах , без передачи на сервер". Спасибо еще раз за помощь