@stictt
просто рак

1С, как сделать глобальную переменную COM объекта?

Работаю с Сом обьектом 1С, проблема с пространством имен, этот обьект существует только в рамках функции в которой был создан. На реквизит прицепить не могу, ругается 1С , в глобальную переменную положить могу, но 1С работать с ней отказывается. Не понимаю в чем проблема, из за этого функционал сильно ограничен.
  • Вопрос задан
  • 851 просмотр
Решения вопроса 1
Fragster
@Fragster
помогло? отметь решением!
Если хочется переиспользовать COM между серверными вызовами, то можно попробовать общий модуль с повторным возвратом значений. Тогда если пользовательский сеанс не мигрировал на другой rphost и не прошло 20 минут между вызовами, то com соединение будет устанавливаться только один раз. На клиенте проще - можно в начале модуля формы написать
&НаКлиенте
Перем МояПеременная

и использовать её для com объекта. А вообще сама технология устарела, я бы искал альтернативы.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@pomoshnik
У нас используются Параметры сеанса, в нем храним адрес к временному хранилищу
При создании COM соединения сохраняем его во временном хранилище а адрес в параметре сеанса
При необходимости по адресу получаем соединение из хранилища
Ответ написан
@Dem0lisher
Ругается когда глобальную <серверную> переменную пытаешься получить на клиенте?
Ответ написан
@Dementor
программист, архитектор, аналитик
1) Если работа с COM происходит в одном модуле (модуль формы, модуль объекта обработки и т.д.), то до процедур в секции переменных объявить новую переменную, а далее ее инициировать открывшимся соединением и использовать, пока связанный с модулем объект находится в памяти.

2) Если одно соединение нужно "гонять" (как вариант) между разными обработками, которые (дополнительно усложним) запускаются из фонового процесса, то передавать можно с помощью параметров методов.

*) Тут в комментариях написали про возможность размещать во временном хранилище. Возможно так можно - ни разу не пробовал. Но нужно учитывать, что у помещенных во временное хранилище значений без указания уникального идентификатора срок жизни лишь до первого серверного вызова, а потом значение удаляется, а если указывать уникальный идентификатор, то допустимо указание идентификатора лишь существующей формы и время жизни ограничено временем жизни формы (уже проще сделать экспортную переменную на форме).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы