Перетаскивание объектов и 1С #734746


#0 by Fedor-1971
Доброй пятницы! Есть файл в проводнике, цепляем его мышкой тащим в поле на форме, штатными средствами отрабатываем перенос оного в хранилище и т.д. Тут всё относительно просто.   А вот обратная задача: есть поле на форме, например, картинки, типа цепляем картинку и тащим в проводник (флажок "начало перетаскивания"). Вот тут кроется засада как определить куда пытались перетащить картинку? (как минимум папку, более сложную задачу перетаскивания в другое приложение пока не рассматриваем).
#1 by ДенисЧ
А зачем? Это должна понимать принимающая программа...
#2 by Fedor-1971
Как зачем? Если есть средства отработки "Притащили", надо бы и средства работы с вариантом "Утащили".   Самый простой пример: Справочник контрагентов с прикреплёнными сканами, например, договоров, картинки лежат в папке на диске. Операция Притащили - забирает скан в хранилище, а операция Утащили - берёт конкретный скан и сохраняет в указанную папку. Стандартной реализации просто не получится из-за простой дилеммы "что я хочу положить в папку?" всю информацию о контрагенте или только данный скан. Потому логичнее сделать какой-то обработчик события типа "ПритащилиВоВнешнююПрограмму" с параметрами, что за программа (Проводник, Exel, Word ...) и какие-то специфичные для каждой программы данные о текущем положении (для проводника - папка, для Exel -  текущий лист и т.д.)
#3 by patria0muerte
Странного вы хотите, батенька...
#4 by Fedor-1971
да не странного из проводника файл в Outlook притаскивается, и обратно утаскивается. Хотелось бы и в 1С реализовать нечто подобное
#5 by Fish
"с параметрами, что за программа... и какие-то специфичные для каждой программы данные" - А ты в курсе, что различных программ неограниченное количество?
#6 by Fedor-1971
в курсе, как минимум сама программа, а текущее состояние - это просто мечта (есть - хорошо, для стандартных встроенных в винду, нет сами разберёмся)
#7 by Fedor-1971
в данном контексте окно в котором отпустили мышку. Как-то коряво получится, если приНачалеПеретаскивания придётся запустить мониторилку Куда собственно притащили и потом сгенерить внешнее событие ПритащилиВотСюда.   Хотя, надо посмотреть , может и возникает какое-то внешнее событие при отпускании мышки, а я про него просто не знаю.
#8 by D_E_S_131
"ОкончаниеПеретаскивания" не дает сделать нужное? А вообще так бы для чего нужен был ДиалогВыбораФайла, если можно все взять и так просто перетащить.
#9 by Fedor-1971
нет, оно отрабатывает только внутри 1С (это проверил сразу). Можно и просто кнопку сделать ПоложитьВПапку, но попробуй объясни заказчику "Притащить могу, а вот вытащить нет"
#10 by Fedor-1971
9+ тогда нужно делать один интерфейс: Присоединяем через ВыборФайла и выгружаем через него-же.
#11 by Господин ПЖ
нельзя просто так взять и перетащить
#12 by Fish
"попробуй объясни заказчику "Притащить могу, а вот вытащить нет"" - заказчики тупые или объяснять не умеешь?
#13 by Fedor-1971
это понятно, что нужен обработчик, только к чему его привязать? Умею, сам задумался.
#14 by Torquader
Вообще-то, в системе никто не следит за тем, кто принимает перетаскивание - отправляющий заявляет, что перетаскивание начато и заявляет форматы, которые он готов передать принимающему, а нужный формат из списка выбирает принимающий. То есть вы можете заявить файл с данными для перетаскивания - и не важно - куда потащат - будет или получение файла - или отказ.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям