|
Регламентное задание и COM соединение | ☑ | ||
---|---|---|---|---|
0
ixilimuse
06.02.14
✎
08:54
|
Всем доброго времени суток.
Существует задача. Ежедневно подключаться из маленькой базы, к большой базе через COM, и получать от туда данные. В общем есть модуль. У него доступны V Клиент V Сервер V Внешнее соединение V Клиент Так же пробовал комбинацию V Сервер V Вызов сервера V Привилегированный Дело в том что возникает проблема при получении соединения с удаленной базой. Но пикантность в том что ошибка возникает исключительно в том случае, если метод запущен РегламентнымЗаданием! Если я запускаю этот метод вручную, через обработку, коннект проходит, замечательно. Были мысли что проблема в правах и пользователе, ибо ошибка имеет вид: Ошибка при вызове метода контекста (Connect): Произошла исключительная ситуация (V82.COMConnector.1): Идентификация пользователя не выполнена Неправильное имя или пароль пользователя Но затем создал специального пользователя в той базе куда подключаюсь, у него есть все права. Опять же если вручную запустить метод, коннект проходит идеально. Обработка выполняется идеально. А из под регламентного задания не хочет подключаться и все тут. В какую сторону копать? Заранее спасибо)) |
|||
1
Рэйв
06.02.14
✎
08:56
|
сделай автозапуск обработки подключения под определнным пользователем при старте системы и вставь батник с запуском в шедулет
|
|||
2
Рэйв
06.02.14
✎
08:56
|
*шедулер
|
|||
3
olegves
06.02.14
✎
09:01
|
(0) у меня 3 года так работает - сбоев не замечено - ищи, где накосячил
|
|||
4
catena
06.02.14
✎
09:02
|
а в строке подключения видимо ни пользователя ни пароля?
|
|||
5
olegves
06.02.14
✎
09:04
|
(4) да, похоже пытается доменной политикой подключиться.
ЗЫ да, еще есть нюанс, желательно, чтобы оба сервака 1С были в одном домене |
|||
6
ixilimuse
06.02.14
✎
09:07
|
Получение коннекта происходит так:
Функция ПолучитьПодключение() Экспорт Попытка Сервер = "СуперСервер"; БазаДанных = "BigBase"; СтрокаПодключения = "srvr='" + СокрЛП(Сервер) + "'; ref='" + СокрЛП(БазаДанных) + "';" + "'; usr='СуперЮзер';" + "'; pwd='СуперПароль';"; App = Новый COMОбъект("V82.ComConnector"); БазаИсточник = App.Connect(СтрокаПодключения); Возврат БазаИсточник; Исключение ЗаписьЖурналаРегистрации("Ошибка при получении COM-соединения", УровеньЖурналаРегистрации.Ошибка, Метаданные.РегламентныеЗадания.СинхронизацияСУПП,,ОписаниеОшибки()); КонецПопытки; КонецФункции Затык именно в этом методе. Если я запускаю его вручную - все работает. Если его запускает регл.задание - падает в ошибку описанную выше. Через консоль заданий задаю пользователь. Даже уже идентификатор задания попробовал задать. Все ровно. Уже сегодня с утра в 4 головы пытались найти косяк. По коду все ровно. Причина пока остается не раскрытой. Где-то мы что-то упустили.. |
|||
7
ixilimuse
06.02.14
✎
09:08
|
Пользователь под которым я подключаюсь к внешней базе - имеет только 1С аутентификацию.
Сервера с базами в одном домене. Но на разных серверах. |
|||
8
zva
06.02.14
✎
09:38
|
У вас служба сервера 1С от имени какой учетки запускается?
Если по умолчанию, то user1cv82 не доменный пользователь, причем эта учетка у вас есть на обоих серверах (с большой вероятностью с разными паролями). Регламентное задание запускается от имени этой учетки. Как вариант для теста запустите службу сервера 1С там где стартует регламентное задание от имени админа домена для проверки |
|||
9
ixilimuse
06.02.14
✎
09:41
|
Всем спасибо. Проблема идентифицирована....
КопиПаст всему виной. Если приглядеться к формированию строки соединения, может ничего и не заметно. А вот если готовую строку вывести в журнал регистрации, то будет видно что там две лишние кавычки и точки с запятой О_о %) В общем как обычно на мелочи попался. Ссори за раздувание проблемы. А столько версий было блин))) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |