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