Имя: Пароль:
1C
1С v8
Автоматическая синхронизация 1С v8.2 и Oracle
0 re-dim
 
23.09.11
08:41
Хочу сделать автоматическую синхронизацию биллинга, работающего на Oracle с 1С. Делаю всё через ADODB.Connection Когда запускаю в ручную, всё работает нормально, а из регламентного задания выдаёт ошибки, в основном как правило две, либо:
Поставщик не указан, и не назначен поставщик по умолчанию.
Либо:
Не удается найти указанного поставщика. Вероятно, он установлен неправильно.
Комп под управлением Win2003 server
Установлен instant client 11.2
Прописал переменные среды: PATH=C:\WINDOWS\oracle и NLS_LANG=american_america.CL8MSWIN1251
пытался установить соединение с помощью следующих строк соединения:

СоединениеТекущее.Соединение.ConnectionString  = "Provider=MSDASQL.1;Persist Security Info=True;User ID=XXX;Extended Properties=""DSN=RS;UID=XXX;PWD=YYY;DBQ=xxx.xxx.xxx.xxx:1521/dbName;DBA=W;APA=T;EXC=F;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;BTD=F;BNF=F;BAM=IfAllSuccessful;NUM=US;DPM=F;MTS=T;MDI=F;CSR=F;FWC=F;FBS=64000;TLO=O;MLD=0;ODA=F;""";    
СоединениеТекущее.Соединение.ConnectionString  = "Provider=MSDASQL;Persist Security Info=True;User ID=XXX;Extended Properties=""DSN=RS;UID=XXX;PWD=YYY;DBQ=xxx.xxx.xxx.xxx:1521/dbName;DBA=W;APA=T;EXC=F;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;BTD=F;BNF=F;BAM=IfAllSuccessful;NUM=US;DPM=F;MTS=T;MDI=F;CSR=F;FWC=F;FBS=64000;TLO=O;MLD=0;ODA=F;""";
СоединениеТекущее.Соединение.ConnectionString  = "Driver={Microsoft ODBC for Oracle};Server=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xxx.xxx.xxx.xxx)(PORT=1521))(CONNECT_DATA=(SID=dbName)));Uid=XXX;Pwd=YYY;";
СоединениеТекущее.Соединение.ConnectionString  = "Driver={Oracle in instantclient_11_2};Persist Security Info=True;User ID=XXX;Extended Properties=""DSN=RS;UID=XXX;PWD=YYY;DBQ=xxx.xxx.xxx.xxx:1521/dbName;DBA=W;APA=T;EXC=F;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;BTD=F;BNF=F;BAM=IfAllSuccessful;NUM=US;DPM=F;MTS=T;MDI=F;CSR=F;FWC=F;FBS=64000;TLO=O;MLD=0;ODA=F;""";    
СоединениеТекущее.Соединение.ConnectionString  = "Provider=MSDAORA.1;User ID=XXX;Data Source=xxx.xxx.xxx.xxx:1521/dbName;Persist Security Info=False";
СоединениеТекущее.Соединение.ConnectionString  = "Provider=MSDAORA;User ID=XXX;Data Source=xxx.xxx.xxx.xxx:1521/dbName;Persist Security Info=False";
СоединениеТекущее.Соединение.ConnectionString  = "Provider=sqloledb;Server=xxx.xxx.xxx.xxx:1521;Database=dbName;UID=XXX;PWD=YYY;";

Любая из них работает, если запускать вучную, а из под регламентного задания сыпятся ошибки, причём там где явно указано слово "Provider" вылетает ошибка "Не удается найти указанного поставщика..." а там он не указан, но написано слово "Driver" вылетает ошибка "Поставщик не указан, и...".

Никак не могу понять в чём проблема! Помогите кто может сталкивался или работал с этим хоть раз.
1 упс
 
23.09.11
10:24
Я бы проверил права пользователя от которого запущена служба агента 1С предприятия и пользователя от которого синхронизация запускается вручную.
Вы переменные среды прописали ведь для своего пользователя? Попробуйте сделать тоже самое для "пользователя службы".
2 re-dim
 
23.09.11
10:59
упс, если можно по подробнее, что за служба? Что за процессы? Хотя бы примерное их название?
А переменные среды у меня прописаны системные, то есть для всех пользователей, так как не только я запускаю обработки которым нужен доступ к Ораклу.
3 detec
 
23.09.11
11:03
(0) 64-битный сервер 1С:Предприятие?
4 упс
 
23.09.11
11:05
На сервере 1С посмотрите от какого пользователя запущены процессы rphost и rmngr - от этого пользователя будет запускаться синхронизация из регламентного задания.
Хотя я могу ошибаться, и дело не в этом. Если так - просто считайте апом :)
5 detec
 
23.09.11
11:06
У нас такая строка работала на сервере Provider=OraOLEDB.Oracle.1;Password=""xx"";User ID=""xxx"";Data Source=orasource
6 detec
 
23.09.11
11:07
instant client вроде фуфло, лучше ставить полную версию клиента.
7 re-dim
 
23.09.11
11:10
detec, да 64-битный сервер
instant client стоит и 32-х битный и 64-х битный.
А если instant client вроде фуфло, то что посоветуете? :)
8 re-dim
 
23.09.11
11:13
rphost и rmngr запущен от пользователя "prog" скорее всего это тот старый программер, который работал до меня. Сис. админ говорит, что у этого пользователя нет никаких прав в домене. Может в этом дело?!
9 re-dim
 
23.09.11
11:16
Хотя вот я сколько читал про похожие проблемы, только с sql server, предоставление пользователю, от которого запускаются задания, полных прав, всё ровно ничего не даёт. :(
10 Aloex
 
23.09.11
11:17
Запусти службу под своим пользователем.
11 re-dim
 
23.09.11
11:21
Какую из? Как это сделать? И не уронит ли это 1С-ку? А то в ней сейчас пользователей 60 сидит.
12 detec
 
23.09.11
11:29
Можно пойти по более простому пути. Запустить из-под пользователя prog консоль MMC с источниками данных MMC и посмотреть, какие реально драйвера доступны в режиме x64, также как и источники данных. На 64-битной системе эта консоль по умолчанию запускается в 64-битном режиме.
13 detec
 
23.09.11
11:29
с источниками данных ODBC.
14 detec
 
23.09.11
11:32
"А если instant client вроде фуфло, то что посоветуете"

Oracle Database 11g Release 2 Client (11.2.0.1.0) for Microsoft Windows (x64)
http://www.oracle.com/technetwork/database/enterprise-edition/downloads/
15 detec
 
23.09.11
11:33
16 re-dim
 
23.09.11
11:41
detec, благодарю за ссылку, скачиваться будет примерно 6 часов с интернетом, что у меня здесь на работе, а пока, в двух словах, что это такое и какие преимущества оно мне даст?
17 detec
 
23.09.11
12:02
(16) С этим клиентом нормально работает строка в (5) и этот драйвер должен нормально видится в источниках данных ODBC в режиме x64.
18 re-dim
 
23.09.11
12:14
Хорошо, спасибо. Установлю и проверю. О результатах отпишусь.
19 re-dim
 
23.09.11
13:02
(12) Под этим пользователем всё тоже самое что и когда под собой захожу.
20 re-dim
 
23.09.11
13:05
А вот detec говорит, что если установить то, что он мне ссылку кинул (15), то будет работать строка из (5) Может тогда я просто не ту строку указываю? Может нужна какая-то особая для instant client !?
21 vmv
 
23.09.11
13:05
client 11 нестабилен на 2008-х 64-х серверах стопудов, да и на 200з-х лучше использовать 10-й
22 vmv
 
23.09.11
13:09
проще всего проверить клиента на 8.2., подключив в конфигураторе реальный внешний источник и обозреть его данные в сеансе управляемого приложения.

11-й вроде работал, но обнаружилось, что числовые поля "режет" и врет
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший