Не выходит получить данные из документа через Ole

Тема в разделе "Lotus - Программирование", создана пользователем -, 17 дек 2008.

  1. Гость

    Формирую в 1С такой запрос, проверей в Lotus отрабатывает на ура, а через OLE не в какую :angry:

    MSScript.language= "vbscript";

    Текст= "
    |Function GetStatusOfDoc()
    | Set Session= CreateObject(""Notes.NotesSession"")
    | Set DB = Session.GetDatabase( """ + БД.Сервер.Наименование + """, """ + БД.Наименование + """)
    | Set Doc= DB.GetDocumentByUNID("""+ LNDocACC + """)
    | GetStatusOfDoc = Doc.ContractStatus(0)
    |End Function";

    GLM= MSScript.Run("GetStatusOfDoc");
     
  2. morpheus

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

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    а чего сразу не работать с лотусом без MSScript.language= "vbscript" ?
     
  3. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Нельзя так делать GetStatusOfDoc = Doc.ContractStatus(0)
    Надо GetStatusOfDoc = Doc.GetItemValue("ContractStatus")(0)
     
  4. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Medevic
    Это что, такое ограничение при работе через OLE?
     
  5. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Omh
    Ну как сказать. У объекта Doc нет свойства или метода ContractStatus. :angry:


    Т.е. синтаксис Doc.ContractStatus - это лотусная фишка.
     
  6. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Ну вот и я про это же.
    Можно сделать вывод, что dot-notation = зло!
    Хорошо уже пару лет, как переучился на методы вместо точки.
     
  7. Гость

    Народ: Ошибка выполнения Microsoft vb script: Несоответствие типа: 'Doc.GetItemValue(...)' :angry:
     
Загрузка...

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