Business Studio: возможности настройки для себя

Автор: Юрий Радченко
Информация об авторе

В данной статье рассматриваются возможности настройки под себя Business Studio как коробочного продукта, а также приведено решение практической задачи с использованием дополнительных возможностей.

Особенности коробочных продуктов

Business Studio является коробочным программным продуктом, т.е. таким, который может использовать любая компания, обращающая внимание на свою систему управления. Продукт создается не на заказ для какой-то отдельной компании.

В подобных продуктах есть свои плюсы и минусы. Если не рассматривать вопрос цены, то сравнение можно отобразить таблицей ниже. Подразумевается, что компания не будет создавать подобный продукт своими силами.

Вариант программного продукта Одна сторона (видится как «плюс») Другая сторона (видится как «минус»)
Коробочный продукт
  • Приобретаем и сразу работаем;
  • Заложенные в продукте идеи могут быть эффективнее используемых в организации;
  • С течением времени можно получать новые функции и новый уровень удобства работы в продукте, даже не прося их;
  • Дополнения к продукту могут быть от третьей стороны. Сторонних разработчиков дополнений к продукту может быть много;
  • В организацию могут прийти люди, уже знающие продукт, — не придется тратить времени на изучение продукта.
  • Надо потратить хоть какое-то время на изучение продукта;
  • Надо перестраиваться под логику работы продукта, если она не совпадает с внутренней логикой организации;
  • Некоторые индивидуальные «привычки» и фантазии останутся не реализованными;
  • Заложенные в продукте идеи могут быть хуже используемых в организации.
Заказное решение
  • Можно получить продукт, максимально приближенный к привычной логике работы организации и желаниям пользователей.
  • Надо тратить время на постановку задачи и приемку работы (тестирование);
  • Развитие продукта идет только после четкого технического задания со стороны заказчика;
  • Продуктом будет заниматься только одна компания, являющаяся исполнителем (автором кода и документации к программе). Обычно заказные решения других компаний не берут в поддержку и развитие;
  • Любой сотрудник обязательно должен будет тратить время на обучение продукту.

Однозначное решение о том, какой вариант выбрать компании, определяется множеством факторов конкретной ситуации. Как говорится: «Что русскому хорошо — то немцу смерть».
В коробочном продукте потребности пользователя удовлетворяются через:

  • Функции, которые нельзя изменить (сейчас не рассматриваем пожелания, которые будут реализованы в будущих версиях продукта);
  • Функции, опции настройки, дополнительные модули, которые позволяют делать «шаг вправо, шаг влево».

Чтобы максимально удовлетворить пользователя, коробочный продукт должен обладать широким набором неизменных функций и удобными возможностями настройки под желания пользователя.

Применительно к Business Studio видится такая картина:

Пояснение к схеме в таблице ниже.

Функциональные возможности Business Studio Комментарий
1 Создание модели бизнес-процессов, организационной структуры, ведение документов и т.д. и т.п. Логика нотаций моделирования и количество графических элементов четко заданы. Добавление новых нотаций пользователем не предусмотрено
2 Извлечение данных из модели: выборка нужных данных, создание регламентов Имеется механизм фильтров;
Регламенты создаются пошагово с использованием Мастера отчетов;
Также регламенты могут создаваться с использованием VBA1, используется редко
3 Опции настройки поведения продукта и данных бизнес-модели Возможна подстройка удобства работы в продукте, подстройка вывода данных в бизнес-процессах (коды процессов не показывать на диаграмме), субъектах (отображать фамилии людей на должностях на организационной диаграмме)
4 MetaEdit: редактор классов и параметров Существующая структура данных бизнес-модели может быть расширена специфическими для конкретной организации характеристиками. Например, физическому лицу можно добавить характеристику — психологический тип, создать отдельный справочник психологического типа
5 Программирование через OLE Business Studio поддерживает технологию OLE. Задумано для задач интеграции с другими системами

