Имя: Пароль:
1C
 
Буфер обмена (файл/изображение)
0 kupec
 
21.04.25
11:04
Доброго дня, отправить текст в буфер обмена и получить его из буфера работает и для этого есть несколько вариантов. А вот есть ли возможность поместить в буфер файл, т.е. аналог копировать через контекстное меню в проводнике и также вставить. На данный момент копирую текстом путь к файлу и в другой программе необходимо открывать выбор файла и там вставлять путь, после этого подтверждать выбор, таким образом файл попадает в нужное окно программы (не 1С). Хотелось бы как то программно добавить файл в буфер. Есть ли такие решения для данной платформы и возможны ли вообще такие решения?
1 maxab72
 
21.04.25
11:07
ничего не понял. Можно расшифровать вопрос?
2 kupec
 
21.04.25
11:34
В проводнике нажимаем правой кнопкой по файлу и выбираем копировать, можно ли как то сделать из 1С 7.7 чтоб в буфер попадал файл, чтоб потом можно было в проводнике например нажать ПКМ и выбрать вставить
3 maxab72
 
21.04.25
11:42
При помощи внешних компонент можно.
4 kupec
 
21.04.25
12:43
(3) если не трудно, можно подсказать, какие компоненты и где найти? Заранее спасибо
5 lEvGl
 
гуру
21.04.25
12:58
(4) берем шарп например и там реализовываем, делаем его 1с совместимым и пользуем
с 8.3.25.1366 кажется (или немного раньше) стала доступной работа с буфером напрямую, но только с картинками, текстом и т д, файлы как двоичные данные доступны не были, но были другие варианты, СП расскажет подробнее. Но это 8.3, а вы про 77, если правильно понял, как у вас там без компонент работает буфер с путями и остальным как то не ясно
6 kupec
 
21.04.25
12:50
(5) Что такое шарп?
7 arsik
 
гуру
21.04.25
12:51
8 arsik
 
гуру
21.04.25
12:55
Дипсик предлагает через командную строку
Процедура СкопироватьФайлВБуфер(ДвоичныеДанные)
    ВременныйФайл = "C:\temp\clipboard_data.bin";
    ДвоичныеДанные.Записать(ВременныйФайл);
    Команда = "cmd /c clip < " + ВременныйФайл;
    ЗапуститьПриложение(Команда, 0, Ложь);
КонецПроцедуры
9 lEvGl
 
гуру
21.04.25
13:23
(6) C#
1срр надо думать на ++ делается, то же самое и с шарпом
10 kupec
 
21.04.25
13:03
(8) Если я правильно понимаю, копирует содержимое файла в буфер
11 arsik
 
гуру
21.04.25
13:14
(8) Наверно. Не проверял.
для тебя важна наверно только вот эта строка
Команда = "cmd /c clip < " + ВременныйФайл;

Ну проверить то ты сможешь
12 kupec
 
21.04.25
13:36
Я это находил и проверял, не работает. Хочется именно получить в буфер аналог ПКМ по файлу в проводнике и выбрать копировать
13 Волшебник
 
21.04.25
13:44
Акт 1 - Открыть файл и спозиционироваться на нём
ЗапуститьПриложение("C:\Windows\explorer.exe /select, ПутьКНужномуФайлу")

Акт 2 -
WSH, SendKeys (Ctrl-C)
14 kupec
 
21.04.25
13:48
(13) эмуляция нажатия клавиатуры
АКТ 3 - Закрыть окно выбора файла

Немного не то наверно, хочется без всплывающих окон, но как вариант можно использовать
15 Волшебник
 
21.04.25
13:56
(14) Наверное для пользователя можно ограничиться актом 1, дальше он сам разберётся.
Кнопку назовите "Показать в папке" (как в браузере) или "Расположение файла" (как в результатах поиска Windows)
16 Злопчинский
 
21.04.25
14:03
А нафейхоа это все?
Опишите задачу.
Может не стоит извращаться, с сделать тупо по 1сному - стандартно выбрать файл, запомнить путь, потом где надо - выбрать каталог и по факту выбора каталога скопировать файл через ФС?
17 kupec
 
21.04.25
15:37
1С генерирует файл, этот файл нужно отправить через всевозможные мессенджеры/соцсети. Понятно, что можно нажать выбрать файл и прикрепить его, но например сформировать в 1С, а потом сразу в соцсети нажать "вставить" было бы намного удобней для пользователя.
18 kupec
 
21.04.25
16:39
Может есть у кого то какие мысли?
19 Волшебник
 
21.04.25
16:45
(18) Ограничьтесь пока функционалом (15). Пользователь сможет ещё задействовать перетаскивание файла
20 Мультук
 
гуру
21.04.25
17:04
21 kupec
 
21.04.25
18:22
(20) Гениально, заработало, спасибо
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший