Имя: Пароль:
1C
 
Файл в буфер обмена
0 picom
 
18.03.25
08:13
Картинку можно на 8.3.24 загнать в буфер так

    //Попробуем вставить в буфера обмена
    ФайлКартинки = Новый ДвоичныеДанные("C:\Users\MistaUser\Pictures\gory-reka-park-yosmit_1920x1080.jpg");
    Картинка  = Новый Картинка(ФайлКартинки);    
    ДляБуфера = Новый ЭлементБуфераОбмена (СтандартныйФорматДанныхБуфераОбмена.Картинка, Картинка);
    СредстваБуфераОбмена.ПоместитьДанныеАсинх (ДляБуфера);

А как загнать туда файл PDF?
1 arsik
 
гуру
18.03.25
08:23
Так вот же в мануале
Значение параметра типа Строка должно соответствовать формату MIME-типов. Например, "video/mp4" или "image/svg+xml".

Наверно так
application/pdf
2 picom
 
18.03.25
10:38
что-то не пойму как собрать ...
3 arsik
 
гуру
18.03.25
10:41
(2) Ну йопт. Может как то так?
ФайлПДФ = Новый ДвоичныеДанные("C:\Users\MistaUser\Pictures\gory-reka-park-yosmit_1920x1080.pdf");
ДляБуфера = Новый ЭлементБуфераОбмена ("application/pdf", ФайлПДФ);
СредстваБуфераОбмена.ПоместитьДанныеАсинх (ДляБуфера);
4 picom
 
18.03.25
12:42
еще есть варианты? (3) не работает
5 Мультук
 
гуру
18.03.25
13:04
(0)

А как вы можете закинуть в clipboard файл PDF руками ?
Аналог какой ?

Ctrl+C в проводнике?
Открыть файл в акробате, а дальше Ctrl+A, Ctrl+C ?
6 picom
 
18.03.25
13:35
(5) Давно уже можно взять файл в буфер обмена со стола и кинуть его в почту или приложение ...

С картинкой работает изумительно, надо раскурить файлы.
7 arsik
 
гуру
18.03.25
14:16
(4) Ну видимо недоделали. Смотрел менеджером буфера обмена - если MIME-тип указать строкой - не засовывает 1С данные в буфер.
8 DiMel_77
 
18.03.25
15:11
(7) Нет работает нормально, только результат это двоичные данные.

Т.е. выполнение такого кода позволяет через буфер перенести двоичные данные:

&НаКлиенте
Процедура Проверить(Команда)
	ПроверитьКопированиеВБуфер();
	ПроверитьПолучениеИзБуфера();
КонецПроцедуры

&НаКлиенте
Асинх Процедура ПроверитьКопированиеВБуфер()
	
	ДД = Новый ДвоичныеДанные("d:\Temp\Приложение 7.pdf");
	ДляБуфера = Новый ЭлементБуфераОбмена("application/pdf", ДД);
	
	Обещание = СредстваБуфераОбмена.ПоместитьДанныеАсинх (ДляБуфера);	
	Результат = Ждать Обещание;
	
КонецПроцедуры

&НаКлиенте
Асинх Процедура ПроверитьПолучениеИзБуфера()
		
	Обещание = СредстваБуфераОбмена.ПолучитьДанныеАсинх("application/pdf");	
	Результат = Ждать Обещание; 
	
КонецПроцедуры



Но двоичные данные <> файл
9 arsik
 
гуру
18.03.25
15:23
(8) Ну ХЗ. Менеджер буфера встроенный в Win10 эти данные не видит.
10 DiMel_77
 
18.03.25
15:32
(9) Открыл 2 базы, в одной сделал помещение в буфер, а в другой получение. (т.е. скопировал обработку и закомментировал соответствующие строки вызова процедур). Двоичные данные передались из одной базы в другую через буфер обмена. То есть этот функционал работает не так как стандартное копирование в проводнике...

Тоже смотрел менеджер буфера - не показывает эти данные.
11 Garykom
 
гуру
18.03.25
16:01
(0) не советую пользоваться этой недоделанной штукой
как и ДокументPDF - глючное пока
12 picom
 
18.03.25
18:18
мдаааа
8-ка еще сырая
очень жаль
13 Волшебник
 
18.03.25
19:07
(12) Переходите на 7.7, там уже всё готово из коробки. Сможете PDF-файлы копировать в буфер и сразу нажимать кнопку "Сделать всё"
14 Волшебник
 
18.03.25
19:21
(12) Можете ещё перейти на Golang или Python. Сделайте там конфигурацию (программа+база) для расчёта зарплаты сотрудников. Сможете?
А если не сможете, идите в курьеры! Будете мне пиццу привозить по клику.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший