Пример как можно перетаскивать картинки на форме

26.09.09

Разработка - Работа с интерфейсом

Навеяно обработкой "Рабочий стол" (http://infostart.ru/projects/5466/ ) для 1С:Предприятие, идея алгоритма I_G_O_R, код в собственном исполнении.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
-
.1251549694 6,99Kb
283
283 Скачать (1 SM) Купить за 1 850 руб.

Обработка демонстрирует технологию перемещения картинки на форме. Код простой и понятный, без оптимизации - для простоты восприятия. Может кому и пригодится в повседневной работе :)

При нажатии кнопки "Как рамка", при перетаскивании картинка сохраняет свое первоначальное положение которое меняет только после окончания перетаскивания. Пользователь наблюдает перемещение в виде рамки.

Для перетаскивания, наводим курсор, нажимаем левую кнопку мыши, удерживая ее, производим перемещение объекта путем акта движения руки в заданном головой направлении.

Навеяно обработкой "Рабочий стол" - //infostart.ru/projects/5466/

См. также

Работа с интерфейсом Рабочее место Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Богатый редактор картинок 1С предназначен для обработки изображений в режиме «Предприятие», с возможностью РИСОВАТЬ на них. Поддерживается работа как в обычных формах (толстый клиент) так и на управляемых формах (тонкий клиент). Обработка позволяет редактировать как картинки, хранимые в базе, так и графические файлы с диска на файловой системе. Помимо базовых функций (изменение размеров, преобразование формата, обрезание картинки, повороты и т.п.) – редактор имеет богатый набор инструментов для рисования. Доступна функция вставки изображения из буфера обмена. Объект может быть использован: на стороне клиента, на стороне сервера, из внешнего соединения. Обработка будет особенно полезна тем, кто вносит картинки в базу (изображения номенклатуры, фотографии физических лиц и т.п.). Функционал реализуется с использованием JavaScript и бесплатного ПО ImageMagick (без использования внешних компонент).

6000 руб.

16.01.2015    62985    44    59    

82

Работа с интерфейсом Программист Платформа 1С v8.3 Конфигурации 1cv8 1С:ERP Управление предприятием 2 Платные (руб)

Обработка предназначена для создания и управления дашбордами.

2400 руб.

29.06.2020    18855    26    6    

41

Работа с интерфейсом Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Редактор графов в 1С - внешний отчет, который формирует графы на основе таблицы значений, используя рисунки табличного документа. Есть возможность добавления, редактирования объектов графа и выгрузки результата в таблицу значений.

1500 руб.

06.10.2020    10224    7    7    

10

WEB-интеграция Универсальные функции Механизмы платформы 1С Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

При работе с интеграциями рано или поздно придется столкнуться с получением JSON файлов. И, конечно же, жизнь заставит проверять файлы перед тем, как записывать данные в БД.

28.08.2023    14730    YA_418728146    7    

166

Пакетная печать Печатные формы Адаптация типовых решений Универсальные функции Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Абонемент ($m)

Расширение для программ 1С:Управление торговлей, 1С:Комплексная автоматизация, 1С:ERP, которое позволяет распечатывать печатные формы для непроведенных документов. Можно настроить, каким пользователям, какие конкретные формы документов разрешено печатать без проведения документа.

2 стартмани

22.08.2023    3580    56    progmaster    8    

4

Работа с интерфейсом Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

"MVC плохо применима в 1С" - познакомьтесь с моделью состояния и, возможно, ваше мнение поменяется! Представленное решение является эволюционным развитием идеи реализации MVC для 1С. В новой версии добавлены DSL для описания модели состояния, а также параметризация свойств параметров и элементов формы.

1 стартмани

05.07.2022    5749    kalyaka    6    

33
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Шёпот теней 1782 29.08.09 21:59 Сейчас в теме
... убИл ...
... вОт ...
..... ))) ....
2. WKBAPKA 215 29.08.09 22:00 Сейчас в теме
3. Шёпот теней 1782 29.08.09 22:02 Сейчас в теме
I_G_O_R то же плюс поставил в "Настройка и оптимизация" ...
4. Шёпот теней 1782 29.08.09 22:03 Сейчас в теме
... ммм ...
... это ВАМ спАсибо ...
... удачи ...
5. WKBAPKA 215 29.08.09 22:56 Сейчас в теме
я только не учитывал границы формы, но это не сложно, одно условие и выравнивание по границе - 2 пункта. Так, привел для примера. Но возможности идея открывает огромные. I_G_O_R большой респект за идею.
6. Шёпот теней 1782 29.08.09 23:28 Сейчас в теме
WKBAPKA и I_G_O_R