Документация в виде методик и руководств (на данный момент это более 900 страниц), а также видео, предоставляют много информации обо всех этих возможностях. И все же, из всех перечисленных вариантов подстройки под себя менее всего описанным на данный момент, как мне кажется, является вопрос изменения бизнес-модели средствами программирования. Удивления это не вызывает, т.к. продукт ориентирован на пользователей, которые в своей массе не являются программистами, а являются аналитиками, руководителями и другими специалистами, которым по роду своей деятельности программирование знать не обязательно.

Поэтому, ниже попробую привести пример решения практической задачи средствами программирования.

Практика

Читая статью Антона Антипина «Система мотивации на основе показателей», я задумался о том, что вручную предстоит создать очень много показателей: как минимум столько же, сколько субъектов (должностей, подразделений). Это делается один раз, но все же.
Как можно уйти от рутины? Задача, которую хотелось решить, не является типовой, поэтому в базовом функционале ее нет. Мне стало интересно, как можно решить задачу и предоставляет ли Business Studio возможность создания такого количества показателей кроме как вручную? Как догадался дорогой читатель, это будет реализовано с помощью программного инструмента.

Постановка задачи

Из вышеуказанной статьи выделяем задачу для Business Studio. Важной для нас является формула формирования заработной платы сотрудника.

Заработная плата = Базовая ставка + Робщ * Базовая ставка,

Где

Заработная плата — показатель, определяющий сумму сотрудника к оплате, руб.;
Базовая ставка — сумма, которую получит сотрудник обязательно, руб.;
Робщ — общая результативность, которая формируется при определении успешности других показателей. Эти другие показатели являются показателями достижения целей всей компании, подразделения, в котором работает сотрудник или процессов, в которых участвует сотрудник.

Таким образом, нам необходимо создать по субъекту:

  • Типа «должность» — 2 показателя;
  • Типа «подразделение» — 1 показатель.

Причем здесь показатель подразделения? Исходя из того, что написано в статье, по вопросам, которыми занимается подразделение, очень часто будет определен показатель, связанный с результативностью, в свою очередь, это влияет потом и на показатели должности (см. Pобщ).

Если предположить, что показатели подразделений уже могли быть созданы ранее, то добавим себе в реализацию опциональное добавление показателей подразделений.

Создавая показатель, так же было бы хорошо указывать не только его название, но и по возможности заполнять другие параметры, дабы сократить время ручной работы.

Представим себе на секундочку, что для оргструктуры демонстрационной модели Business Studio, где 19 Должностей и 7 Подразделений, это 45 показателей. Речь идет только о механической работе создания показателей и заполнения части их параметров. Сколько у вас времени уходит на создание одного показателя с указанным набором параметров?

Итак:

  1. Для каждого субъекта типа «должность» необходимо создать 2 показателя: типа «Базовая ставка» и «Заработная плата». Для удобства эти показатели должны быть в соответствующих папках «Базовая ставка», «Выплата». Если таких папок нет, их необходимо будет создать:
    1. При создании показателя типа «Базовая ставка» заполняются следующие параметры:
      • Название = Базовая ставка + «Название должности»;
      • Единица измерения — рубль;
      • Точность измерения — 2 знака после запятой;
      • Комментарий — заполнять упоминанием того, какими средствами это сделано;
      • Ответственный за ввод значений — начальник отдела кадров (должность и фамилия);
      • Контролирующие лица — должность, для которой и создается показатель, а так же непосредственный начальник этой должности.
    2. При создании показателя типа «Заработная плата» заполняются следующие параметры:
      • Название = Заработная плата + «Название должности»;
      • Единица измерения — рубль;
      • Точность измерения — 2 знака после запятой;
      • Комментарий — заполнять упоминанием того, какими средствами это сделано;
      • Формула = «[Базовая ставка <Должность>] + [Базовая ставка <Должность>] *»;
      • Контролирующие лица — должность, для которой и создается показатель, а также непосредственный начальник этой должности.
  2. Для каждого Субъекта типа «подразделение» необходимо создать один показатель, который должен находиться в папке «Результативность» (если папки нет, ее необходимо создать). Для такого показателя заполняются следующие параметры:
    • Название = Результативность + «Название подразделения»;
    • Комментарий — заполнять упоминанием того, какими средствами это сделано;
    • Ответственный за ввод значений — Начальник подразделения (должность и фамилия);
    • Контролирующие лица — Начальник подразделения (должность и фамилия).

