Программная работа с буфером обмена https://wonderland.v8.1c.ru/blog/programmnaya-rabota-s-buferom-obmena/ планируется в версии 8.3.24, а что делать если нужно получить доступ к данным буфера обмена в более ранних версиях платформы?
Для этого воспользуемся библиотекой внешних компонент VanessaExt которая является составной часть инструмента тестирования прикладных решений Vanessa Automation, одной из возможностей которой является взаимодействие с буфером обмена.
1. Создать внешнюю обработку «1С Буфер обмена».
Для тестового примера создадим внешнюю обработку, в которую добавим необходимый функционал для работы с текстом из буфера обмена, в качестве исходной базы данных можно использовать любую.
2. Скачать библиотеку VanessaExt.
Скачиваем актуальный релиз библиотеки по адресу https://github.com/lintest/VanessaExt/releases, (на момент написания заметки это 1.3.9.10), нас интересует файл AddIn.zip.
3. Добавить макет в обработку «1С Буфер обмена».
Добавляем файл AddIn.zip в качестве макета внешней обработки, тип макета «Двоичные данные»:

4. Добавить форму и команду «ТекстИзБуфераОбмена».
Добавляем форму обработки, в которой добавляем команду «ТекстИзБуфераОбмена» и перетаскиваем ее на форму.
5. Добавить переменные модуля.
В модуль формы добавляем область переменных и необходимые переменные:
#Область ОписаниеПеременных &НаКлиенте Перем ИдентификаторКомпоненты, ВнешняяКомпонента; #КонецОбласти
6. Добавить реквизит «МестоположениеКомпоненты».
В реквизиты формы добавим «МестоположениеКомпоненты», тип строка:

7. Обработчик «ПриСозданииНаСервере».
Для формы определяем обработчик «ПриСозданииНаСервере», со следующим кодом:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
МакетКомпоненты = РеквизитФормыВЗначение("Объект").ПолучитьМакет("VanessaExt");
МестоположениеКомпоненты = ПоместитьВоВременноеХранилище(МакетКомпоненты, УникальныйИдентификатор);
КонецПроцедуры
8. Обработчик «ПриОткрытии».
Для формы определяем обработчик «ПриОткрытии», со следующим кодом:
&НаКлиенте Процедура ПриОткрытии(Отказ) ИдентификаторКомпоненты = "_" + СтрЗаменить(Новый УникальныйИдентификатор, "-", ""); ВыполнитьПодключениеВнешнейКомпоненты(Истина); КонецПроцедуры
9. Код подключения внешней компоненты.
В модуль формы добавим код для подключения внешней компоненты:
#Область СлужебныеПроцедурыИФункции
&НаКлиенте
Процедура ВыполнитьПодключениеВнешнейКомпоненты(ДополнительныеПараметры) Экспорт
НачатьПодключениеВнешнейКомпоненты(
Новый ОписаниеОповещения("ПодключениеВнешнейКомпонентыЗавершение", ЭтаФорма, ДополнительныеПараметры),
МестоположениеКомпоненты, ИдентификаторКомпоненты, ТипВнешнейКомпоненты.Native);
КонецПроцедуры
&НаКлиенте
Процедура ПодключениеВнешнейКомпонентыЗавершение(Подключение, ДополнительныеПараметры) Экспорт
Если Подключение Тогда
ВнешняяКомпонента = Новый("AddIn." + ИдентификаторКомпоненты + ".ClipboardControl");
ИначеЕсли ДополнительныеПараметры = Истина Тогда
ОписаниеОповещения = Новый ОписаниеОповещения("ВыполнитьПодключениеВнешнейКомпоненты", ЭтаФорма, Ложь);
НачатьУстановкуВнешнейКомпоненты(ОписаниеОповещения, МестоположениеКомпоненты);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
10. Обработчик команды «ТекстИзБуфераОбмена».
Добавим обработчик для команды «ТекстИзБуфераОбмена» на клиенте, со следующим кодом:
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ТекстИзБуфераОбмена(Команда)
ОписаниеОповещения = Новый ОписаниеОповещения("ПолученТекстБуфераОбмена", ЭтотОбъект);
ВнешняяКомпонента.НачатьПолучениеТекст(ОписаниеОповещения);
КонецПроцедуры
&НаКлиенте
Процедура ПолученТекстБуфераОбмена(Значение, ДополнительныеПараметры) Экспорт
Сообщить(Значение);
КонецПроцедуры
#КонецОбласти
Пробуем открыть внешнюю обработку в пользовательском режиме, в сообщении безопасности, разрешаем подключить исполнимые бинарные файлы, должно появится сообщение «Внешняя компонента успешно установлена», после этого жмем кнопку «Текст из буфера обмена»:

Примечание: В буфере обмена должен быть именно текст.
Дополнительная информация:
- Подробная информация как установить и подключить внешнюю компоненту, можно найти по адресу https://github.com/lintest/VanessaExt/blob/develop/Docs/README.md.
- Подробные примеры работы с внешней компонентной VanessaExt можно увидеть во внешней обработке VanessaExt.epf, скачать которую можно по ссылке https://github.com/lintest/VanessaExt/releases.
- Версия платформы: 1С:Предприятие 8.3 (8.3.21.1393).
- Исходные коды доступны в репозитории на GitHub.
- Желтый кот https://pprosalov.artstation.com/projects/rP8eJ
Хочу обратить ваше внимание на боковую панель, где представлены ссылки на интересные git репозитории для разработчиков 1С.
