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

Тема в разделе "Lotus - Программирование", создана пользователем YoshiYoshi, 23 ноя 2010.

  1. YoshiYoshi

    YoshiYoshi Гость

    Агент для выполнения процедуры в 1С. 1С стоит на сервере, на машине 1С не установлена.
    Агент запускается сервером
    кусок скрипта
    Код (LotusScript):
        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

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

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

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    Уровень безопасности агента (закладка Security) - Allow restricted operation поставить, например
     
  3. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    или еще в настройках сервера (безопасность) посмотреть того, кто может лотусскрипт-агенты на сервере запускать...
     
  4. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    +1
     
  5. YoshiYoshi

    YoshiYoshi Гость

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

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

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

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

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    тут уже с "V81.ComConnector" проблемы, скорее всего.
    Мб, поможет это
     
  7. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    может обьект не зарегистрирован в реестре?
     
  8. YoshiYoshi

    YoshiYoshi Гость


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

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

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

    YoshiYoshi Гость

    есть еще какие-то варианты?
     
  10. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    И оно врет, т.е. файл там есть? тогда проверьте права, может быть.
     
  11. YoshiYoshi

    YoshiYoshi Гость


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

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

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

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    кстати, раз дело в Ком 1с, которая, по вашим словам, есть на сервере, на котором запускается агент, то, может, стоит поискать ошибку в 1с разделе на нашем форуме и спросить знающих людей там? Может, как-то не так с настройками, я просто не подскажу...
     
  13. akat

    akat Lotus team
    Lotus team

    Регистрация:
    16 июн 2010
    Сообщения:
    243
    Симпатии:
    7
    >При запуске агента руками, процедура выполняется.
    Это из списка агентов в клиенте/дизайнере?
    Если да, тогда он выполняется в вашем ноутсе, а не на сервере.

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

    Mikle0x Member

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

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

Поделиться этой страницей