Путь решения

Решение задачи видится через программирование, используя технологию OLE. Т.к. именно это таким образом можно «без рук» изменять данные. Не являясь программистом, я не имею какой-либо установленной среды разработки. Но, естественно, у меня установлен MS Office. Поэтому буду использовать то, что есть под рукой — среду VBA. В институте немного пришлось соприкасаться с VBA, справочной информации по VBA много в интернете.
Чтобы меньше программировать, можно:

  • Часть работ сделать вручную (можно создать заранее необходимые папки, но в данном случае этого сделано не было, для примера);
  • Определить некоторые допущения (границы решения).

Границы решения в приведенном ниже варианте:

  1. За каждой должностью закреплено только одно физическое лицо. Если их несколько, то будет использоваться первое по порядку физическое лицо, закрепленное за должностью;
  2. У каждого подразделения определен руководитель — должность;
  3. В модели нет показателей, названия которых совпадают с названиями папок типа «Базовая ставка», «Выплаты» и «Результативность»;

Код и его выполнение

Чтобы использование OLE было возможно, не забываем зарегистрировать необходимые библиотеки. Регистрация осуществляется путем запуска файла RegisterOleServer.bat, находящегося в папке установки Business Studio, а также необходимо открыть доступ на работу с конкретной базой средствами OLE(более детально в Руководстве администратора, Глава 3).

Создав любой пустой документ в MS Office (например, MS Word) переходим в среду Visual Basic for Application2. В проекте этого файла переходим Microsof Word Objects -> ThisDocument и создаем макрос, код которого приведен ниже. После этого запускаем его (F5) и через несколько секунд получаем задуманное.

В качестве примера была взята демонстрационная база из установки Business Studio.

Читатель может воспользоваться приведенным ниже кодом, внеся в его начало (раздел «Задание необходимых параметров перед запуском») свои данные.

  Sub СозданиеПоказателей()

    'Получение объекта приложения
    Set oleapp = CreateObject("ByteEnterprise.OleApplication")

'=====================================================================================
' Задание необходимых параметров перед запуском.
'*************************************************************************************


    'База данных и редакция Business Studio, с которыми будем работать
    СерверБД = "U6SSQLEXPRESS2005" 'Ваш сервер баз данных может быть другим
    База = "demo_ole" 'В примере используется стандартная демонстрационная база
    РедакцияBS = "Enterprise" 'Enterprise, Professional

    СоздаватьПоказателиПодразделений = True 'True - создавать или False - не создавать
    Const КолВоПапок = 2 'Максимально возможное количество папок, в которых будут создаваться показатели - 3

    'Определяем массив хранения нужных названий папок показателей
    Dim НазваниеПапка(0 To КолВоПапок) As String
        НазваниеПапка(0) = "Базовая папка" 'Название папки, где будут находиться базовые показатели
        НазваниеПапка(1) = "Выплаты" 'Название папки, где будут находиться показатели выплат
        НазваниеПапка(2) = "Результативность" 'Название папки, где будут показатели подразделений
                                               'Если такая папка будет вообще создаваться
                 
    'Определяем массив хранения постоянной части названия создающегося показателя
    Dim ЧастьНазвания(0 To КолВоПапок) As String
        ЧастьНазвания(0) = "Базовая ставка" 'Первая часть названия показателя в папке типа "Базовая ставка"
        ЧастьНазвания(1) = "Заработная плата" 'Первая часть названия показателя в папке типа "Выплаты"
        ЧастьНазвания(2) = "Результативность" 'Первая часть названия показателя в папке типа "Результативность"
       
    'Определяем массив, определяющий будет ли показатель расчетным
    Dim Формула(0 To КолВоПапок) As Boolean
        Формула(0) = False  'Нет формулы в папке типа "Базовая ставка"
        Формула(1) = True   'Есть формула в папке типа "Выплаты"

    'Ответственная должность за ввод значений показателя должности
    ОтветственныйЗаВвод = "Начальник отдела кадров"
       
    'Единица измерений показателя "рубль", согласно данным демонстрационной базы
    ЕдИзмGuid = "791b7dad-ef4e-42ff-b1cc-2fd44ae0c6d4" 'Значение взято из параметра guid
 
