Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.
ru:technical_manual:work_via_ole:script_work_via_ole [2012/08/14 16:44] 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. Редакция продукта должна соответствовать имеющейся лицензии, иначе запуск приложения не удастся. | ||
===== Пример синхронизации справочника сотрудников с внешним хранилищем ===== | ===== Пример синхронизации справочника сотрудников с внешним хранилищем ===== | ||
Строка 11: | Строка 16: | ||
<endTableBox|Таблица 1. Структура файла Excel со списком сотрудников> | <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> | ||
- | + | ===== Пример вывода сообщением всех потомков папок с первого уровня справочника Направления Деятельности ===== | |
- | Здесь <Имя_сервера_БД> -- имя сервера базы данных, <Имя_базы> -- название базы данных, <Версия_продукта> -- Enterprise, Professional или Cockpit. Версия продукта должна соответствовать имеющейся лицензии, иначе запуск приложения не удастся. | + | <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> | ||
====== Возможные сообщения об ошибках ====== | ====== Возможные сообщения об ошибках ====== | ||
Строка 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>] | ||
+ |