Одна из
новых возможностей DIRECTUM 4.9.1 - интеграция с внешней (произвольной) справочной системой. Однако, несмотря на широкие возможности (для вызова справки пишется произвольный код на ISBL, а значит ограничений по форматам и системам нет никаких), реализация
этой функциональности может показаться не вполне очевидной.
Рассмотрим по шагам, как это сделать:
Откроем компоненту "Установки системы" и найдем там запись с именем ExternalHelpSystemSettings:
В поле "Значение" укажем: ExternalHelpReference#Наименование
Остальные данные нам не понадобятся, поэтому их указывать не будем.
В типах справочников создадим новый справочник "ExternalHelpReference". Визуальная форма не важна, лишь бы можно было корректно создавать записи и указывать их наименование.
В событиях типа справочника выберем "Запись - Открытие" и укажем такой текст:
ShowMessage("Вызвана справка по " & Object.Наименование)
Разработка для вызова внешней справки готова
Далее необходимо наполнять справочник строками для конкретных статей справки. Строки необходимо писать в реквизит "Наименование" (именно его мы указали в Установках системы) в формате <Тип компоненты>#<Имя компоненты>[#<Код представления>]#<Код формы>.
Значение для типа компоненты можно узнать из типа ComponentType.
Для примера сделаем строку с данными для справки по форме-списку любого представления в справочнике "Наши организации":
Все готово, можно проверять.
Открываем форму список справочника "Наши организации" и вызываем внешнюю справочную систему:
Получаем сообщение, которое мы указали в коде:
Для вызова реальной справочной системы меняем тестовый код на реальный (в зависимости от типа системы там может быть работа с COM или вызов внешнего приложения).
Кроме того, есть еще одна особенность. Можно сделать запись с содержимым "DefaultContext" (без кавычек). Она будет использоваться тогда, когда не найдена запись справки для конкретной формы.
Код представления сейчас называется "Имя" (смотреть в типе справочника). А коды форм - это "List" и "Card" (без кавычек) для списка и карточки соответственно.
Поменял MB_ASystemName и слетела регистрация! Где вы указали "База разработки Is-Bulder" ? (чтобы в меню отображалось "База разработки Is-Bulder" как на картинке).
Дополенение1: чтобы у пользователей появился этот пункт меню внешней справки необходимо дать права пользователя на просмотр справочника "ExternalHelpReference".
Дополенение2: можно писать якобы произвольный код, но как выяснилось что есть ограничения платформы -
у формы, из которой открывается внешняя справочная система, нет объекта
iApplication, вся работа выполняется через
iConnection. Отсутсвтие
iApplicationнакладывает ограничение – нельзя вызывать фабрики, а соответственно и получить эл. документ.
поэтому супорт передложил два варианта решения проблемы: либо вынести код в сценарий либо писать код через создание нового iLoginPoint, iApplication с параметрами пользователя - тогда всё работает в обоих случаях. Нюанс так сказать
Добрый день
<Тип компоненты>#<Имя компоненты>[#<Код представления>]#<Код формы>
С типом компоненты и именем компоненты понятно, а вот код предсталения и код формы откуда берутся?
В данном случае Код представления, который = List откуда берется?
<ИмяCправочника>#<ИмяРеквизитаИдентификаторОбъекта>#<ИмяРеквизитаЗаголовок>#<ИмяРеквизитаСсылка>
Осталось понять что такое <ИмяРеквизитаЗаголовок>#<ИмяРеквизитаСсылка> - можно пример? и тему можно считать закрытой.
Поменял MB_ASystemName и слетела регистрация! Где вы указали "База разработки Is-Bulder" ? (чтобы в меню отображалось "База разработки Is-Bulder" как на картинке).
Дополенение1: чтобы у пользователей появился этот пункт меню внешней справки необходимо дать права пользователя на просмотр справочника "ExternalHelpReference".
Дополенение2: можно писать якобы произвольный код, но как выяснилось что есть ограничения платформы -
у формы, из которой открывается внешняя справочная система, нет объекта iApplication, вся работа выполняется через iConnection. Отсутсвтие iApplication накладывает ограничение – нельзя вызывать фабрики, а соответственно и получить эл. документ.
ага
поэтому супорт передложил два варианта решения проблемы: либо вынести код в сценарий либо писать код через создание нового iLoginPoint, iApplication с параметрами пользователя - тогда всё работает в обоих случаях. Нюанс так сказать
Добрый день!
Попробую оживить тему.
Подскажите, пожалуйста, возможно ли настроить внешнюю справку для папок?
Со справочниками получилось, а какие параметры нужны для настройки папок или скажем карточек документов?
Если в принципе такое возможно.
Авторизуйтесь, чтобы написать комментарий