'=====================================================================================
'       Запуск Business Studio
'=====================================================================================
       
        'Запустить Business Studio в редакции и базой на сервере, указанными ранее.
        'В Диспетчере задач появится Business Studio. В панели задач приложения не будет видно.

        Set client_app = oleapp.ЗапуститьКлиентскоеПриложение(СерверБД, База, РедакцияBS)
       
'=====================================================================================
'       Определение глобальных переменных
'=====================================================================================
       
        'Определяем количество папок, которые будут использоваться
        'для создания в них показателей

        If СоздаватьПоказателиПодразделений Then
                ВсегоПапокПоказателей = 3 'всего будет использовано 3 папки
           Else
                ВсегоПапокПоказателей = 2 'всего будет использовано 2 папки
        End If
       
        'Определение Корневых групп классов
        Set ПоказателиОПУ = oleapp.ПолучитьКорневуюГруппуКласса("БизнесМодель.ПоказателиBSC")
        Set СиФОПУ = oleapp.ПолучитьКорневуюГруппуКласса("БизнесМодель.СубъектИлиФизлицо")
        Set КонтролирующиеЛицаОПУ = oleapp.ПолучитьКорневуюГруппуКласса("БизнесМодель.КонтролирующиеЛицаПоказателя")

        'Указание единицы измерения показателей
        Set ДенежноеИзмерениеСписок = oleapp.ПолучитьОбъекты("БизнесМодель.ЕдиницыИзмеренияЗатрат", "guid", ЕдИзмGuid)
        Set ДенежноеИзмерение = ДенежноеИзмерениеСписок.ПолучитьЭлемент(0)

        'Ответственный за внесение значений показателя должности
            'Субъект

            Set ОтвВводПоказательДолжнСписок = oleapp.ПолучитьОбъекты("БизнесМодель.Субъекты", "Название", ОтветственныйЗаВвод)
            Set ОтвВводПоказательДолжн = ОтвВводПоказательДолжнСписок.ПолучитьЭлемент(0)
           
            'Физлицо субъекта
            Set ОтвВводПоказательФИОСписок = oleapp.ПолучитьОбъекты("БизнесМодель.Физлица_Субъектов", "Субъект", ОтвВводПоказательДолжн)
            Set ОтвВводПоказательФИО = ОтвВводПоказательФИОСписок.ПолучитьЭлемент(0) 'Первый элемент в списке сотрудников
           
        'Массив для подсчета количества созданных показателей
        Dim СозданоПоказателей(0 To КолВоПапок) As Integer
            СозданоПоказателей(0) = 0
            СозданоПоказателей(1) = 0
            СозданоПоказателей(2) = 0

'=====================================================================================
'       Создание необходимых папок в показателях, если их нет еще
'=====================================================================================

        'Проверка на существование папок, с необходимыми названиями
        'И если их нет, то они будет созданы
        'Предполагается, что показателей с таким же названием нет
         
        'Определяем список, в котором будут храниться папки показателей

        Set ПапкаПоказателя = _
            oleapp.ПолучитьОбъекты("БизнесМодель.ПоказателиBSC", "Название", "Названия этого показателя нет в базе точно!")
       
        i = 0
       
        Do While i < ВсегоПапокПоказателей
           
            'Проверяем наличие папок в показателях с нужными названиями
            Set СписокПапок = oleapp.ПолучитьОбъекты("БизнесМодель.ПоказателиBSC", "Название", НазваниеПапка(i))
            НаличиеПапки = СписокПапок.КоличествоЭлементов

            If НаличиеПапки = 0 Then
               
                    'Если папки нет, то она создается
                    Set ТребуемаяПапка = oleapp.СоздатьГруппу(ПоказателиОПУ)
                        ТребуемаяПапка.Название = НазваниеПапка(i)
                        ТребуемаяПапка.ТипПоказатель = 256 '256 - папка
                    ТребуемаяПапка.Сохранить

                Else
                   
                    'Если папка есть, то берется первая папка с совпадающим названием
                    Set ТребуемаяПапка = СписокПапок.ПолучитьЭлемент(0)

            End If
           
            'Запоминаем созданную или уже существующую папку в списке
            ПапкаПоказателя.ДобавитьОбъект (ТребуемаяПапка)
           
            i = i + 1 ' увеличиваем переменную цикла
           
        Loop

'=====================================================================================
' Создание показателей показатели должностей
'=====================================================================================


    Set Должность = oleapp.ПолучитьОбъекты("БизнесМодель.Субъекты", "ТипСубъекта", 2) '2 - Должность
        КолвоДолжностей = Должность.КоличествоЭлементов

    For i = 0 To КолвоДолжностей - 1
           
            j = 0
           
            Do While j < ВсегоПапокПоказателей - 1 'Минус 1 - чтобы не "захватить" папку показателей подразделений
                                   
            'Создание показателя в папках типа "Базовая ставка" и "Выплаты"
           
            Set Показатель = oleapp.СоздатьОбъект(ПапкаПоказателя(j)) 'Показатель создается в одной из папок
                Показатель.Название = ЧастьНазвания(j) + " " + Должность(i).Название
                Показатель.ЕдиницаИзмерения = ДенежноеИзмерение
                Показатель.Точность = 2
                Показатель.Комментарий = "Создано кодом через OLE"
               
                'Если показатель должен быть расчетным, тогда записываем ему формулу
                'Иначе назначаем ответственного за ввод значений показателя

                If Формула(j) Then
               
                        'ФОРМУЛА = "[Базовая ставка <Должность>] + [Базовая ставка <Должность>] *"
                        Показатель.Формула = _
                        "[" + ЧастьНазвания(0) + " " + Должность(i).Название + "]+" + _
                        "[" + ЧастьНазвания(0) + " " + Должность(i).Название + "]*"
               
                    Else
                   
                        'Создаем СиФ, которое будет ответственным за ввод значений показателя
                        Set СифВвод = oleapp.СоздатьОбъект(СиФОПУ)
                            СифВвод.Субъект = ОтвВводПоказательДолжн
                            СифВвод.Физлицо = ОтвВводПоказательФИО.Физлицо
                        СифВвод.Сохранить

                        Показатель.ОтветственныйСИФ = СифВвод
               
                End If
               
            Показатель.Сохранить 'Необходимо сохранить сейчас - в списках можно ссылаться только на сохраненный показатель

                'Назначение контролирующего лица может быть для сохраненного показателя
                'Контролирующие лица: сама должность и непосредственный начальник должности

                'Контролирует сама должность

                    'ФизЛицо сотрудника на должности
                    Set ФИОДолжностиСписок = oleapp.ПолучитьОбъекты("БизнесМодель.Физлица_Субъектов", "Субъект", Должность(i))
                    Set ФИОДолжности = ФИОДолжностиСписок.ПолучитьЭлемент(0) 'Первый элемент в списке сотрудников должности

                    'Создаем СиФ по текущей должности
                    Set СифКонтрольДолжность = oleapp.СоздатьОбъект(СиФОПУ)
                        СифКонтрольДолжность.Субъект = Должность(i)
                        СифКонтрольДолжность.Физлицо = ФИОДолжности.Физлицо
                    СифКонтрольДолжность.Сохранить

                    'Создаем строку в списке Контролирующих лиц только что созданного показателя
                    Set ПоказательКонтрольДлж = oleapp.СоздатьОбъект(КонтролирующиеЛицаОПУ)
                        ПоказательКонтрольДлж.КонтролирующийСИФ = СифКонтрольДолжность
                        ПоказательКонтрольДлж.Владелец = Показатель
                    ПоказательКонтрольДлж.Сохранить

                'Контролирует руководитель

                    'ФизЛицо руководителя должности
                    Set РукДолжностиСубъект = Должность(i).НепосредственныйРуководитель
                    Set ФИОРуководителяСписок = oleapp.ПолучитьОбъекты("БизнесМодель.Физлица_Субъектов", "Субъект", РукДолжностиСубъект)
                    Set ФИОРуководителя = ФИОРуководителяСписок.ПолучитьЭлемент(0) 'Первый элемент в списке сотрудников руководителя

                    'Создаем СиФ по руководителю должности
                    Set СифКонтрольРуководитель = oleapp.СоздатьОбъект(СиФОПУ)
                        СифКонтрольРуководитель.Субъект = РукДолжностиСубъект
                        СифКонтрольРуководитель.Физлицо = ФИОРуководителя.Физлицо
                    СифКонтрольРуководитель.Сохранить

                    'Создаем строку в списке Контролирующих лиц только что созданного показателя
                    Set ПоказательКонтрольРук = oleapp.СоздатьОбъект(КонтролирующиеЛицаОПУ)
                        ПоказательКонтрольРук.КонтролирующийСИФ = СифКонтрольРуководитель
                        ПоказательКонтрольРук.Владелец = Показатель
                    ПоказательКонтрольРук.Сохранить

                'Показатель должности в папке считается созданным
                               
                    СозданоПоказателей(j) = СозданоПоказателей(j) + 1 'Учет кол-ва созданных показателей
               
                j = j + 1
               
                Loop

    Next i

'=====================================================================================
' Создание показателей показатели подразделений
'=====================================================================================

    If СоздаватьПоказателиПодразделений Then

       Set Подразделение = oleapp.ПолучитьОбъекты("БизнесМодель.Субъекты", "ТипСубъекта", 1) '1 - Подразделение
            КолвоПодразделений = Подразделение.КоличествоЭлементов

       For i = 0 To КолвоПодразделений - 1

            'Создаем показатель в папке типа "Результативность"
            Set Показатель = oleapp.СоздатьОбъект(ПапкаПоказателя(2))
                Показатель.Название = ЧастьНазвания(2) + " " + Подразделение(i).Название
                Показатель.Комментарий = "Создано программно"

                'Назначаем ответственного за ввод значений показателя - руководитель подразделения

                    'Должность и ФИО руководителя подразделения
                    Set ПараметрыПодразделения = Подразделение(i).ПараметрыПодразделения
                    Set РукПодразделенияСубъект = ПараметрыПодразделения.Руководитель
                    Set ФИОРукПодразделенияСписок = oleapp.ПолучитьОбъекты("БизнесМодель.Физлица_Субъектов", "Субъект", РукПодразделенияСубъект)
                    Set ФИОРукПодразделения = ФИОРукПодразделенияСписок.ПолучитьЭлемент(0) 'Первый элемент в списке сотрудников руководителя


                    'Создаем СиФ, которое будет ответственным за ввод значений показателя
                    Set СифВвод = oleapp.СоздатьОбъект(СиФОПУ)
                        СифВвод.Субъект = РукПодразделенияСубъект
                        СифВвод.Физлицо = ФИОРукПодразделения.Физлицо
                    СифВвод.Сохранить

                Показатель.ОтветственныйСИФ = СифВвод
                       
            Показатель.Сохранить 'Необходимо сохранить сейчас - в списках можно ссылаться только на сохраненный показатель
                       
                'Назначение контролирующего лица может быть для сохраненного показателя
                'Контролирует руководитель подразделения

                    'Создаем СиФ по руководителю текущего подразделения
                    Set СифКонтрольДолжность = oleapp.СоздатьОбъект(СиФОПУ)
                        СифКонтрольДолжность.Субъект = РукПодразделенияСубъект
                        СифКонтрольДолжность.Физлицо = ФИОРукПодразделения.Физлицо
                    СифКонтрольДолжность.Сохранить

                    'Создаем строку в списке Контролирующих лиц созданного показателя подразделения
                    Set ПоказательКонтрольДлж = oleapp.СоздатьОбъект(КонтролирующиеЛицаОПУ)
                        ПоказательКонтрольДлж.КонтролирующийСИФ = СифКонтрольДолжность
                        ПоказательКонтрольДлж.Владелец = Показатель
                    ПоказательКонтрольДлж.Сохранить

            'Показатель подразделений считается созданным
                       
            СозданоПоказателей(2) = СозданоПоказателей(2) + 1 'Учет кол-ва созданных показателей

        Next i

    End If

