Фирма «1С» сообщила, что в технологической платформе 8.3.24 будет реализована работа с буфером обмена из встроенного языка. Заметка, посвященная новой функциональности, размещена в официальном технологическом блоге «Заметки из Зазеркалья».
Что представляет собой программная работа с буфером обмена
Ранее для программной работы с буфером обмена приходилось использовать внешние компоненты, COMОбъект("htmlfile") или обращение к свойству ClipboardData объекта Документ.ParentWindow служебного элемента формы с типом ПолеHTMLДокумента.
Начиная с 8.3.24 программная работа с буфером обмена будет гораздо удобнее. В заметке на «Зазеркалье» говорится, что с версии платформы 8.3.24 в буфер обмена можно будет программно помещать и получать из него:
- текст;
- картинку;
- документ HTML, а также данные в формате MathML или XML.
Кроме этого, будет доступно программное получение из буфера обмена файла в виде двоичных данных. Однако из-за особенностей работы API браузеров и ОС получение файлов будет отличаться от других форматов – это будет работать только через события.
«В объект ФормаКлиентскогоПриложения и в клиентское приложение будут добавлены события ПриВставкеИзБуфераОбмена(). Эти события будут вызываться при вставке картинки или файла (файлов) из буфера обмена. В частности, в обработчике события ПриВставкеИзБуфераОбмена() у формы можно будет, например, разобрать содержимое файла, содержащегося в буфере и, если файл содержит документ в нужном нам формате, поместить данные из файла в соответствующие поля формы», – говорится в заметке на «Зазеркалье».
Новые возможности добавлены в релиз 8.3.24 по многочисленным просьбам пользователей. Напомним, что отправлять свои пожелания по развитию 1С можно специальному telegram-боту.
Возможные сценарии использования новой функциональности
Разработчики считают, что программная работа с буфером обмена позволяет реализовать большое количество новых сценариев и сделать работу пользователей более эффективной. В качестве примеров сценариев приводят такие:
Стр = Ждать СредстваБуфераОбмена.ПолучитьДанныеАсинх(СтандартныйФорматДанныхБуфераОбмена.Текст);
ДД = Ждать СредстваБуфераОбмена.ПолучитьДанныеАсинх("application/mathml+xml");
Если ДД = Неопределено Тогда
Возврат;
КонецЕсли;
Стр = ПолучитьСтрокуИзДвоичныхДанных(ДД);
Стр = "Текст";
ЭлементБО = Новый ЭлементБуфераОбмена(СтандартныйФорматДанныхБуфераОбмена.Текст, Стр);
Сообщить(Ждать СредстваБуфераОбмена.ПоместитьДанныеАсинх(ЭлементБО));
Комментарий эксперта: включаем фантазию
Мы спросили у Артура Аюханова, ИТ-директора компании Инфостарт, какие возможные сценарии программной работы с буфером обмена будут востребованы разработчиками. Артур перечислил следующие варианты использования:
- нативная\простая вставка картинок из приложений\браузера в формы 1С;
- упрощение\ускорение обмена различной информацией между приложениями на машине пользователя;
- вставка сложных данных из MS Excel, Гугл-таблиц.
«Используя возможности «из коробки», можно будет отказаться от сохранения промежуточного файла и манипуляций с этим файлом»
Артур даже в шутку предложил реализовать через буфер обмена простую интеграцию в формате EnterpriseData между соседними базами – например, между БП и ЗУП, или БП и УТ.
Или для упрощения интерфейса 1С использовать резидентный формат, когда специальная форма, открытая пользователем, включает анализ буфера обмена, и в случае появления в нем данных определенного формата сразу загрузит их в систему (преобразует к нужному виду и т.п.).
Расскажите в комментариях, какие возможности работы с буфером обмена будут востребованы в вашей деятельности?