... гениально чЁ ужЖж и говорить ...

... с уважением "Шёпот теней" ...
7. WKBAPKA 215 29.08.09 23:38 Сейчас в теме
Шёпот согласись, идея рабочего стола лежала на поверхности. Каждый из нас работал с рабочим столом каждый день и до Светозора не подумал, что можно такое же сделать в 1С. Говорят, что в наше время что либо новое придумать нельзя, ан нет, можно, еще как можно :)
тебе спасибо за плюс, думаю что твой рабочий стол теперь будет еще лучше!
10. Шёпот теней 1782 30.08.09 00:39 Сейчас в теме
(7) ... нууу.... не думаю...
... и не потому, что "упираюсь" - просто не понимаю необходмости и нужности и удобства в "двигании" значков ...
... вОООбщем это дело вкуса ...

... а рабочих столов в 1С полно ... посмотрите БП, например, - просто они реализованы в манере 1С - вОООбщем дело вкуса ...

... мне в "моём" столе нравятся именно тем что описано в описании ... а передвижение значков мало интересует ...

... идея I_G_O_R и ваше воплощение - отлично ... я восхощЁн ...
8. CheBurator 2712 29.08.09 23:57 Сейчас в теме
идея рабочего стола меня бесит до крайности.
sea-man; Evg-Lylyk; +2 Ответить
40. director04 3659 02.09.09 07:30 Сейчас в теме
(8) Когда чела "бесит" - это от лукавого.... У каждого свои фобии.
9. WKBAPKA 215 30.08.09 00:29 Сейчас в теме
ну мало ли что меня бесит. идея очень шикарная. особенно, с меню в УПП и УТП :)
11. I_G_O_R 69 30.08.09 01:55 Сейчас в теме
Я уже говорил, что это не моя идея, а Светозора, так что спасибо ему. У него код был закрыт, но модуль формы нельзя закрыть, я отладчиком обнаружил, что на форме появляются 8 невидимых картинок и все стало ясно, а код написать дело техники. Код был закрыт, я его разгадал и рассказал всем, а вы мне плюсики ставите, как-то не хорошо, не нужны мне такие плюсики.
12. Шёпот теней 1782 30.08.09 09:50 Сейчас в теме
(11) ... хорошо ... забрал .... было бы сказано ... вот ...
15. Ish_2 1112 31.08.09 11:41 Сейчас в теме
(12) Шепот , нас обманули ! См. (14)
16. Шёпот теней 1782 31.08.09 12:15 Сейчас в теме
(15) ... на рынке всегда два умных дурака ... и оба радуются ... )))

... данное решение мне понравлось ...

... понимаю что их может быть много ... решение с табличном полем ? - согласен ...

... но есть идея а есть реализация ... то, что кажется лёгким изначальным - становится трудным при реализации ...

... рабочий стол - штатными средствами - при 100 % заполнении рисунком вЕЕЕсьма "тормознутое" дело ...

... повторюсь: дело не столько в красоте сколько в практичности и не обходимости ... поэтому изначально надо задаться вопросом для "ЧЕГО" делаем "рабочий стол" ... "свой" я делал из описанной в описании необходимости ...

... поэтому дискуссия должна протекать в русле не "как" - т.к. способов реализации много" а для "чего" - тогда вопрос методов реализации почти отпадёт ...

... вот ...
17. Ish_2 1112 31.08.09 12:22 Сейчас в теме
(16) Бесполезность идеи "рабочего стола" не вызывает сомнений.
Речь идет лишь о технологическом вопросе : о подходе к решению проблемы "перетаскивания" и др.
18. Шёпот теней 1782 31.08.09 13:10 Сейчас в теме
(17) ... бесполезность ... ? ... нуу... нууу... идея летает в воздухе и не только ... имеет несколько воплощений как от сАмой 1С так и других товарищЧей ...

.. и это не столько "идея" сколько лишь возможность повторить то, что уже прижилось в других системах ... метод аналогии ...

... думаю не стоит своЁ мнение или мнения круга лиц - выдавать как истину ...
... думаю как раз наоОобоОорот что те сложившиеся формы общения интерФейса -будут жить и развиваться - это и "меню" и "значки" и "рабочий стол" и их различные сочетания ...

... другого пока не придумали ...

... или ??? ...

