Книга знаний

1С:Предприятие / v8 / Приемы программирования / Встроенный язык

v8: Запуск по OLE клиента Lotus Notes из 1С 8.х

Запуск по OLE клиента Lotus Notes из 1С 8.хАвтор статьи:
Последняя редакция №1 от 28.06.08
URL: http://kb.mista.ru/article.php?id=679

Ключевые слова: Запуск OLE Lotus Notes


1С 8.0 поддерживает 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);

****

единственное - что я не понял как сделать - это передать значение nothing
например в метод КоллекцияДокументов = БДЛотуса.Search( ФильтрОтбора, ДатаОтбора, Колво)
когда ДатаОтбора не нужна в LotusScript используют nothing
а как его передать из 1С ?

Описание | Рубрикатор | Поиск | ТелепатБот | Захваченные статьи | Установки | Форум
© Станислав Митичкин (Волшебник), 2005-2025 | Mista.ru

Яндекс.Метрика