К классу "Система.МетаКласс" относится любой объект системы.
Свойство: <ИмяПараметра>
Тип параметра: 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