|
Подключение OLE в регламентном задании | ☑ | ||
---|---|---|---|---|
0
le_
13.08.10
✎
10:12
|
Во время выполнения задания, при попытке подключиться через OLE ругается: Ошибка при вызове конструктора (COMОбъект): Интерфейс не поддерживается.
Подключаюсь так: База7 = Новый COMОбъект("V77.Application"); Открыта = в77.Initialize(в77.RMTrade, СтрокаСоединения); |
|||
1
le_
13.08.10
✎
10:12
|
Возможно ли это вообще - подключиться по OLE в регламентном задании?
|
|||
2
le_
13.08.10
✎
10:13
|
База7 = Новый COMОбъект("V77.Application");
Открыта = База7.Initialize(База7.RMTrade, СтрокаСоединения); |
|||
3
1C-Nick
13.08.10
✎
10:23
|
по идее возможно
Создает COM-объект (например, Word, Excel и т.д.). Методы и свойства СОМ-объектов в дальнейшем становятся доступными через данный объект. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение. |
|||
4
le_
13.08.10
✎
10:29
|
(3) Чего же оно тогда ругается?..
|
|||
5
пента
13.08.10
✎
10:30
|
у windows-пользователя регламентного задания есть права на создание COM-объектов ?
|
|||
6
le_
13.08.10
✎
10:32
|
(5) Да, есть это админ с полными правами.
|
|||
7
1C-Nick
13.08.10
✎
10:34
|
может там 7.7 не стоит? не из регламентного задания на сервере работает процедура?
|
|||
8
пента
13.08.10
✎
10:36
|
используется ? - NO_SPLASH_SHOW
|
|||
9
пента
13.08.10
✎
10:37
|
Открыта = База7.Initialize(База7.RMTrade, СтрокаСоединения, "NO_SPLASH_SHOW")
|
|||
10
le_
13.08.10
✎
10:39
|
7.7 установлена. Не из регл. задания работает.
Это я как раз внешнюю обработку, которая забирает данные из 7-ки пытаюсь в регламентные задания перенести. Добавил NO_SPLASH_SHOW - не помогло. В журнал регистрации записывается ошибка: Интерфейс не поддерживается. |
|||
11
1C-Nick
13.08.10
✎
10:42
|
а если так V77 = Новый COMObject("V77.COMConnector")
|
|||
12
73
13.08.10
✎
10:44
|
(6) Регламентное задание выполняется не под админом, а под учёткой типа USR1CV81/USR1CV82
|
|||
13
1C-Nick
13.08.10
✎
10:54
|
(12) я бы не был так категоричен. этому пользователю можно и админские права дать и своего указать под которым будет служба работать...
|
|||
14
le_
13.08.10
✎
10:54
|
(12)Да, сервер работает под пользователем USR1CV81. А где у него задаются права на создание COM-объектов?..
|
|||
15
1C-Nick
13.08.10
✎
11:00
|
(12) все таки прав)
(14) попробуй его внести в группу Distributed COM Users |
|||
16
le_
13.08.10
✎
11:04
|
(15) Добавил пользователя в группу "Пользователи DCOM" - не помогло.
Говорят, можно настроить доступ с помощью утилиты DCOMCNFG - но что-то не могу найти там V77.Application... |
|||
17
1C-Nick
13.08.10
✎
11:08
|
(16) найдешь где это права раздается отпишись плиз, самому интересно.
делать учетку админом не по феншую будет, но на крайний вариант сойдет |
|||
18
73
13.08.10
✎
11:14
|
Посмотри тут про 1с что-то есть?
Администрирование-Службы компонентов-Компьютеры-Мой компьютер-НастройкаDCOM. что-то типа V77.Application |
|||
19
le_
13.08.10
✎
11:18
|
Нашел!
Всё заработало :) Сделал так: Пуск - Выполнить - DCOMCNFG. Там разворачиваем "Службы компонентов" - "Компьютеры" - "Мой компьютер" - "Настройка DCOM". Внури есть V77.GeneralPropPage и V77.SalaryPropPage. Права задаются в свойствах на закладке "Безопасность". |
|||
20
le_
13.08.10
✎
11:22
|
После всего нужно перезапустить службу "Агент сервера 1С:Предприятия 8.1".
|
|||
21
odekolon
10.09.10
✎
09:27
|
Платформа 8.2, ОС - WinXP (но как выяснилось те же симптомы и на 8.1, ОС Win 2003)
У меня проблема другого толка, но м.б. кто-нибудь подскажет. Когда запускаю семерочку по OLE (из восьмерочки), она повисает на входе в базу! Проблемы возникают при любом вызове на сервере в клиент-серверном варианте. К слову на той же самой машине в файловой версии "зависание" не проявляется (так что не указывайте на то, что у меня ПриНачалеРаботыСистемы висит "предупреждение", не висит!). При этом taskmgr кажет появление нового процесса 1cv7, который отжирает вместо 50 Мб (при запуске в файловой версии) всего мегов 5. При этом процессор так же отдыхает, т.е. показывает загруженность в ноль. Что характерно я быстро не сдался. Быстренько накатал свой com-объект, который умел бы запускать 1С-ку и возвращать соединение. С этим com-объектом проявляются те же симптомы. В файловой версии все хоккей, а в клиент-серверной - подвисает на входе. Снятие процесса 1cv7 приводит к exception'у. Так же была задача в регламентном задании переносить данные справочника из одной базы в другую. ЗЫ: Подключаюсь точно так же: База7 = Новый COMОбъект("V77.Application"); Открыта = в77.Initialize(в77.RMTrade, СтрокаСоединения); |
|||
22
le_
10.09.10
✎
10:10
|
Может быть, в строке соединения ошибка?..
|
|||
23
le_
10.09.10
✎
10:13
|
И еще, может быть, с этим связано:
V1CEnterprise.Application - версия независимый ключ; V77.Application - версия зависимый ключ; V77S.Application - версия зависимый ключ, SQL версия; V77L.Application - версия зависимый ключ, локальная версия; V77M.Application - версия зависимый ключ, сетевая версия. |
|||
24
odekolon
10.09.10
✎
10:30
|
В строке соединения ошибок нет. О том свидетельствует то, что при запуске НаКлиенте тот же самый текст обрабатывается без проблем, а НаСервере подвисает именно на входе, т.е. на строке:
Открыта = в77.Initialize(в77.RMTrade, СтрокаСоединения); |
|||
25
odekolon
10.09.10
✎
10:32
|
К слову, я уже пробовал предложенные способы описания ком-объекта, эффект одинаковый. Повторюсь, пробовал как на 8.1, так и на 8.2 с операционками: WinXP, Win2003.
|
|||
26
le_
10.09.10
✎
10:44
|
(24) А пользователь, под которым сервер работает имеет доступ к базе семерки?
|
|||
27
odekolon
10.09.10
✎
11:06
|
Многоуважаемый le_! ;)))))
Извиняюсь за свою невнимательность! ;))))) Права-то я расставил первым делом (когда-то уже голову ломал над этим), а есть ли база в списке пользователя, под которым запускается агент, не удостоверился. Ёпта! :((((((( Семерка просто ждала, когда я выберу базу, которой нету в списке...... ;_)) Аааа :((( |
|||
28
le_
10.09.10
✎
11:26
|
(27) Вообще-то, если строка соединения указана правильно, то оно должно было подключиться, несмотря на то, что список баз в профиле этого пользователя пуст.
Я, например, никогда не входил в систему под пользователем USR1CV82 и не заполнял этот список. Главное - правильно составить строку подключения. |
|||
29
odekolon
10.09.10
✎
13:50
|
Еще интересный глюк:
ОЛЕ1 = Новый COMОбъект("V77.Application"); Рез = ОЛЕ1.Initialize(ОЛЕ1.RMTrade, "/d" + СокрЛП(БазаИсточник.Каталог) + " /n" + БазаИсточник.Пользователь + " /p" + БазаИсточник.Пароль + "" , "NO_SPLASH_SHOW"); ОЛЕ2 = Новый COMОбъект("V77.Application"); Рез = ОЛЕ2.Initialize(ОЛЕ2.RMTrade, "/d" + СокрЛП(БазаПриемник.Каталог) + " /n" + БазаПриемник.Пользователь + " /p" + БазаПриемник.Пароль + "" , "NO_SPLASH_SHOW"); Вылетает с ошибкой, что интерфейс не поддерживается. По одиночке базы входят без проблем. |
|||
30
odekolon
10.09.10
✎
14:26
|
Проблему решил. Службу начал запускать с системной учетной записью. По другому работать не хочет.
|
|||
31
le_
10.09.10
✎
14:50
|
(30) Ну, как раз по поводу "Интерфейс не поддерживается" и было сообщение в (0).
А в (19) описано решение. |
|||
32
TheReal
15.09.10
✎
13:36
|
Еще не вставшая проблема, но в продолжение топика. мб это оффтоп, но ...
Требуется в регламентом задании подключаться к базе 81 через COM, передавать туда кой какие данные. Меня терзают сомнения , по поводу стабильности, если несколько соеденителей открыты это бэд. Пока процесс представляется так, раз в 10 минут идет выполнение задания, в задании создание COM соединения и пр, не провиснут ли эти COM соеденители. Вопрос есть ли способ контролить запушено ли уже такое задание и еще не окончено, или где то в глобальном месте хранить COM соединение созданное однажды и не париться. Вопрос может быть не в тему, но если у кого есть опыт ответьте, мб я чего то не учел. |
|||
33
МихаилМ
15.09.10
✎
14:01
|
если выполняется на сервере, то сервер может работать
и под линуксом. на линуксе КОМ нет. |
|||
34
TheReal
15.09.10
✎
14:17
|
MS-вский сервак
|
|||
35
TheReal
15.09.10
✎
14:34
|
Пока решил сделать вот что,
в начале выполнения задания искать фоновые задания запущенные больше N секунд назад, N из регламентного получаю. непосредственного запуска фонового задания не предвидится, поэтому думаю что сканает от параллельных сеансов COM |
Форум | Правила | Описание | Реклама | Секции | Поиск | Книга знаний | Вики-миста |