Имя: Пароль:
1C
1С v8
Создание подключения к другой базе через Com
0 DoctorRoza
 
15.10.12
19:25
Коллеги, подскажите пожалуйста. Необходимо создать подключение к базе 1С.Трактир из типовой БП через com при создании нового элемента справочника Контрагенты. Чтобы минимизировать изменения использую подписку на событие, а именно: ОбработкаПроверкиЗаполнения. Модуль, в котором прописана функция подключения Клиент (Упр и обычн. прилож), Внешнее соединение - V. База - файловая.
При создании элемента comОбъект не создается, тип - неопределено. Сообщений никаких, неопределно и все. Изменял флаги общего модуля, добавлял серверыный и вызов сервера, выскакивала ошибка передачи мутабельного значения. Подскажите, как обойти проблему и создать соединение.
Использую
V8 = Новый COMОбъект("V82.ComConnector");
и т.д.
1 mxs089
 
16.10.12
02:51
регистрировал компоненту? regsvr32 "1с\bin\comcntr.dll"?
2 Boleev v2
 
16.10.12
02:57
попробуй тогда
БазаOle = Новый COMобъект("V82.Application");
3 DoctorRoza
 
16.10.12
10:04
Да, компонента зарегистрирована. Если создаю подключение где-нибудь в др. месте, не в подписке на событие, соединение создается. Через Оле делать не хочется, всякие диалоговые окна будут лишними и буху не понравятся.
4 Alex375
 
16.10.12
10:33
У меня вот так работает:
   Если ФайловаяБаза Тогда
       СтрокаПодключения = "File=""" + ПутьБазы + """; Usr =""" + Пользователь + """;" +
           ?(ПустаяСтрока(Пароль), "", "Pwd=""" + Пароль + """;");
   Иначе
       СтрокаПодключения = "Srvr=""" + СерверБазы + """; Ref=""" + ИмяБазы + """; Usr =""" + Пользователь + """;" +
           ?(ПустаяСтрока(Пароль), "", "Pwd=""" + Пароль + """;");
   КонецЕсли;
   //Создаем подключение
   V8COM = Новый COMObject("V82.COMConnector");
   //Открываем соединение
   Попытка
       БазаOLE = V8COM.Connect(СтрокаПодключения);
       //Проверим на всякий случай тип объекта соединения
       Если ТипЗнч(БазаOLE) = Тип("COMОбъект") Тогда
           ВывестиСообщение("Подключение к базе 1С Центральная прошло успешно.", СтатусСообщения.Информация);
       Иначе
           БазаOLE = Неопределено;
           Возврат Истина;
       КонецЕсли;
   Исключение
       ВывестиСообщение(ОписаниеОшибки(), СтатусСообщения.ОченьВажное);
       БазаOLE = Неопределено;
       Возврат Истина;
   КонецПопытки;
5 DoctorRoza
 
16.10.12
10:49
Что то подобное у меня прописано, только это не работает в подписке на событие
6 Defender aka LINN
 
16.10.12
10:52
Жесть какая. Не жалко юзверей-то?
7 cw014
 
16.10.12
10:52
Модуль, в котором прописана функция подключения Клиент (Упр и обычн. прилож)
8 cw014
 
16.10.12
10:52
Из клиентского модуля вызывай сервер, а на нем создавай внешнее соединение
9 DoctorRoza
 
16.10.12
11:03
Бухгалтерия 2.0 .. толстый клиент ..
10 DoctorRoza
 
16.10.12
11:03
тут все на клиенте