Имя: Пароль:
IT
 
Из javascript получить COM-объект 1с
,
0 Dmitriy_
Kolesnikov
 
25.01.13
13:14
Код должен вызывать одну единственную функцию из глобального модуля:


var DataN = '20121101';
var DataK = '20121201';
var ID = 89;
//СтрокаПодключения =  "srvr='" + Сервер + "'; ref='" + БазаДанных + "'; usr='" + Пользователь + "'; pwd='" + Пароль + "';";
usr = 'script';
pwd = '123123123';
srvr = 'tserv';
database = 'kvantdb';
ConnString = "srvr='" + srvr + "'; ref='" + database + "'; usr='" + usr + "'; pwd='" + pwd + "';";
var v8=new ActiveXObject("V8.COMConnector");
conn = v8.Connect(ConnString);
ArchivePath = conn.Квант.ВыгрузитьПлатежныеДокументыЗаПериод(DataN, DataK, ID);
//if (ArchivePath <> false)
//{
   printf(ArchivePath);
//}
//else
//{
//    printf('Error occured');
//}



В строке 10 - ошибка, не может создать объект. Пробовал
var v8=new ActiveXObject("V8.COMConnector");
var v8=new ActiveXObject("V81.COMConnector");
(у меня 8.1) - всё равно не может создать объект. Где я ошибся?
1 rs_trade
 
25.01.13
13:21
(0) Из 1С создается? С ком-коннектором все в порядке?
2 dk
 
25.01.13
13:27
точно ActiveXObject?
3 rs_trade
 
25.01.13
13:29
(2) Да. Вот код из обработки обновления конфы

var ComConnector = new ActiveXObject(comConnectorName);
ComConnection = ComConnector.Connect(connectionString);
4 vicof
 
25.01.13
13:37
printf(ConnString) что пишет?
5 Dmitriy_
Kolesnikov
 
25.01.13
13:53
Да погодите, до Connect дело не доходит.
Ошибка в строке new ActiveXObject
А ошибка такая: "невозможно создание объекта сервером программирования объектов"
Проверяю в реестре: ProgID V81.COMConnector существует.
6 eklmn
 
гуру
25.01.13
14:01
(5) ты не в реестре проверяй, а запущен ли он :)
7 Dmitriy_
Kolesnikov
 
25.01.13
14:03
На другом компе 10-я строка отрабатывает успешно. И 11-я тоже. Запинается на 12-й, на вызове ф-и:
Ошибка такая:
Общий модуль: Квант (153,12): переменная не определена (БиблиотекаКартинок). Буду разбираться. Предполагаю, предшественники чего-то понаписали без расчета на то, что 1с будет запускаться не как обычное приложение, а как COM-объект.
8 eklmn
 
гуру
25.01.13
14:05
(7) это у тебя уже ошибка процедуры, изначально у тебя другая ошибка  :) определись ))
9 Dmitriy_
Kolesnikov
 
25.01.13
14:33
Да всё заработало на другом компе, но выдает ересь. Скажите, я даты правильно передаю из Яваскрипта в 1С?
10 Torquader
 
26.01.13
02:27
С JavaScript нужно аккуратнее, так как у него есть особенность - блокировать ActiveX объекты до вызова сборки мусора, что может приводить к блокировке данных, когда объект по мнению программы уже освобождён, а JavaScript его ещё не освободил.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой