Агент для выполнения процедуры в 1С

  • Автор темы YoshiYoshi
  • Дата начала
Y

YoshiYoshi

Гость
#1
Агент для выполнения процедуры в 1С. 1С стоит на сервере, на машине 1С не установлена.
Агент запускается сервером
кусок скрипта
Код:
	Dim s As New NotesSession
Dim agent As NotesAgent
Set agent = s.CurrentAgent
Dim db As NotesDatabase
Dim doc As NotesDocument
Set db = s.CurrentDatabase
Dim mdoc As NotesDocument
Set mdoc=New NotesDocument(db)
mdoc.Form="ICExport"
mdoc.begin=now
Dim BaseDir As String
Dim TempDir As String
Dim  UserName As String
Dim UserPass As String
Dim ConnStr As String
Dim Conn As Variant
Set aObjV8 = CreateObject("V81.ComConnector")
При запуске агента руками, процедура выполняется.
При запуске по кнопке пользователя в которой agent.RunOnServer(doc.NoteID)
Lotus ругается на последнюю строчку.
Ошибка в логе

Agent '1CExperTest|1CExperTest' error: Operation is disallowed in this session

Может кто-то может помочь в єтой проблеме?!

Зараннее спасибо.
 

hosm

* so what *
18.05.2009
2 442
9
42
Kiev, Ukraine
#2
Уровень безопасности агента (закладка Security) - Allow restricted operation поставить, например
 

hosm

* so what *
18.05.2009
2 442
9
42
Kiev, Ukraine
#3
или еще в настройках сервера (безопасность) посмотреть того, кто может лотусскрипт-агенты на сервере запускать...
 
Y

YoshiYoshi

Гость
#5
Есть еще какие-то идеи?

Ошибка:
24.11.2010 09:38:32 Agent '1CExperTest|1CExperTest' error: Cannot create automation object

В закладке безопасности свойств агента признак поставили.
В безопасности сервера тоже добавили для разрешения запуска агентов.

На сервере все-равно не удается запустить агент.
 
Y

YoshiYoshi

Гость
#8
тут уже с "V81.ComConnector" проблемы, скорее всего.
Мб, поможет это

Все описанное:
* запустите утилиту Component Services;
* создайте пустое COM+ приложение с:
- Activation type - Server application;
- именем, например, V81_COMConnector;
- укажите имя пользователя Windows, от имени которого компонента будет запускаться специальный процесс dllhost.exe;
* в ветке Components добавьте новую компоненту comcntr.dll из каталога загрузочных модулей 1С:Предприятия.

Я сделала. Имя указала мое. Ошибка та же.

Добавлено: а ошибка может быть в моих правах доступа к 1с или еще к чему-то?
 
Y

YoshiYoshi

Гость
#11
И оно врет, т.е. файл там есть? тогда проверьте права, может быть.

я не правильно указала путь. файл там есть. переписала путь - ошибки нету.

Попробовала в скрипте написать Set aObjV8 = CreateObject("V81.COMConnector.1")
клиент даже так может запустить, а вот сервер все-равно не может.

СОМ запущен.
А может в СОМ+ надо какие - то еще настройки сделать?
 

hosm

* so what *
18.05.2009
2 442
9
42
Kiev, Ukraine
#12
кстати, раз дело в Ком 1с, которая, по вашим словам, есть на сервере, на котором запускается агент, то, может, стоит поискать ошибку в 1с разделе на нашем форуме и спросить знающих людей там? Может, как-то не так с настройками, я просто не подскажу...
 

akat

Well-Known Member
Lotus team
16.06.2010
243
7
#13
>При запуске агента руками, процедура выполняется.
Это из списка агентов в клиенте/дизайнере?
Если да, тогда он выполняется в вашем ноутсе, а не на сервере.

На сервере, это с консоли tell amgr run "myDb.nsf" 'AgentName' или agent.RunOnServer(doc.NoteID)

> Ошибка:
> 24.11.2010 09:38:32 Agent '1CExperTest|1CExperTest' error: Cannot create automation object
ИМХО, у вас локально все нормально, а вот на сервере COM-объект кривовато настроен.
 
01.04.2010
14
2
42
Петрозаводск
#14
Проще всего - попробуйте запустить клиента на сервере, и там уже выполнить агента вручную; COM объект регистрируется в операционной системе, если ошибка на createObject - то, скорее всего, надо его правильно зарегистрировать на сервере, что и пытались Вам донести почти все вышеответившие.

"Все описанное:...Я сделала. Имя указала мое. Ошибка та же" всё это на сервере надо делать.