|
Из 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 его ещё не освободил.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший