DIRECTUM 4.9.1. Интеграция с внешней справочной системой

17 9

Одна из новых возможностей DIRECTUM 4.9.1 - интеграция с внешней (произвольной) справочной системой. Однако, несмотря на широкие возможности (для вызова справки пишется произвольный код на ISBL, а значит ограничений по форматам и системам нет никаких), реализация этой функциональности может показаться не вполне очевидной.

Рассмотрим по шагам, как это сделать:

  1. Откроем компоненту "Установки системы" и найдем там запись с именем ExternalHelpSystemSettings:


    В поле "Значение" укажем: ExternalHelpReference#Наименование
    Остальные данные нам не понадобятся, поэтому их указывать  не будем.
  2. В типах справочников создадим новый справочник "ExternalHelpReference". Визуальная форма не важна, лишь бы можно было корректно создавать записи и указывать их наименование.
  3. В событиях типа справочника выберем "Запись - Открытие" и укажем такой текст:
    ShowMessage("Вызвана справка по " & Object.Наименование)
  4. Разработка для вызова внешней справки готова smiley
  5. Далее необходимо наполнять справочник строками для конкретных статей справки. Строки необходимо писать в реквизит "Наименование" (именно его мы указали в Установках системы) в формате <Тип компоненты>#<Имя компоненты>[#<Код представления>]#<Код формы>. Значение для типа компоненты можно узнать из типа ComponentType.
  6. Для примера сделаем строку с данными для справки по форме-списку любого представления в справочнике "Наши организации":
  7. Все готово, можно проверять.
  8. Открываем форму список справочника "Наши организации" и вызываем внешнюю справочную систему:
  9. Получаем сообщение, которое мы указали в коде:

     

Для вызова реальной справочной системы меняем тестовый код на реальный (в зависимости от типа системы там может быть работа с COM или вызов внешнего приложения). 

Кроме того, есть еще одна особенность. Можно сделать запись с содержимым "DefaultContext" (без кавычек). Она будет использоваться тогда, когда не найдена запись справки для конкретной формы.

Отредактировал Андрей Подкин, 19.03.2013 в 12:25
Отредактировал Елена Питомцева, 20.03.2013 в 10:18
Отредактировал Елена Питомцева, 29.03.2013 в 09:35
Александр Павлов

Добрый день

<Тип компоненты>#<Имя компоненты>[#<Код представления>]#<Код формы>

С типом компоненты и именем компоненты понятно, а вот код предсталения и код формы откуда берутся? 

В данном случае Код представления, который = List откуда берется?

Андрей Подкин
код предсталения и код формы откуда берутся? 
Код представления сейчас называется "Имя" (смотреть в типе справочника). А коды форм - это "List" и "Card" (без кавычек) для списка и карточки соответственно.
Александр Павлов

<ИмяCправочника>#<ИмяРеквизитаИдентификаторОбъекта>#<ИмяРеквизитаЗаголовок>#<ИмяРеквизитаСсылка>

Осталось понять что такое <ИмяРеквизитаЗаголовок>#<ИмяРеквизитаСсылка> - можно пример? и тему можно считать закрытой.

 

Александр Павлов

Поменял MB_ASystemName  и слетела регистрация! Где вы указали "База разработки Is-Bulder" ? (чтобы в меню отображалось "База разработки Is-Bulder" как на картинке).

Андрей Подкин
Осталось понять что такое <ИмяРеквизитаЗаголовок>#<ИмяРеквизитаСсылка> - можно пример?
Там вроде бы что-то специфическое для веб-доступа. Сходу не скажу. В обычном десктоп-клиенте это не надо, все работает.
 
Где вы указали "База разработки Is-Bulder" ?
Так указано в MB_ASystemName smiley
 
Поменял MB_ASystemName  и слетела регистрация!
Конечно, у меня-то система так зарегистрирована и ключ соответствующий установлен. Специально для справки я ничего не менял.
Александр Павлов

Дополенение1: чтобы у пользователей появился этот пункт меню внешней справки необходимо дать права пользователя на просмотр справочника "ExternalHelpReference".

Дополенение2: можно писать якобы произвольный код, но как выяснилось что есть ограничения платформы - 

у формы, из которой открывается внешняя справочная система, нет объекта iApplication, вся работа выполняется через iConnection. Отсутсвтие iApplication накладывает ограничение – нельзя вызывать фабрики, а соответственно и получить эл. документ.

 

Андрей Подкин
у формы, из которой открывается внешняя справочная система, нет объекта iApplication
Это как? Он nil что ли?
Александр Павлов

ага

поэтому супорт передложил два варианта решения проблемы: либо вынести код в сценарий либо писать код через создание нового iLoginPoint, iApplication с параметрами пользователя - тогда всё работает в обоих случаях. Нюанс так сказать smiley

Каролина Николаенко

Добрый день!

Попробую оживить тему.

Подскажите, пожалуйста, возможно ли настроить внешнюю справку для папок?

Со справочниками получилось, а какие параметры нужны для настройки папок или скажем карточек документов?

Если в принципе такое возможно. 

Авторизуйтесь, чтобы написать комментарий