Различия

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

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

ru:technical_manual:work_via_ole:script_work_via_ole [2012/08/03 12:51]
belkin [Невозможность соединения с удаленным сервером]
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>
  
- +===== Пример вывода сообщением всех потомков папок с первого уровня справочника Направления Деятельности =====
  
-Здесь &ltмя_сервера_БД> -- имя сервера базы данных, <Имя_базы-- название базы данных, <Версия_продукта> -- Enterprise, Professional или CockpitВерсия продукта должна соответствовать имеющейся лицензии, иначе запуск приложения не удастся.+<code> 
 + 
 +Sub ВыводПотомковПапок() 
 + 
 +    ' Получение объекта приложения 
 +     
 +    Set oleapp = CreateObject(&quot;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>
  
 ====== Возможные сообщения об ошибках ====== ====== Возможные сообщения об ошибках ======
Строка 375: Строка 434:
 ===== Невозможность соединения с удаленным сервером ===== ===== Невозможность соединения с удаленным сервером =====
  
-Одна из возможных причин, по которой может появиться сообщение вида «//Ошибка при обращении к службе брокера: Невозможно соединиться с удаленным сервером//», это отсутствие запущенной службы BS_PingHost на локальной машине (см. [[ru/technical_manual/work_via_ole]], а также [[ru/technical_manual/server_install/license_access]]).+Одна из возможных причин, по которой может появиться сообщение вида "//Ошибка при обращении к службе брокера: Невозможно соединиться с удаленным сервером//", это отсутствие запущенной службы BS_PingHost на локальной машине (см. [[ru/technical_manual/work_via_ole]], а также [[ru/technical_manual/server_install/license_access]]). 
 + 
 + 
 + 
 + 
 + 
 +[<contextnavigator>] 
 + 
Актуальные новости, публикации и практики для бизнес-архитекторов и аналитиков
Driven by DokuWiki