Чтение и запись данных по COM для Lotus Notes из 1С 8.х
Чтение и запись данных по 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 = СсылкаНаИДФайлНужногоПользователя

