Выполнение процедуры инициализации DOTNetComОбъекта в модуле сеанса при выполнении запроса вебсервиса.

1. Petrosyanc 7 02.08.21 17:33 Сейчас в теме
Не типовая 1С: Винфлекс на базе 1С УТ. Обычные формы.
Релиз 8.3.18.1208.

Вопрос в следующем:
Когда 1С запускается в режиме толстого клиента все отлично работает, инициализируется, создается.
Т.к. при выполнении вебсервиса модуль обычного приложения не выполняется, пришлось процедуру инициализации дотнета перенести в модуль сеанса.
Процедура ПодключитьВнешнююКомпоненту("Elisy.NetBridge4") отрабатывает без ошибок. Но при выполнении строки ВКНет = Новый("AddIn.ElisyNetBridge4") выдает ошибку и не инициализируется.

Пробовал вытащить инициализацию в общий модуль, такая же беда.

Может кто чего посоветовать?
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
9. spacecraft 02.08.21 23:02 Сейчас в теме
(1)
Т.к. при выполнении вебсервиса модуль обычного приложения не выполняется, пришлось процедуру инициализации дотнета перенести в модуль модуль сеанса.

для вебсервиса есть модуль внешнего соединения.
11. sivin-alexey 508 03.08.21 05:01 Сейчас в теме
(9) Модуль внешнего соединения не имеет отношения к веб-сервисам
2. o.nikolaev 213 02.08.21 18:20 Сейчас в теме
Текст ошибки-то какой? База серверная?
3. DJ_Codebase 02.08.21 21:24 Сейчас в теме
Вы хотите СОМ объект хранить между вызовами? Для веб-сервисов это невозможно. Параметр сеанса не имеет такого типа, а модуля похожего на модуль обычного приложения для ws не существует
4. Petrosyanc 7 02.08.21 22:31 Сейчас в теме
Нет, сом объект не надо хранить между вызовами, надо чтобы сом каждый раз создавался.

Ошибка:
Тип не определен (AddIn.ElisyNetBridge4)
ВКНет = Новый("AddIn.ElisyNetBridge4");
5. Petrosyanc 7 02.08.21 22:36 Сейчас в теме
Я пробовал и при вызове WS все равно та же ошибка. Вынес инициализацию во внешний модуль. Ошибка осталась.Куда дальше копать уже не знаю. А тут получается самая фишка в том, чтобы в моб. приложении рассчитывать стоимость изделия и создавать заявки на изделия без входа в саму программу. А без этого только текущие заявки на изделия видно, ну и еще эскизы изделий.
6. Petrosyanc 7 02.08.21 22:38 Сейчас в теме
Вот сама ошибка
Прикрепленные файлы:
7. Petrosyanc 7 02.08.21 22:39 Сейчас в теме
Если что рубль за помощь переведу.
8. Petrosyanc 7 02.08.21 22:49 Сейчас в теме
Пардон, ошибка тут
Прикрепленные файлы:
10. sivin-alexey 508 03.08.21 04:52 Сейчас в теме
1. Для метода ПодключитьВнешнююКомпоненту("AddIn....") вариант синтаксиса "по идентификатору" не работает на сервере (см. синтакс-помощник). Нужно использовать ПодключитьВнешнююКомпоненту("C:\....\xxxx.dll", "Elisy.NetBridge4", ТипВнешнейКомпоненты.COM).

Нужно контролировать успешность ПодключитьВнешнююКомпоненту() с помощью возвращаемого результата.
С чего вы взяли, что ПодключитьВнешнююКомпоненту("Elisy.NetBridge4") отрабатывает без ошибок? Ведь метод возвращает Ложь.

2. В каждом серверном вызове нужно перед Новый("AddIn....") нужно вызывать ПодключитьВнешнююКомпоненту(), т.к. процессов на сервере может быть много, и нет гарантии, что для этого процесса уже вызывался метод ПодключитьВнешнююКомпоненту().

3. При чём тут модуль сеанса? Код нужно располагать в модуле веб-сервиса
12. sivin-alexey 508 03.08.21 05:24 Сейчас в теме
4. Разрядность dll должна соответствовать разрядности сервера 1С.
13. Petrosyanc 7 03.08.21 09:34 Сейчас в теме
Спасибо. Кажется понял.
14. Petrosyanc 7 22.08.21 14:31 Сейчас в теме
Не получилось.
При указании пути ПодключитьВнешнююКомпоненту("C:\....\xxxx.dll", "Elisy.NetBridge4", ТипВнешнейКомпоненты.COM)
ошибка:
Не удалось инициализировать файлы построителя {WebСервис.ObmenWS.Модуль(76)}: Ошибка при вызове метода контекста (ПодключитьВнешнююКомпоненту): Недопустимое значение параметра (параметр номер '1') (Некорректное имя компоненты)
Хотя все правильно написано.
При ПодключитьВнешнююКомпоненту("C:\....\xxxx.dll", "Elisy.NetBridge4") возвращает Ложь.
При подключении через общий макет ПодключитьВнешнююКомпоненту("ОбщийМакет.КомпонентаElisyNetBridge") тоже возвращает ложь.
Куда копать дальше хз...
15. Petrosyanc 7 22.08.21 14:33 Сейчас в теме
Пытался через УстановитьВнешнююКомпоненту, ошибка уже в самом веб сервисе.
16. Petrosyanc 7 22.08.21 14:33 Сейчас в теме
В толстом клиенте свободно подключается.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот