Различия

Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.

Ссылка на это сравнение

ru:technical_manual:work_via_ole:script_work_via_ole [2012/08/02 10:53]
admin
ru:technical_manual:work_via_ole:script_work_via_ole [2019/09/13 09:35] (текущий)
belkin
Строка 1: Строка 1:
 ====== Сценарии работы с Business Studio через OLE ====== ====== Сценарии работы с Business Studio через OLE ======
 +
 +В приведенных ниже примерах:
 +  * <Имя_сервера_БД> - имя сервера базы данных, 
 +  * <Имя_базы> - название базы данных, 
 +  * <Редакция_продукта> - Enterprise, Professional или Cockpit. Редакция продукта должна соответствовать имеющейся лицензии, иначе запуск приложения не удастся.
  
 ===== Пример синхронизации справочника сотрудников с внешним хранилищем ===== ===== Пример синхронизации справочника сотрудников с внешним хранилищем =====
Строка 5: Строка 10:
 Список сотрудников будет находиться в файле MS Excel (Таблица 1). Пример приведен на языке программирования VBA. Список сотрудников будет находиться в файле MS Excel (Таблица 1). Пример приведен на языке программирования VBA.
  
-Таблица 1. Структура файла Excel со списком сотрудников +<startTableBox>
 ^  Фамилия  ^  Имя  ^  Отчество  ^  Дата рождения  ^  р.тел  ^  e-mail  ^ ^  Фамилия  ^  Имя  ^  Отчество  ^  Дата рождения  ^  р.тел  ^  e-mail  ^
 | Иванов | Иван | Иванович | 29.09.1969 | 202-19-00 | name@firma.ru | | Иванов | Иван | Иванович | 29.09.1969 | 202-19-00 | name@firma.ru |
 | Петров | Петр | Петрович | 04.05.1978 | 202-19-01 | name2@firma.ru | | Петров | Петр | Петрович | 04.05.1978 | 202-19-01 | name2@firma.ru |
 +<endTableBox|Таблица 1. Структура файла Excel со списком сотрудников>
  
 +<code>
 Sub СинхронизацияФизЛиц() Sub СинхронизацияФизЛиц()
  
Строка 27: Строка 33:
     ' Инициализации приложения, в качестве параметров передаются имя сервера, название базы,  версия продукта     ' Инициализации приложения, в качестве параметров передаются имя сервера, название базы,  версия продукта
  
-    Set client_app = oleapp.ЗапуститьКлиентскоеПриложение("<Имя_сервера_БД>", "<Имя_базы>", "<Версия_продукта>")+    Set client_app = oleapp.ЗапуститьКлиентскоеПриложение("<Имя_сервера_БД>", "<Имя_базы>", "<Редакция_продукта>")
  
                
Строка 164: Строка 170:
  
 End Sub End Sub
 +</code>
  
 ===== Пример создание субъекта и работа с ним ===== ===== Пример создание субъекта и работа с ним =====
  
 +<code>
 Sub ДругиеПримеры() Sub ДругиеПримеры()
  
Строка 173: Строка 181:
     ' Инициализации клиентского приложения, в качестве параметров передаются имя сервера, название базы,  версия продукта     ' Инициализации клиентского приложения, в качестве параметров передаются имя сервера, название базы,  версия продукта
  
-    Set Client_app = oleapp.ЗапуститьКлиентскоеПриложение("<Имя_сервера_БД>", "<Имя_базы>", "<Версия_продукта>")+    Set Client_app = oleapp.ЗапуститьКлиентскоеПриложение("<Имя_сервера_БД>", "<Имя_базы>", "<Редакция_продукта>")
  
    
Строка 185: Строка 193:
    Set НовыйСубъект = oleapp.СоздатьОбъект(ВыбранныйСубъект)    Set НовыйСубъект = oleapp.СоздатьОбъект(ВыбранныйСубъект)
  
-    ' Параметры «Название» и «ТипСубъекта» являются обязательными для субъектов+    ' Параметры "Названиеи "ТипСубъектаявляются обязательными для субъектов
  
    НовыйСубъект.Название = "НазваниеНовогоСубъекта"    НовыйСубъект.Название = "НазваниеНовогоСубъекта"
  
-   НовыйСубъект.ТипСубъекта = 1    '1 -- Подразделение; 2 -- Должность (см. Объектную модель)+   НовыйСубъект.ТипСубъекта = 1    '1 - Подразделение; 2 - Должность (см. Объектную модель)
  
    НовыйСубъект.Сохранить    НовыйСубъект.Сохранить
Строка 195: Строка 203:
    
  
-  ‘Если названия субъектов повторяются -- используем для идентификации guid+  ‘Если названия субъектов повторяются - используем для идентификации guid
  
     а = НовыйСубъект.GUID     а = НовыйСубъект.GUID
Строка 366: Строка 374:
  
 End Sub End Sub
 +</code>
 +
 +===== Пример вывода сообщением всех потомков папок с первого уровня справочника Направления Деятельности =====
 +
 +<code>
 +
 +Sub ВыводПотомковПапок()
 +
 +    ' Получение объекта приложения
 +    
 +    Set oleapp = CreateObject("ByteEnterprise.OleApplication")
 +
 +    ' Инициализации приложения, в качестве параметров передаются имя сервера, название базы,  версия продукта
 +    
 +    Set client_app = oleapp.ЗапуститьКлиентскоеПриложение("<Имя_сервера_БД>", "<Имя_базы>", "<Редакция_продукта>")
 +
 +    ' Получаем только папки в корне
 +    
 +    Set Корень = oleapp.ПолучитьКорневуюГруппуКласса("БизнесМодель.НаправленияДеятельности")
 +    
 +    Set Фильтр = Корень.СоздатьФильтр
 +    
 +    Фильтр.ВключатьПодгруппы = False
 +    
 +    Фильтр.РезультатВключает = 9
 +    
 +    Set Папки = Фильтр.Выполнить
 +
 +    'Для каждой папки строим свой подфильтр
 +    
 +    For Счётчик = 1to Папки.КоличествоЭлементов
 +    
 +      Set Папка = Потомки.ПолучитьЭлемент(Счётчик)
 +      
 +      Set Фильтр2 = Папка.СоздатьФильтр
 +      
 +      Фильтр2.ВключатьПодгруппы = False
 +      
 +      Set Потомки = Фильтр2.Выполнить
 +      
 +      For Счётчик2 = 1 to Потомки
 +      
 +    ' И выводим на экран
 +    
 +                Set Потомок = Потомки.ПолучитьЭлемент(Счётчик)
 +                
 +               MsgBox Потомок
 +               
 +     Next Счётчик2
 +     
 +Next Счётчик
 +
 +End Sub
 +
 +</code>
 +
 +====== Возможные сообщения об ошибках ======
 +
 +===== Невозможность соединения с удаленным сервером =====
 +
 +Одна из возможных причин, по которой может появиться сообщение вида "//Ошибка при обращении к службе брокера: Невозможно соединиться с удаленным сервером//", это отсутствие запущенной службы BS_PingHost на локальной машине (см. [[ru/technical_manual/work_via_ole]], а также [[ru/technical_manual/server_install/license_access]]).
 +
 +
  
-  
  
-Здесь <Имя_сервера_БД> -- имя сервера базы данных, <Имя_базы> -- название базы данных, <Версия_продукта> -- Enterprise, Professional или Cockpit. Версия продукта должна соответствовать имеющейся лицензии, иначе запуск приложения не удастся. 
  
-===== Возможные сообщения об ошибках =====+[<contextnavigator>]
  
-==== Невозможность соединения с удаленным сервером ==== 
  
-Одна из возможных причин, по которой может появиться сообщение вида «//Ошибка при обращении к службе брокера: Невозможно соединиться с удаленным сервером//», это отсутствие запущенной службы BS_PingHost на сервере лицензий Business Studio (дополнительно см. [[ru/technical_manual/server_install/license_access]]). 
Актуальные новости, публикации и практики для бизнес-архитекторов и аналитиков
Driven by DokuWiki