• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

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

YoshiYoshi

Агент для выполнения процедуры в 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

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

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

hosm

Уровень безопасности агента (закладка Security) - Allow restricted operation поставить, например
 
H

hosm

или еще в настройках сервера (безопасность) посмотреть того, кто может лотусскрипт-агенты на сервере запускать...
 
Y

YoshiYoshi

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

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

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

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

hosm

тут уже с "V81.ComConnector" проблемы, скорее всего.
Мб, поможет
 
M

morpheus

может обьект не зарегистрирован в реестре?
 
Y

YoshiYoshi

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


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

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

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

YoshiYoshi

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


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

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

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

hosm

кстати, раз дело в Ком 1с, которая, по вашим словам, есть на сервере, на котором запускается агент, то, может, стоит поискать ошибку в 1с разделе на нашем форуме и спросить знающих людей там? Может, как-то не так с настройками, я просто не подскажу...
 
A

akat

>При запуске агента руками, процедура выполняется.
Это из списка агентов в клиенте/дизайнере?
Если да, тогда он выполняется в вашем ноутсе, а не на сервере.

На сервере, это с консоли 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-объект кривовато настроен.
 
M

Mikle0x

Проще всего - попробуйте запустить клиента на сервере, и там уже выполнить агента вручную; COM объект регистрируется в операционной системе, если ошибка на createObject - то, скорее всего, надо его правильно зарегистрировать на сервере, что и пытались Вам донести почти все вышеответившие.

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!