Переход по навигационной ссылке Приемника (по типовому механизму КД)


Скрестим механизм конвертации данных с Получить навигационную ссылку. Назначение: Открыть форму справочника/документа в другой БД.

Алгоритм работы:
1. На основании выбранного плана обмена получаем строку подключения, предварительно необходимо настроить (см. картинки)
2. На основании выбранной ссылке получаем GUID Приемника и его тип из Регистра сведений "СоответствияОбъектовИнформационныхБаз"
2.1. Записи в регистра сведений "СоответствияОбъектовИнформационныхБаз" добавляются автоматически посредством регламентного обмена.
3. Получаем навигационную ссылку и вызываем соответствующий метод.

Ограничения:
1. Только управляемые формы.
2. Наличие регламентного обмена между конфигурациями

При желании можно сделать внешнюю обработку для любого справочника/документа, останется вопрос только с выбором узла.
Тем самым фактически размоется грань между приложениями, так как позволит безшовно переходить от одной 1С в другую.
При развитии идеи не будет необходимости переносить лишние реквизиты, а форму элемента можно вообще не делать, а открывать в другой 1С, оставив только форму списка.

Проверено:
Платформа: 8.3.10.2580
Конфигурации: Типовые конфигурации соответствующие требованиям:
— Используется механизм Конвертацию данных 2.0 с регистром сведений "Соответствия объектов информационных баз"
— Обе конфигурации запускаются в режиме управляемого приложения

Код:

&НаСервереБезКонтекста
Функция ПолучитьНавигационнуюСсылкуПриемника(УникальныйИдентификаторИсточника,УзелИнформационнойБазы)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторПриемника КАК ГУИД_Приемника,
| НастройкиТранспортаОбмена.COMИмяСервера1СПредприятия,
| НастройкиТранспортаОбмена.COMИмяИнформационнойБазыНаСервере1СПредприятия,
| СоответствияОбъектовИнформационныхБаз.ТипПриемника
|ИЗ
| РегистрСведений.СоответствияОбъектовИнформационныхБаз КАК СоответствияОбъектовИнформационныхБаз
|  ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиТранспортаОбмена КАК НастройкиТранспортаОбмена
|  ПО СоответствияОбъектовИнформационныхБаз.УзелИнформационнойБазы = НастройкиТранспортаОбмена.Узел
|ГДЕ
| СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторИсточника = &УникальныйИдентификаторИсточника
| И СоответствияОбъектовИнформационныхБаз.УзелИнформационнойБазы = &УзелИнформационнойБазы";

Запрос.УстановитьПараметр("УзелИнформационнойБазы", УзелИнформационнойБазы);
Запрос.УстановитьПараметр("УникальныйИдентификаторИсточника", УникальныйИдентификаторИсточника);

РезультатЗапроса = Запрос.Выполнить();

Выборка = РезультатЗапроса.Выбрать();

Если Выборка.Следующий() Тогда
Возврат "e1c://server/"+Выборка.COMИмяСервера1СПредприятия+"/"+Выборка.COMИмяИнформационнойБазыНаСервере1СПредприятия+"#e1cib/data/"+
СтрЗаменить(Выборка.ТипПриемника,"Ссылка.",".")+"?ref="+
Сред(Выборка.ГУИД_Приемника,20,4)+  Сред(Выборка.ГУИД_Приемника,25,12)+Сред(Выборка.ГУИД_Приемника,15,4)+ Сред(Выборка.ГУИД_Приемника,10,4)+ Лев(Выборка.ГУИД_Приемника,8);
КонецЕсли;
КонецФункции

&НаКлиенте
Процедура ПерейтиПоНавигационнойСсылкеПриемника(Команда)
НавигационнаяСсылкаПриемника = ПолучитьНавигационнуюСсылкуПриемника(Объект.СправочникСсылка,Объект.ПланОбменаСсылка);
Если ЗначениеЗаполнено(НавигационнаяСсылкаПриемника) Тогда
ПерейтиПоНавигационнойСсылке(НавигационнаяСсылкаПриемника);
КонецЕсли;
КонецПроцедуры

 

2 Comments

  1. meganibler

    Нечто подобное используется у меня, для перехода в интегрированную базу Документооборота

    только идентификаторы интегрированных объектов хранятся в регистре ОбъектыИнтегрированныеС1СДокументооборотом

    ссылку для перехода готовит клиентская Функция ПолучитьСсылкуМоникера(ИмяОбъектаДокументооборот, ДокументID) Экспорт

    Пример результата возврата функции: //e1c://server/srv1c.lan.services.csm.nov.ru/docdemo#e1cib/data/Справочник.ВнутренниеДокументы?ref=80d394de802257ad11e8155da6a29958

    запуск перехода через ЗапуститьПриложение(Моникер); если база уже открыта — открывается форма объекта в ДО, если база не открыта — предлагается сначала залогиниться

    Reply
  2. milanse

    Единственный недостаток — если конфигурация приемник уже открыта — окно с формой объекта не активируется, а просто мигает в панели задач.

    Как бы его еще активировать ?

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *