Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.01.2013, 00:13   #1
Фидер
Новичок
Джуниор
 
Регистрация: 07.01.2013
Сообщений: 1
По умолчанию Как подключиться к COM Automation серверу из самого процесса.

Добрый день.

Есть база 1С в SQL клиент-серверном варианте. Имею эккаунт на доступ в базу, но работать только через интерфейс. Открывать внешние обработки запрещено на уровне ролей, устанавливать внешнее COM-соединение или Automation-соединение запрещено тоже. В организации есть мощная бюрократия - решить вопрос с открытием мне такого доступа весьма трудно (это честно - так и есть), а надо - я бы для себя упростил много рутинной работы. Пока возлагаю надежды на способ полегче - запрограммировать лучше себе фичу, чем бороться с бюрократической машиной.
Суть состоит в следующем - я могу написать внешнюю компоненту для 1С. Если бы я мог ее загрузить, то при выполнении функции Init я бы получал в ее параметре COM-объект IDispatch, а через его свойство "AppDispatch" COM-объект IDispatch с которым уже можно работать как с Automation-соединением (хотя на уровне ролей доступ все также будет запрещен). Но и тут обложили - все внешние компоненты, которые могут загружаться содержатся внутри самой базы. Так что подсунуть свою компоненту вместо ожидаемой тоже не получится.
В итоге задача сводится к следующему - мне требуется каким-либо образом получить доступ к Automation-соединению 1С определенного процесса, который уже соединен с требуемой базой (по моим логину и паролю). Вариант предполагаю следующий (хотя с COM-технологией могут быть и другие подходящие к моей задаче варианты - буду признателен им) - я могу скопировать папку с выполнимыми файлами дллками и прочими в другое место и запускать 1С оттуда. Тогда могу почти безболезненно подменить одну из дллок (есть пара-тройка), которая при запуске 1С будет подгружаться в процесс (пробовал - работает, но есть еще способ длл в другой процесс - не помню как делается). При запуске 1С и подключении этой дллки будет вызываться DllMain, где я могу прописать то что мне надо.
А теперь вопрос - как мне в этот момент, зная, что я в нужном процессе и у него есть этот Automation-сервер получить к нему доступ? С внешней компонентой я проверил на тестовой базе - все работает! Но там в самой Init параметром передается COM-объект и этот вариант мне заблокирован. А как мне его (COM-Automation) найти из длл?

Заранее всем спасибо!
Фидер вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не получается подключиться к программе-серверу Yungo161 Работа с сетью в Delphi 6 27.08.2011 18:58
как правильно подключиться к SQL серверу? uraura БД в Delphi 4 19.10.2010 20:28
Сколько клиентов может одновремнно подключиться к серверу? vynt Работа с сетью в Delphi 15 13.07.2008 20:47
Помогите подключиться к серверу. КривойПрограммист Помощь студентам 1 27.10.2007 23:41
Как подключиться к серверу используя API функции? BR17UY Win Api 3 16.04.2007 02:12