Алгоритм работы:
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);
КонецЕсли;
КонецФункции
&НаКлиенте
Процедура ПерейтиПоНавигационнойСсылкеПриемника(Команда)
НавигационнаяСсылкаПриемника = ПолучитьНавигационнуюСсылкуПриемника(Объект.СправочникСсылка,Объект.ПланОбменаСсылка);
Если ЗначениеЗаполнено(НавигационнаяСсылкаПриемника) Тогда
ПерейтиПоНавигационнойСсылке(НавигационнаяСсылкаПриемника);
КонецЕсли;
КонецПроцедуры