Это старая версия документа.
К классу «Система.МетаКласс» относится любой объект системы.
Свойство: <ИмяПараметра>
Тип параметра: object (соответствует типу параметра в Объектной модели).
Обращение к значениям (параметрам) объектов осуществляется по имени параметра из объектной модели Business Studio.
Пример кода.
Задача: вывести сообщение о заданном показателе, а так же некоторые его параметры.
Sub ПримерOLE_РаботаСПараметрами()
'Получение объекта приложения
Set oleapp = CreateObject("ByteEnterprise.OleApplication")
'Запустить Business Studio в редакции и базой на сервере, указанными ранее.
'В Диспетчере задач появится Business Studio. В панели задач приложения не будет видно.
Set client_app = oleapp.ЗапуститьКлиентскоеПриложение("ИмяСервера", "ИмяБазы", "Enterprise")
'В панели задач появится приложение
oleapp.ПоказатьКлиентскоеПриложение
'Обращаемся к показателю с заданным названием
ИмяПоказателя = "Издержки на запасы (% от общих издержек)"
Set СписокПоказателей = oleapp.ПолучитьОбъекты("БизнесМодель.ПоказателиBSC", "Название", ИмяПоказателя)
Set МойПоказатель = СписокПоказателей.ПолучитьЭлемент(0)
'Считываем параметрам показателя
ЦельДата = МойПоказатель.ЦелеваяДата
ЦельЗначение = CStr(МойПоказатель.ЦелевоеЗначение) 'Вещественное значение сразу преобразовываем в строку
Измерение = МойПоказатель.ЕдиницаИзмерения
'Определение периодичности измерения показателя. Периодичность - это перечисление
ПериодичностьТекст = _
МойПоказатель.Параметры.ПолучитьЭлемент("Периодичность").ЗначениеВСтроку
'Выводим сообщение с данными показателя
MsgBox "Показатель: " + ИмяПоказателя + Chr(13) + _
"Периодичность измерения: " + ПериодичностьТекст + Chr(13) + _
"Единица измерения: " + Измерение + Chr(13) + _
"Целевое значение и дата: " + ЦельЗначение + " на " + ЦельДата
End Sub
Синтаксис: НайтиПараметр(string "<ИмяПараметра>")
Возвращаемый результат: Система.Параметр (см. Класс "Система.Параметр")
Метод для получения параметра. Используется, если нет возможности обратиться к параметру напрямую, например, для обращения к параметрам типа "ДатаВремя".
Пример кода. См. код в методе «СоздатьОбъект» (Mетод создатьобъект).
Синтаксис: СоздатьФильтр()
Возвращаемый результат: Система.Фильтр (см. Класс "Система.Фильтр").
Создает Фильтр по объекту-группе.
Внимание: Рекомендуется использовать для корневых групп класса (ОПУ).
Пример кода.
Задача: вывести сообщение, показывающее количество должностей в бизнес-модели.
Sub ПримерOLE_СоздатьФильтр()
'Получение объекта приложения
Set oleapp = CreateObject("ByteEnterprise.OleApplication")
'Запустить Business Studio в редакции и базой на сервере, указанными ранее.
'В Диспетчере задач появится Business Studio. В панели задач приложения не будет видно.
Set client_app = oleapp.ЗапуститьКлиентскоеПриложение("ИмяСервера", "ИмяБазы", "Enterprise")
'В панели задач появится приложение
oleapp.ПоказатьКлиентскоеПриложение
'Дальнейшая работа будет с Субъектами
Set ВсеСубъекты = oleapp.ПолучитьКорневуюГруппуКласса("БизнесМодель.Субъекты")
'Создать фильтр, отбирающий только должности
Set ФильтрДолжности = ВсеСубъекты.СоздатьФильтр
ФильтрДолжности.Условия.Параметры.ТипСубъекта.Значение = "Должность"
'строка выше может быть и такой:
'ФильтрДолжности.Условия.Параметры.ТипСубъекта.Значение = 2 ' 2 - Должность
'Выполняем фильтр и определяем количество записей
Set РезультатФильтрДолжности = ФильтрДолжности.Выполнить
КолвоДолжностей = РезультатФильтрДолжности.КоличествоЭлементов
'Выводим сообщение
MsgBox "Количество должностей: " + CStr(КолвоДолжностей)
End Sub
Синтаксис: Сохранить()
Возвращаемый результат: не возвращает.
Сохраняет изменения объекта в базу данных.
Пример кода. См. код в методах «СоздатьОбъект» (Mетод создатьобъект) и «СоздатьГруппу» (Mетод создатьгруппу).
Синтаксис: Обновить()
Возвращаемый результат: не возвращает.
Обновляет текущий объект, зачитывает свойства объекта из базы данных, при этом все произведенные изменения будут утеряны. Актуализирует состояние класса при наличии сохраненных изменений в объекте, внесенных в другом экземпляре Business Studio. Пример кода.
…
Set Субъекты = oleapp.ПолучитьОбъекты("БизнесМодель.Субъекты", "Название", "Директор")
Set НужныйСубъект = Субъекты.ПолучитьЭлемент(0)
НужныйСубъект.Обновить
…
Синтаксис: Удалить()
Возвращаемый результат: не возвращает.
Помечает объект на удаление. Выполнение метода соответствует удалению объекта вручную, при котором не происходит очистки ссылок на удаляемый объект.
Пример кода.
Задача: из организационной структуры удалить юриста.
Sub ПримерOLE_Удалить()
'Получение объекта приложения
Set oleapp = CreateObject("ByteEnterprise.OleApplication")
'Запустить Business Studio в редакции и базой на сервере, указанными ранее.
'В Диспетчере задач появится Business Studio. В панели задач приложения не будет видно.
Set client_app = oleapp.ЗапуститьКлиентскоеПриложение("ИмяСервера", "ИмяБазы", "Enterprise")
'В панели задач появится приложение
oleapp.ПоказатьКлиентскоеПриложение
'Определяем субъект для удаления
GuidСубъекта = "23e3bc1b-1b6b-46b6-80c1-3508d9d06b6f" 'Соответствует 'Юрист" в демо-базе
Set Субъект = oleapp.ПолучитьОбъекты("БизнесМодель.Субъекты", "guid", GuidСубъекта)
Set СубъектЮрист = Субъект.ПолучитьЭлемент(0)
'Удаляем субъект
СубъектЮрист.Удалить
End Sub
Синтаксис: УдалитьСОчисткойСсылок ()
Возвращаемый результат: не возвращает.
Помечает объект на удаление. Выполнение метода соответствует удалению объекта вручную, при котором происходит очистка ссылок на удаляемый объект.
Пример кода.
Задача: из организационной структуры удалить заместителя директора по качеству.
Sub ПримерOLE_УдалитьСОчисткойСсылок ()
'Получение объекта приложения
Set oleapp = CreateObject("ByteEnterprise.OleApplication")
'Запустить Business Studio в редакции и базой на сервере, указанными ранее.
'В Диспетчере задач появится Business Studio. В панели задач приложения не будет видно.
Set client_app = oleapp.ЗапуститьКлиентскоеПриложение("ИмяСервера", "ИмяБазы", "Enterprise")
'В панели задач появится приложение
oleapp.ПоказатьКлиентскоеПриложение
'Определяем субъект для удаления
GuidСубъекта = "6b5a65bd-b0b3-4395-997d-e317472eb116" 'Соответствует "Заместитель директора по качеству" в демо-базе
Set Субъект = oleapp.ПолучитьОбъекты("БизнесМодель.Субъекты", "guid", GuidСубъекта)
Set СубъектЗамДирКачество = Субъект.ПолучитьЭлемент(0)
'Удаляем субъект
СубъектЗамДирКачество.УдалитьСОчисткойСсылок
End Sub
Синтаксис: УдалитьСЗаменойСсылок(object <Объект>)
Возвращаемый результат: не возвращает.
Помечает объект на удаление. Выполнение метода соответствует удалению объекта вручную, при котором происходит переназначение ссылок на другой объект.
Пример кода.
Задача: из организационной структуры удалить заместителя директора по качеству, переназначив ссылки на юриста.
Sub ПримерOLE_УдалитьСЗаменойСсылок ()
'Получение объекта приложения
Set oleapp = CreateObject("ByteEnterprise.OleApplication")
'Запустить Business Studio в редакции и базой на сервере, указанными ранее.
'В Диспетчере задач появится Business Studio. В панели задач приложения не будет видно.
Set client_app = oleapp.ЗапуститьКлиентскоеПриложение("ИмяСервера", "ИмяБазы", "Enterprise")
'В панели задач появится приложение
oleapp.ПоказатьКлиентскоеПриложение
'Определяем субъект для переназначения ссылок
GuidСубъекта1 = "23e3bc1b-1b6b-46b6-80c1-3508d9d06b6f" 'Соответствует 'Юрист" в демо-базе
Set Субъект1 = oleapp.ПолучитьОбъекты("БизнесМодель.Субъекты", "guid", GuidСубъекта1)
Set СубъектЮрист = Субъект1.ПолучитьЭлемент(0)
'Определяем субъект для удаления
GuidСубъекта2 = "6b5a65bd-b0b3-4395-997d-e317472eb116" 'Соответствует "Заместитель директора по качеству" в демо-базе
Set Субъект2 = oleapp.ПолучитьОбъекты("БизнесМодель.Субъекты", "guid", GuidСубъекта2)
Set СубъектЗамДирКачество = Субъект2.ПолучитьЭлемент(0)
'Удаляем субъект и переназначаем ссылки
СубъектЗамДирКачество.УдалитьСЗаменойСсылок (СубъектЮрист)
End Sub