... вот ...
19. Ish_2 1112 31.08.09 13:21 Сейчас в теме
(18)
Уточняю (17) : речь идет не об идее рабочего стола , как таковой , а об
идее такой реализации "рабочего стола", как в текущей теме.
Так вот : также как и моя с табличном полем , так и идея автора темы могут рассматриваться лишь как демонстрации техники программирования.

Применение в бизнес-решениях таких технологий выглядит "чудаковато".
Говорю только от своего имени , разумеется.

Более практичным выглядит подход к построению интерфейса в 8.2.

20. Шёпот теней 1782 31.08.09 14:23 Сейчас в теме
(18) ... принято ... СОгласен ... уважаю твоё мнение ...

.. лично я подерживаю любую идею "рабочего стола" ...

... по поводу "чудаковато"-сти - думается мы начинаем вторгаться в область "вкусов" и "предпочтений" - а тут выяснить истину БЕЗполезно ... )))

... вОт ...
21. Шёпот теней 1782 31.08.09 14:25 Сейчас в теме
в (20) читать первую строку в следующем изложении:

(19) ... принято ... СОгласен ... уважаю твоё мнение ...

... волнуюсьВОТошибаюсь ...
13. WKBAPKA 215 30.08.09 13:40 Сейчас в теме
2(11): Плюсики за то что не поленился. У меня была идея код открыть, да все как то руки не доходили.
Дело в том, что для таких конфигураций как УТП и УПП такие технологии очень сильно облегчают жисть. Если еще добавить более одного рабочего стола, на которых можно группировать ярлыки, очень будет удобно делать интерфейсы.
14. Ish_2 1112 31.08.09 11:30 Сейчас в теме
(11),(13) Я извиняюсь.
Но при втором взгляде предлагамое решение (перетаскивание на "рабочем столе") показалось "диковатым извращением".

На мой взгляд, оказалось гораздо проще , нагляднее, функциональнее использовать следующий подход.

Расположить на форме поле табличного документа ("рабочий стол"). Роль "ярлыков" будут играть рисунки ("текст") табличного документа.

И тогда все операции с "ярлыками - рисунками" (добавление, удаление, перетаскивание, изменения размера, корректировка) будут осуществляться на уровне платформы.

Запретить активизацию пустых ячеек, убрать автоскроллинг и т.д.
можно программно.
22. Шёпот теней 1782 31.08.09 14:51 Сейчас в теме
WKBAPKA
... опять поздравляю: уже "6" ...
... не плохо ))) и рАзговор удАлся ...
... так сказать теория и практика рука об руку ...

... дальнейших удачЬ ...
23. WKBAPKA 215 31.08.09 15:43 Сейчас в теме
использовать поле табличного документа... можно попробывать.... только помоему нельзя сделать подложку, по крайней мере я не нашел такой возможности, и может повылазить куча неприятных нюансов
24. WKBAPKA 215 31.08.09 15:45 Сейчас в теме
т.е. если подложку нельзя сделать тогда это большой минус в таком решении. А с точки зрения реализации соглашусь, очень просто все делается
25. Ish_2 1112 31.08.09 15:48 Сейчас в теме
(24) Что такое "подложка" ?
26. WKBAPKA 215 31.08.09 15:53 Сейчас в теме
27. Ish_2 1112 31.08.09 15:57 Сейчас в теме
(26) Не думал , что это существенно. Ок.Подумаю.

А вообще , после выхода 8.2 предплагаю мы будем с грустью смотреть на эти изыски.
28. WKBAPKA 215 31.08.09 16:23 Сейчас в теме
согласен. но пока 8.2. нет приходиться извращаться.. а прикиньбте, как народ до сих пор извращается на 7.7. ;) и не переходит же на 8.х )
29. I_G_O_R 69 31.08.09 19:09 Сейчас в теме
короче и то фигня и это, мне лично рабочий стол вообще не нужен т.к. я работаю во франче. Клиенты мне за рабочий стол врядли заплатят, а бесплатно работать не хочется. Есть только один плюс: никогда не работал с перетаскиванием, а теперь кое-что умею.
30. WKBAPKA 215 31.08.09 19:29 Сейчас в теме
(29): ага, это верно. но все таки, дело не в самом рабочем столе, а технологии. это дает возможность создавать не страндартные меню. и это плюс, как поется в песне :)
32. Ish_2 1112 31.08.09 21:09 Сейчас в теме
(29) , (31) Согласен с обоими. Новыми знаниями и навыками и полезны такие обсуждения.
31. WKBAPKA 215 31.08.09 19:32 Сейчас в теме
да и самое главное во всем этом, это не стандартные решения. т.е. заставляе взглянуть на многие проблемы с другой стороны.
иногда, то что говорят, нельзя сделать штатными средствами, оказывается можно, и работает достаточно эффективно
33. Ish_2 1112 31.08.09 21:11 Сейчас в теме
(31) А "подложку" я всё-таки прикину как сделать. Потом доложу.
34. Шёпот теней 1782 31.08.09 21:39 Сейчас в теме
(33) .. как версия для подложки - сделать как вебСайдеры - пилят риснок на необходимые части, вставляют - смотрится как единое целое ... у них даже и программки специальные есть по разбиению ... главное чтобы количество квадратиков было не запредельным ....

... вот ...

... всем удачи ...
35. Ish_2 1112 31.08.09 22:19 Сейчас в теме
(34) Почти ничего не понял.
Решение в лоб выглядит так :

Р - рисунок табл.документа накрывает все видимое поле табл.документа с типом "картинка" , куда загружается файл с расширением ".bmp" ("Подложка")
П - поля картинки с запрещением перетаскивания (т.е. запрещают скроллинг)

Схема расположения :

РП
П

Поверх рисунка "Р"(подложка) свободно создаются и перетаскиваются рисунки с типом "текст".
Пока так.
36. Ish_2 1112 31.08.09 22:22 Сейчас в теме
Виноват , пользователю недоступно тогда изменение фона рабочего стола.
37. Ish_2 1112 31.08.09 22:54 Сейчас в теме
Виноват 2.
Никаких проблем с изменением пользователем картинки фона рабочего стола ("подложки") не возникнет.
Организуется для пользователя диалог выбора файла ".bmp" и после :

МояКартинка = Новый Картинка(ИмяФайлаКартинки)
РисунокРабочегоСтола.Картинка = МояКартинка;
38. WKBAPKA 215 01.09.09 06:24 Сейчас в теме
я на выходных попробую, будет ли работать:) но иногда и на форме имеет смысл что либо подвигать )
39. Ish_2 1112 01.09.09 18:12 Сейчас в теме
(38) ,(34) Виноват 3.
А лучшим ,по-моему, решением будет использование свойства табл.документа
ФоноваяКартинка , куда и загружается файл .bmp , Например 800х600.
Тогда рисунок "Р" - просто не нужен.
Конечно ,нужно пробовать , чтобы сказать что-то более определенное , но
сам подход с использованием поля табл.документа и рисунков табл.документа (текст, картинка , лист Excel , фигуры и т.д) в качестве ярлыков гораздо перспективнее . Т.к. используется вся мощь платформы , то вид и функциональность "рабочего стола" могут быть просто недостижимыми
при другом подходе.
41. Широкий 693 09.10.09 11:17 Сейчас в теме
Блин .. а с утечкой памяти что нить придумали.
Я все уже перепробовал - лажа получается
49. venger 2124 13.10.09 21:27 Сейчас в теме
(41) Вот игруха, вроде как, без утечки: http://infostart.ru/public/58600/
Мои предположения в 47-м посте, похоже, оправдались...
50. WKBAPKA 215 13.10.09 22:19 Сейчас в теме
2(49): я еще раз настаиваю на том, что это баг платформы... если есть возможность создавать на лету объекты, то и Destructor этих объектов должен работать корректно... если есть утечка памяти, значит это баг в платформе!
55. venger 2124 14.10.09 11:21 Сейчас в теме
(50)-(54) +49, Похоже у нас получился разговор немого со слепым, никто не сомневался, что баг платформы, вопрос был в том, чтобы понять где он и обойти, сохранив возможность перетаскивания, что я Вам и продемонстрировал в игрухе тут: http://infostart.ru/public/58600/
А Вы вместо того, чтобы попытаться понять, что Вам говорит человек, а потом уже отвечать, твердите свое... Ну да ладно... Конечны Вы ребята самые умные, куда уж мне;)
56. WKBAPKA 215 14.10.09 11:26 Сейчас в теме
2(55): я пока свой рабочий стол не собирался делать, так что искать в чем баг платформы и как его обойти не очень хотелось... да и I_G_O_R продемонстрировал незатейливый код по созданию и удалению картинки в цикле. Как обойти этот баг? ;)
57. venger 2124 14.10.09 11:34 Сейчас в теме
(56) > Как обойти этот баг?
Так качните игруху по ссылке и гляньте предложенной мной способ обхода в действии, сделайте мне приятное;) Ну ё, я ж тоже человек, тоже хочу одобрения от коллег;) Способ прост, как пять копеек, кстати;)
58. Широкий 693 14.10.09 12:37 Сейчас в теме
Я тупо сделал своп картинок - т.е. не удаляю/создаю а просто меняю координаты у существующих картинок - все нормально.

(57) Обработку не качал - как у тебя сделано?
59. WKBAPKA 215 14.10.09 13:21 Сейчас в теме
2(58): нормальный вариант решения... прелесть
60. venger 2124 14.10.09 15:23 Сейчас в теме
62. WKBAPKA 215 14.10.09 19:26 Сейчас в теме
2(60): переходим на ты ;) ты же понимаешь, что при должном вниманию, каждому из нас пришла бы в голову такое же решение... мы же не дураки тут... но подчеркиваю, еще раз, при внимании, я лишь выложил пример и написал, дальше можно оптимизировать как хош ;)

Я персона Вип Вип, у меня есть джип джип, обгоняю, подрезаю, все сигналят, БИП, БИП ;)
64. venger 2124 14.10.09 19:39 Сейчас в теме
(62) > ты же понимаешь...

Полностью согласен, вообще, как-то нехорошо стартанули в общении, но думаю, что в дальнейшем, эта заминка замнется и забудется:)
42. WKBAPKA 215 09.10.09 19:23 Сейчас в теме
43. venger 2124 10.10.09 18:02 Сейчас в теме
44. WKBAPKA 215 10.10.09 20:53 Сейчас в теме
ну дык вопросы к 1С разработчикам ;)
45. Широкий 693 12.10.09 09:31 Сейчас в теме
46. WKBAPKA 215 12.10.09 10:35 Сейчас в теме
возможно это происходит из за объявленной глобальной переменной в модуле... в принципе, ее можно и не использовать...
47. venger 2124 12.10.09 12:05 Сейчас в теме
(46) А не из-за динамического создания-удаления временных картинок вокруг перетаскиваемой на форме, случаем?
48. WKBAPKA 215 12.10.09 13:46 Сейчас в теме
ну вы интересные ребята, честное слово... откуда я знаю, из-за чего. Я ведь оперирую языком платформы.
51. WKBAPKA 215 13.10.09 22:23 Сейчас в теме
типа сам себя похвалил :D

я этот пример написал за один час... есть у меня подозрение, что утечка памяти связана с тем, что есть глобальная переменная для временного хранения текущей позиции картинки, а может , связано с неоптимальной передаче параметров... это всего лишь пример... плж., оптимизируем и улучьшаем!
52. I_G_O_R 69 13.10.09 22:25 Сейчас в теме
поддерживаю WKBAPKA, в моей обработке тоже утечки,баг платформы однозначно
53. I_G_O_R 69 13.10.09 22:34 Сейчас в теме
вот этот код попробуйте у себя запустить:
Для к = 1 по 10000 Цикл
		
		Картинка = ЭлементыФормы.Добавить(Тип("ПолеКартинки"), "Картинка");
		ЭлементыФормы.Удалить(Картинка);
		
	КонецЦикла;


сразу видно утечки памяти, всех поздравляю с обнаружением очередного бага, не было бы инфостарта, может никогда бы не нашли :o
54. WKBAPKA 215 13.10.09 23:12 Сейчас в теме
2(53): + 1
иногда у меня создается впечатление, что некоторые путают языки высокого уровня с предметно-ориентированными конструкторами, и выдвигают к ним повышенные требования...
61. Ёпрст 1065 14.10.09 16:01 Сейчас в теме
Как то в снеговике через одно место это всё...
Вот пример таскания всего в клюшках + формекс:

Прикрепленные файлы:
move2.ert
63. WKBAPKA 215 14.10.09 19:28 Сейчас в теме
2(61): показать полочки, где лежат пирожки ? тут обсуждается реализация штатными средствам!
65. WKBAPKA 215 14.10.09 19:46 Сейчас в теме
2(65): ;) я вообще не конфликтый человек, просто иногда очень эмоциональный :(
66. lev6975 19.08.13 20:11 Сейчас в теме
По- ходу, в 1с перетаскивание картинки нереально стандартными событиями с получением координат дропа, всё перетаскивание ориентировано на табличные поля, колонки и прочее, пасьянс косынку написать нельзя, например:-)))))
ЗЫ:Штатными средствами 1С без аддонов и костылей
Оставьте свое сообщение