Синтаксис: ЗапуститьКлиентскоеПриложение(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