Класс "Система.OleApplication"

Метод ЗапуститьКлиентскоеПриложение

Синтаксис: ЗапуститьКлиентскоеПриложение(string "<Сервер>", string "<База>", string "<Редакция>") 

Возвращаемый результат: Система.КлиентскоеПриложение.Приложение (см. Класс "Система.КлиентскоеПриложение.Приложение").

Метод позволяет запустить клиентское приложение или получить уже запущенное. Используется для запуска элементов пользовательского интерфейса. В качестве параметров передаются три строки: имя сервера БД, название базы,  редакция продукта - Enterprise, Professional, Cockpit. Версия продукта должна соответствовать имеющейся лицензии.

Замечание: в качестве имени сервера и/или базы данных могут быть переданы пустые строки. В этом случае при запуске появится стандартное окно выбора базы данных. При каждом запуске без параметров "<Сервер>" или "<База>" будет создан новый экземпляр приложения, который необходимо будет завершить явно, используя метод класса Система.OleApplication ЗавершитьПриложение().

Пример кода.

Задача: запустить приложение Business Studio.

Sub ПримерOLE_ЗапускПриложения()

   'Получение объекта приложения

   Set oleapp = CreateObject("ByteEnterprise.OleApplication")

   'Запустить Business Studio Enterprise с базой под именем "ИмяБазы" на сервере\\    'ИмяСервера.\\    'В Диспетчере задач появится Business Studio. В панели задач приложения не будет видно.

   Set client_app = oleapp.ЗапуститьКлиентскоеПриложение("ИмяСервера", "ИмяБазы", "Enterprise")

End Sub

Метод ПолучитьКорневуюГруппуКласса

Синтаксис: ПолучитьКорневуюГруппуКласса(string "<ИмяКласса>")

Возвращаемый результат: Система.МетаКласс (см. Класс "Система.МетаКласс")

Метод возвращает корневую группу класса по имени класса.

Пример кода. См. метод "ОткрытьФайл" (Mетод ОткрытьФайл).

Метод ПолучитьОбъекты

Синтаксис: ПолучитьОбъекты(string "<ИмяКласса>", string "<ИмяПараметра>", object <ЗначениеПараметра>)

Возвращаемый результат: Система.Список (см. Класс "Система.Список").

Возвращает список объектов класса, указанный параметр которых равен заданному значению.

Пример кода. См. методы РедактироватьОбъект (Mетод РедактироватьОбъект) и СоздатьОбъект (Mетод СоздатьОбъект).

Метод ВыбратьОбъект

Синтаксис: ВыбратьОбъект(object <Объект>)

Возвращаемый результат: Система.МетаКласс (см. Класс "Система.МетаКласс").

Метод для выбора объекта с использованием окна выбора.

Пример кода. См. метод "ОткрытьФайл" (Mетод ОткрытьФайл).

Метод РедактироватьОбъект

Синтаксис: РедактироватьОбъект(object <Объект>)

Возвращаемый результат: не возвращает.

Метод для редактирования объекта с использованием окна редактирования. Окно редактирования при этом является модальным.

Пример кода.

Задача: открыть на редактирование окно свойств заданного показателя.

Sub ПримерOLE_РедактированиеОбъекта()

   'БД и редакция Business Studio, с которыми будем работать

   СерверБД = "ИмяСервера"

   База = "ИмяБазы"

   Редакция = "Enterprise"

 

   'Получение объекта приложения

   Set oleapp = CreateObject("ByteEnterprise.OleApplication")

 

   'Запустить Business Studio в редакции и базой на сервере, указанными ранее.

   'В Диспетчере задач появится Business Studio. В панели задач приложения не будет видно.

   Set client_app = oleapp.ЗапуститьКлиентскоеПриложение(СерверБД, База, Редакция)

   'В панели задач появится приложение

   'Данное действие приводится для наглядности и не является обязательным

   oleapp.ПоказатьКлиентскоеПриложение

 

   'Получить список всех показателей с заданным названием

   НазваниеПоказателя = "Процент запасов, запланированных к выдаче"

   Set СписокПоказателей = oleapp.ПолучитьОбъекты("БизнесМодель.ПоказателиBSC", "Название", НазваниеПоказателя)

 

   'Если в списке полученных показателей всего один элемент

   If(СписокПоказателей.КоличествоЭлементов = 1) Then

         'Тогда взять первый элемент списка

         Set НужныйПоказатель = СписокПоказателей.Item(0)

         'И открыть на редактирование окно свойств выбранного показателя

         oleapp.РедактироватьОбъект (НужныйПоказатель)

      Else

         'Иначе вывести сообщение, что таких показателей несколько

         MsgBox "Существует несколько показателей '" + НазваниеПоказателя + "'."

      End If

End Sub

Метод ВыполнитьКоманду

Синтаксис: ВыполнитьКоманду(string "<Команда>", object <Аргументы>)

Возвращаемый результат: object (в зависимости от выполняемой команды)

Метод запускает команду на исполнение. Примеры команд см. Руководство пользователя, глава Командная строка. Если требуется выполнить команду, в которой нет аргументов, то на месте пустого аргумента следует вставлять значение с пустым значением - Null, Nothing или другие значения, предопределенные конкретным языком программирования.

Пример кода.

Задача: открыть окно объектной модели.

Sub ПримерOLE_ВыполнитьКоманду()

   'Получение объекта приложения

   Set oleapp = CreateObject("ByteEnterprise.OleApplication")

   'Запустить Business Studio в редакции и базой на сервере, указанными ранее.

   'В Диспетчере задач появится Business Studio. В панели задач приложения не будет видно.

   Set client_app = oleapp.ЗапуститьКлиентскоеПриложение("ИмяСервера", "ИмяБазы", "Enterprise")

   'В панели задач появится приложение

   oleapp.ПоказатьКлиентскоеПриложение

   'Открыть окно объектной модели (Справочники → Объектная модель)

   Set object_model = oleapp.ВыполнитьКоманду("База.КлиентскиеМетоды.ВыполнитьФорму", "База.ФормаОписаниеОбъектнойМодели")
  
End Sub

Метод ВыбратьКласс

Синтаксис: ВыбратьКласс()

Возвращаемый результат: string

Метод для выбора класса с использованием окна выбора. Возвращает строкой системное название выбранного класса.

Пример кода.

Задача: открыть окно выбора справочников.

Sub ПримерOLE_ВыбратьКласс()

   'Получение объекта приложения

   Set oleapp = CreateObject("ByteEnterprise.OleApplication")

   'Запустить Business Studio в редакции и базой на сервере, указанными ранее.

   'В Диспетчере задач появится Business Studio. В панели задач приложения не будет видно.

   Set client_app = oleapp.ЗапуститьКлиентскоеПриложение("ИмяСервера", "ИмяБазы", "Enterprise")

   'В панели задач появится приложение

   oleapp.ПоказатьКлиентскоеПриложение

   'Открыть окно для выбора справочников (Справочники -> Все справочники)

   class_select = oleapp.ВыбратьКласс()

End Sub

Метод СоздатьОбъект

Синтаксис: СоздатьОбъект(object <Группа>)

Возвращаемый результат: Система.МетаКласс (см. Класс "Система.МетаКласс").

Метод создает объект - потомок по иерархии в группе. Для добавления элементов в списках нужно использовать метод "Добавить" класса "Система.Список" (см. Mетод Добавить).

Структуры объекта (например, "Параметры должности", "Параметры подразделения", "Параметры СМК") создаются только вместе с объектом. Обращаться к ним надо через объект.

Пример кода.

Задача: в папке "Объекты деятельности\Документы\Бумажный документ\Документы СМК" создать документ и заполнить некоторые его свойства, в том числе и параметры СМК.

Sub ПримерOLE_СоздатьОбъект()

   'Получение объекта приложения

   Set oleapp = CreateObject("ByteEnterprise.OleApplication")

   'Запустить Business Studio в редакции и базой на сервере, указанными ранее.

   'В Диспетчере задач появится Business Studio. В панели задач приложения не будет видно.

   Set client_app = oleapp.ЗапуститьКлиентскоеПриложение("ИмяСервера", "ИмяБазы", "Enterprise")

   'В панели задач появится приложение

   oleapp.ПоказатьКлиентскоеПриложение

 

   'Указываем папку (не корневую), в которой будет создаваться объект

   'В данном примере требуемая папка задается через guid, соответствующий папке "Документы СМК" в демо-базе

   Set СписокПапкаБумДока = oleapp.ПолучитьОбъекты("БизнесМодель.БумажныйДокумент", "guid", "fb366191-6c0b-4e06-8ccf-ebe219dd2bfd")

   Set ПапкаНужная = СписокПапкаБумДока.ПолучитьЭлемент(0)

 

   'Создать новый бумажный документ в заданной папке

   Set НовБумДокумент = oleapp.СоздатьОбъект(ПапкаНужная)

 

      'Заполняем название документа и его параметры

      НовБумДокумент.Название = "Документ через OLE"

      НовБумДокумент.КодДокумента = "OLE-1"

      НовБумДокумент.Комментарий = "Документ создан средствами OLE"

 

         'Заполняем объектный параметр "Тип документа"

         ТребуемыйТипДока = "Запись"

         Set ТипыДоковСТребуемымТипом = oleapp.ПолучитьОбъекты("БизнесМодель.ТипыДокумента", "Название", ТребуемыйТипДока)

         НовБумДокумент.ТипДокумента = ТипыДоковСТребуемымТипом.ПолучитьЭлемент(0)

 

         'Заполняем параметры СМК, которые являются структурой

         Set ПараметрыСМК = НовБумДокумент.ПараметрыСМК

         ПараметрыСМК.ВерсияДокумента = "1.0"

         ПараметрыСМК.ОбластьРаспространенияДокумента = 0 ' Внутренний

         ПараметрыСМК.СтатусДокумента = 1 'Действующий

         ПараметрыСМК.НеобходимостьАктуализации = True 'Логический параметр: True, False

 

         'Задаем параметры типа дата в Параметрах СМК

         Set ДатаВВедения = ПараметрыСМК.НайтиПараметр("ДатаВведенияВДействие")

         ДатаВВедения.Значение = CDate(Now) ' Сегодня

 

         Set ПересмотрПлан = ПараметрыСМК.НайтиПараметр("ДатаПересмотраПлан")

         ПересмотрПлан.Значение = CDate("07.12.2012")

 

   'Сохранить созданный бумажный документ, иначе его не будет видно

   НовБумДокумент.Сохранить

 

End Sub

Метод СоздатьГруппу

Синтаксис: СоздатьГруппу(object <Группа>)      

Возвращаемый результат: Система.МетаКласс (см. Класс "Система.МетаКласс")

Метод создает группу - потомок по иерархии в группе. Если объект является группой - он может содержать другие объекты ниже по иерархии.

Пример кода.

Задача: в бумажных документах создать группу (папку). Примечание: в других классах понятия "Папка" и "Группа" могут не совпадать.

Sub ПримерOLE_СоздатьГруппу()

   'Получение объекта приложения

   Set oleapp = CreateObject("ByteEnterprise.OleApplication")

   'Запустить Business Studio в редакции и базой на сервере, указанными ранее.

   'В Диспетчере задач появится Business Studio. В панели задач приложения не будет видно.

   Set client_app = oleapp.ЗапуститьКлиентскоеПриложение("ИмяСервера", "ИмяБазы", "Enterprise")

   'В панели задач появится приложение

   oleapp.ПоказатьКлиентскоеПриложение

 

   'Дальше обращение будет с бумажными документами

   Set БумДокументы = oleapp.ПолучитьКорневуюГруппуКласса("БизнесМодель.БумажныйДокумент")

 

   'Создать группу (папку) в бумажных документах

   Set НоваяГруппа = oleapp.СоздатьГруппу(БумДокументы)

      'Заполняем название папки

      НоваяГруппа.Название = "Папка через OLE"

 

   'Сохранить созданную папку, иначе её не будет видно

   НоваяГруппа.Сохранить

 

End Sub

Метод ОткрытьФайл

Синтаксис: ОткрытьФайл(object <Объект>)

Возвращаемый результат: не возвращает.

Метод открытия файла закрепленного за объектом, если объект его содержит. В случае, если файла нет, то будет выдано соответствующее сообщение.

Пример кода.

Задача 1: открыть справочник бумажных документов и после выбора пользователем одного из документов открыть файл, закрепленный за ним.

Sub ПримерOLE_ОткрытьФайлСУчастиемПользователя()

   'Получение объекта приложения

   Set oleapp = CreateObject("ByteEnterprise.OleApplication")

   'Запустить Business Studio в редакции и базой на сервере, указанными ранее.

   'В Диспетчере задач появится Business Studio. В панели задач приложения не будет видно.

   Set client_app = oleapp.ЗапуститьКлиентскоеПриложение("ИмяСервера", "ИмяБазы", "Enterprise")

   'В панели задач появится приложение

   oleapp.ПоказатьКлиентскоеПриложение

 

   'Дальнейшее обращение будет с бумажными документами

   Set БумДокументы = oleapp.ПолучитьКорневуюГруппуКласса("БизнесМодель.БумажныйДокумент")

 

   'Открываем окно выбора бумажного документа и ждем выбор пользователя

    Set Документ = oleapp.ВыбратьОбъект(БумДокументы)

      'BS открывает файл выбранного объекта

      'или выдает сообщение, что к объекту файл не прикреплен

      oleapp.ОткрытьФайл (Документ)

 

End Sub

 

Задача 2: открыть файл бумажного документа "Акт выполненных работ".

Sub ПримерOLE_ОткрытьФайлБезУчастияПользователя()

   'Получение объекта приложения

   Set oleapp = CreateObject("ByteEnterprise.OleApplication")

   'Запустить Business Studio в редакции и базой на сервере, указанными ранее.

   'В Диспетчере задач появится Business Studio. В панели задач приложения не будет видно.

   Set client_app = oleapp.ЗапуститьКлиентскоеПриложение("ИмяСервера", "ИмяБазы", "Enterprise")

   'В панели задач появится приложение

   oleapp.ПоказатьКлиентскоеПриложение

 

   'Получить список всех объектов, у которых guid = myguid

   'myguid соответствует документу "Акт выполненных работ"

   myguid = "6bc61f07-2181-4e26-94c0-8cc9d2b805a3"

   Set СписокБумДокументы = oleapp.ПолучитьОбъекты("БизнесМодель.БумажныйДокумент", "guid", myguid)

 

   'Если в списке полученных объектов всего один элемент

   If (СписокБумДокументы.КоличествоЭлементов = 1) Then

         'Тогда взять первый элемент списка бумажных документов

         Set НужныйБумДокумент = СписокБумДокументы.Item(0)

 

         'И открыть файл выбранного объекта

         'или выдает сообщение, что к объекту файл не прикреплен

         oleapp.ОткрытьФайл (НужныйБумДокумент)

 

       Else

 

         'Иначе выбрать вывести сообщение, что таких объектов несколько

         MsgBox "Существует несколько объектов с guid = '" + myguid + "'."

   End If

 

End Sub

Метод ПоказатьКлиентскоеПриложение

Синтаксис: ПоказатьКлиентскоеПриложение()

Возвращаемый результат: не возвращает.

Метод показывает текущий экземпляр Business Studio и отображает его в панели задач.

Пример кода. См. код во всех методах данного класса.

Метод ЗавершитьПриложение

Синтаксис: ЗавершитьПриложение()

Возвращаемый результат: не возвращает.

Метод выгружает экземпляр Business Studio из памяти.

Пример кода.

Задача: открыть и закрыть Business Studio.

Sub ПримерOLE_ЗавершитьКлиентскоеПриложение()

   'Получение объекта приложения

   Set oleapp = CreateObject("ByteEnterprise.OleApplication")

   'Запустить Business Studio в редакции и базой на сервере, указанными ранее.

   'В Диспетчере задач появится Business Studio. В панели задач приложения не будет видно.

   Set client_app = oleapp.ЗапуститьКлиентскоеПриложение("ИмяСервера", " ИмяБазы", "Enterprise")

   'В панели задач появится приложение

   oleapp.ПоказатьКлиентскоеПриложение

   'Закрыть окно Business Studio

   app_exit = oleapp.ЗавершитьПриложение()

End Sub
« ПредыдущаяНа уровень вышеСледующая »
Актуальные новости, публикации и практики для бизнес-архитекторов и аналитиков
Driven by DokuWiki