Это старая версия документа.
Синтаксис: ЗапуститьКлиентскоеПриложение(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.ПоказатьКлиентскоеПриложение
'Открыть окно объектной модели (Справочники → Объектная модель)
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