gifts2017

Чтение и запись данных по COM для Lotus Notes из 1С 8.х

Опубликовал Rovan (Rovan) в раздел Обмен - Обмен с другими системами

Чтение и запись данных по COM для Lotus Notes программно из кода 1С 8.х

1С 8.х поддерживает COM-соединение, поэтому создание объекта делается командой

ЛотусСессия = Новый COMОбъект( "Lotus.NotesSession" );
Если ЛотусСессия = Неопределено Тогда
    ТекстОшибки = "Не установлен Lotus Notes !";
    Возврат Неопределено;
КонецЕсли; 

Запуск самого входа в сессию производится через

ЛотусСессия.Initialize( Пароль );

Надо учитывать, что COM-соединение делается по последнему логину, по которому пользователь запускал клиент Lotus Notes (имя id-файла последнего логина храниться в служебном файле notes.ini в строке KeyFileName=...), поэтому если Lotus-клиент допустил переданный пароль, тогда объект ЛотусСессия заполняется служебными данными - например

ПользовательЛотуса = ЛотусСессия.CommonUserName; 

Через него доступны и другие свойства и методы, которые обычно используюся при программировании в Lotus на языке LotusScript.

Примеры:

получить ссылку на базу

НекаяБД = ЛотусСессия.GetDataBase( ИмяСервера, ИмяФайлаБазы ); 

получить ссылку на вид

НекийВид = НекаяБД.GetView("AllDocs"); 

записать документ

ЛотусДок.Save( Истина, Ложь ); 

****

Есть правда одна особенность - нельзя обращаться к полям напрямую:

ЗначениеПоляФорма = ЛотусДокумент.Form(0) 

надо это делать через методы объекта COMSafeArray

ЗначениеПоляФорма = ЛотусДокумент.GetFirstItem( "Form" ).GetValue(0); 

****

быстрый отбор документов по условию делается так:

ДатаОтбора = ЛотусСессия.CreateDateTime( "01/01/1900 01:00:00 PM" );
Колво = 0 ;
КоллекцияДокументов = БДЛотуса.Search( ФильтрОтбора, ДатаОтбора, Колво)

****

Также есть особенность подключения к Лотусу из 1С на сервере (RDP или Citrix) когда там работают несколько человек одновременно. Чтобы система знала, под каким пользователем ей нужно подключиться, нужно перед созданием COM-объекта найти файл notes.ini (обычно это C:\lotus\notes\notes.ini) и вставить там в строку

KeyFileName = СсылкаНаИДФайлНужногоПользователя

См. также

Подписаться Добавить вознаграждение

Комментарии

1. WellMaster (WellMaster) 25.11.11 16:46
Еще одна обработка для работы с Нотесом, в дополнении к моей http://infostart.ru/public/70437/
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа