К классу "Система.МетаКласс" относится любой объект системы.
Свойство: <ИмяПараметра>
Тип параметра: object (соответствует типу параметра в Объектной модели).
Обращение к значениям (параметрам) объектов осуществляется по имени параметра из объектной модели Business Studio.
Пример кода.
Задача: вывести сообщение о заданном показателе, а также некоторые его параметры.
Sub ПримерOLE_РаботаСПараметрами() 'Получение объекта приложения Set oleapp = CreateObject("ByteEnterprise.OleApplication") 'Запустить Business Studio в указанной редакции с указанной базой и сервером баз данных. 'В Диспетчере задач появится Business Studio. В панели задач приложения не будет видно. Set client_app = oleapp.ЗапуститьКлиентскоеПриложение("ИмяСервера", "ИмяБазы", "РедакцияПрограммы") 'В панели задач появится приложение oleapp.ПоказатьКлиентскоеПриложение 'Обращаемся к показателю с заданным названием ИмяПоказателя = "Издержки на запасы (% от общих издержек)" Set СписокПоказателей = oleapp.ПолучитьОбъекты("БизнесМодель.ПоказателиBSC", "Название", ИмяПоказателя) Set МойПоказатель = СписокПоказателей.ПолучитьЭлемент(0) 'Считываем параметрам показателя ЦельДата = МойПоказатель.ЦелеваяДата ЦельЗначение = CStr(МойПоказатель.ЦелевоеЗначение) 'Вещественное значение сразу преобразовываем в строку Измерение = МойПоказатель.ЕдиницаИзмерения 'Определение периодичности измерения показателя. Периодичность - это перечисление ПериодичностьТекст = _ МойПоказатель.Параметры.ПолучитьЭлемент("Периодичность").ЗначениеВСтроку 'Выводим сообщение с данными показателя MsgBox "Показатель: " + ИмяПоказателя + Chr(13) + _ "Периодичность измерения: " + ПериодичностьТекст + Chr(13) + _ "Единица измерения: " + Измерение + Chr(13) + _ "Целевое значение и дата: " + ЦельЗначение + " на " + ЦельДата End Sub
Свойство: OLE_Группа
Тип параметра: object (соответствует типу параметра в Объектной модели).
Свойство позволяет переместить объект в другую папку.
Пример кода.
Задача: перенести заданный фильтр из папки "Фильтры правил получения объектов" в папку "Пользовательские фильтры".
Sub ПримерOLE_РаботаСОбъектами() 'Получение объекта приложения Set oleapp = CreateObject("ByteEnterprise.OleApplication") 'Запустить Business Studio в указанной редакции с указанной базой и сервером баз данных. 'В Диспетчере задач появится Business Studio. В панели задач приложения не будет видно. Set client_app = oleapp.ЗапуститьКлиентскоеПриложение("ИмяСервера", "ИмяБазы", "РедакцияПрограммы") 'В панели задач появится приложение oleapp.ПоказатьКлиентскоеПриложение 'Обращаемся к фильтру с заданным названием ИмяФильтра = "Оргединицы" Set СписокФильтров = oleapp.ПолучитьОбъекты("База.ХранимыеФильтры", "Название", ИмяФильтра) Set МойФильтр = СписокФильтров.ПолучитьЭлемент(0) 'Указываем папку, в которую будем перемещать объект Set СписокПапкаФильтр = oleapp.ПолучитьОбъекты("База.ХранимыеФильтры", "Название", "Пользовательские фильтры") Set ПапкаНужная = СписокПапкаФильтр.ПолучитьЭлемент(0) 'Переносим требуемый объект в нужную папку МойФильтр.OLE_Группа = ПапкаНужная МойФильтр.Сохранить End Sub
Синтаксис: НайтиПараметр(string "<ИмяПараметра>")
Возвращаемый результат: Система.Параметр (см. Класс "Система.Параметр")
Метод для получения параметра. Используется, если нет возможности обратиться к параметру напрямую, например, для обращения к параметрам типа "ДатаВремя" или к пользовательским параметрам.
Пример кода. См. код в методе "СоздатьОбъект" (Mетод СоздатьОбъект).
Синтаксис: СоздатьФильтр()
Возвращаемый результат: Система.Фильтр (см. Класс "Система.Фильтр").
Создает Фильтр по объекту-группе.
Внимание! Рекомендуется использовать для корневых групп класса.
Пример кода.
Задача: вывести сообщение, показывающее количество целей с периодичностью месяц.
Sub ПримерOLE_СоздатьФильтр() 'Получение объекта приложения Set oleapp = CreateObject("ByteEnterprise.OleApplication") 'Запустить Business Studio в указанной редакции с указанной базой и сервером баз данных. 'В Диспетчере задач появится Business Studio. В панели задач приложения не будет видно. Set client_app = oleapp.ЗапуститьКлиентскоеПриложение("ИмяСервера", "ИмяБазы", "РедакцияПрограммы") 'В панели задач появится приложение oleapp.ПоказатьКлиентскоеПриложение 'Дальнейшая работа будет с Целями Set ВсеСубъекты = oleapp.ПолучитьКорневуюГруппуКласса("БизнесМодель.ЦелиBSC") 'Создать фильтр, отбирающий только цели с периодичностью месяц Set ФильтрЦели = ВсеЦели.СоздатьФильтр ФильтрЦели.Условия.Параметры.Периодичность.Значение = "Месяц" 'строка выше может быть и такой: 'ФильтрЦели.Условия.Параметры.Периодичность.Значение = 3 ' 3 - Месяц 'Выполняем фильтр и определяем количество записей 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.ЗапуститьКлиентскоеПриложение("ИмяСервера", "ИмяБазы", "РедакцияПрограммы") 'В панели задач появится приложение 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.ЗапуститьКлиентскоеПриложение("ИмяСервера", "ИмяБазы", "РедакцияПрограммы") 'В панели задач появится приложение 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.ЗапуститьКлиентскоеПриложение("ИмяСервера", "ИмяБазы", "РедакцияПрограммы") 'В панели задач появится приложение 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