Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Возможности сервера 1С 8 как COM сервера (число прочтений - 1422 )
max12345
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 1
Зарегистрирован: 23. Декабря 2014
Пол: Мужской
Возможности сервера 1С 8 как COM сервера
23. Декабря 2014 :: 13:31
Печать  
Здравствуйте,
возникла следующая проблема:
Имеется внешняя компонента , написаная на С++, задача которой получение информации из внешней базы данных и возврат результата запроса в виде Таблицы значений в 1С.
Для формирования таблицы значений на текуший момент используется интерфейс IDispatch* pBackConnection, получаемый в качестве параметра в функции Init(). Далее я просто, используя функции 1С формирую таблицу значений, заполняю ее и возвращаю ее во второй параметр в CallAsFunc(...).
Проблемы начались с переходом на тонких клиентов 1С. На стороне сервера внешняя компонента толком не запускается. Можно запустить на стороне клиента, но это все выглядит как костыли и выпадает из общей логики "клиент-сервер" в 1С. Например клиент не понимает, что такое таблица значений, проблемы с "глобальными" переменными, сеансами и т.п.
NativeAPI еще более урезан в этом плане.
Танцы с бубном привели к тому, что я смог запустить внешнюю компоненту под сервером 1С, НО работа происходит до того момента, пока не производится попытка вызвать Invoke у pBackConnection. 64-битная версия сервера 8.2 что-то пытается делать, пока не отваливается по таймауту, 32-битная (ВК естественно тоже 32 битная) просто сразу отваливается.
Предполагаю, что сервер 1С не обслуживает этот режим работы.
Соответственно возникают вопросы, это временно или логика 1С сводится к отмене этой схемы работы? Если создать снутренние структуры 1С (таблицу значений) таким способом нельзя, есть ли в принципе описание, что из себя предсталяет таблица значений на системном уровне, чтобы попытаться создать ее на С++ , заполнить, а затем просто подсунуть 1С в качестве возвратного параметра? Хотелось бы хотя бы получить направление, в какую сторону копать.
Спасибо.
  
Наверх
 
IP записан
 
quick
Junior Member
**
Отсутствует


LinuxMint, python, CodeTyphon

Сообщений: 83
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 21. Февраля 2008
Пол: Мужской
Re: Возможности сервера 1С 8 как COM сервера
Ответ #1 - 29. Сентября 2015 :: 15:58
Печать  
Как вариант могу предложить переделать из внешней компоненты на обычную консольную программу, которая вместо таблицы будет делать файл к примеру во внутреннем формате 1С. (https://gist.github.com/WorldException/de7199f8dc9659656336)
Я одно время намучавшись с компонентой особенно под linux 64 так сделал и забыл про глюки. Бывает что ошибки в компоненте приводят к краху серверного процесса 1С, а когда код во внешней программе то от этого защищен.
Единственно что пришлось написать это простую компоненту для вызова внешнего приложения без отображения popen...
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать