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