Ранее я решал подобную задачу для частного случая идентичных конфигураций:
Копирование документов через буфер обмена.
Этот кейс походил больше на учебный, так как в нем были интересные технические детали, но его дорого было использовать в практической работе.
Есть простой способ. Все мы часто используем обработку ВыгрузкаЗагрузкаДанныхXML. Она обменивает данные через файл, который хранит XML-данные.
Оказалось, что переделать ее так, чтобы данные ходили не через файл, а буфер - достаточно просто.
Я производил эксперимент с обработкой 8.3.
Что нужно сделать?
1. Открываем файл обработки. Заходим в модуль формы. В самом конце модуля формы добавляем следующий код:
&НаКлиенте
Функция УстановитьТекстВБуферОбмена(Текст)
Объект1 = Новый COMОбъект("htmlfile");
Объект1.ParentWindow.ClipboardData.Setdata("Text", Текст);
Возврат Текст;
КонецФункции
&НаКлиенте
Функция ПолучитьТекстБуфераОбмена()
Объект1 = Новый COMОбъект("htmlfile");
//Сообщить(Объект.ParentWindow.ClipboardData.Getdata("Text"));
Возврат Объект1.ParentWindow.ClipboardData.Getdata("Text");
КонецФункции
2. Ищем на форме кнопку "Выгрузить данные". В процедуре "ВыгрузитьДанные" меняем код на следующий (старый код закомментарен, а ниже идет новый):
ИмяФайла = ?(Объект.ИспользоватьФорматFastInfoSet, Нстр("ru = 'Файл выгрузки.fi'"), Нстр("ru = 'Файл выгрузки.xml'"));
// ПолучитьФайл(АдресФайлаВоВременномХранилище, ИмяФайла);
ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресФайлаВоВременномХранилище);
XMLФайл = ПолучитьСтрокуИзДвоичныхДанных(ДвоичныеДанные, КодировкаТекста.UTF8);
УстановитьТекстВБуферОбмена(XMLФайл);
3. Ищем на форме кнопку "ЗагрузитьДанные". В процедуре "ЗагрузитьДанныеЗавершение" меняем код на следующий (старый код закомментарен, а ниже идет новый):
// ЗагрузитьДанныеНаСервере(Адрес, Файл.Расширение);
XMLФайл = ПолучитьТекстБуфераОбмена();
ЗагрузитьДанныеНаСервере(Адрес, XMLФайл);
4. Это все. Для эксперимента я проверил работоспособность на константе. Получилось.
В данном случае нам все равно придется указывать файл для выгрузки и загрузки, но переделать обработку так, чтобы этого не было - не сложно. Моей задачей было просто провести эксперимент.
Если мы имеем дело с небольшим количеством данных, то это удобно, а если объединить мою предыдущую разработку, где можно было выделять документы стрелками, а потом копировать, со стандартной обработкой 1С, то может получиться интересный инструмент.
Вступайте в нашу телеграмм-группу Инфостарт