'=====================================================================================
'   Показ результатов в Business Studio и вывод сообщения
'=====================================================================================

    'В панели задач появится приложение
    oleapp.ПоказатьКлиентскоеПриложение

    'Вывод сообщения
    MsgBox "Создано показаталей:" + Chr(13) + _
    "- субъектов в папке '" + НазваниеПапка(0) + "' - " + CStr(СозданоПоказателей(0)) + Chr(13) + _
    "- субъектов в папке '" + НазваниеПапка(1) + "' - " + CStr(СозданоПоказателей(1)) + Chr(13) + _
    "- подразделений в папке '" + НазваниеПапка(2) + "' - " + CStr(СозданоПоказателей(2))
       
End Sub

Код в среде VBA выглядит, как приведено на рисунке ниже.

В результате выполнения кода (F5) будут созданы необходимые показатели. Выглядеть это может, например, как на рисунке ниже.

После сделанного

Как и всё в этом мире, приведенное решение можно оценивать с разных сторон.

С одной стороны (рассматривается как «плюс»):

  • Результат можно получить быстрей, чем создавать все вручную;
  • Полученный результат не содержит ошибок, которые будет допускать человек (пропустил заполнение каких-то данных, ввел неверно);
  • Такой вариант решения может быть заказан у третьей стороны, без доступа к вашей бизнес-модели.

С другой стороны (рассматривается как «минус»):

  • Необходимо минимально знать VBA, методы OLE для Business Studio, иметь представление об объектной модели Business Studio;
  • Необходимо потратить время на написание кода и его тестирование (кстати, количество строк кода может быть сильно сокращено, если будем решать задачу «создать показатели с указанием только их названия»).

Приведенная задача и код является лишь примером.

Ясно одно: помимо широких базовых возможностей, Business Studio позволяет делать существенные шаги вправо и влево для индивидуальной настройки. В итоге это способствует движению компании вперед.

Возможно, читателю хотелось бы узнать взгляд автора на решение других задач с помощью программирования или других возможностей Business Studio? Пишите. Интересные вопросы могут вдохновлять на интересные статьи.

1 VBA (Visual Basic for Application) — язык программирования среды MS Office
2 Word 2003 — Сервис — Макрос — Редактор Visual Basic. Word 2007/2010 — на ленте «Разработчик» большая кнопка «Visual Basic». В свою очередь ленту можно вывести на показ через «Файл — Параметры — Настройка ленты».

Рекомендуемые материалы по тематике