Пример реализации прокрутки для тач-интерфейса.

12.04.13

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

Обработка + внешняя компонента, которые позволяют добиться того, что так нужно любому тач-интерфейсу: прокрутки списков пальцем!

Файлы

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

Наименование Скачано Купить файл
Обработка + ВК
.epf 17,25Kb
114 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

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

Оформить подписку и скачать решение со скидкой

     Пример, который я хочу вам предложить, не претендует на новизну, свежий взгляд или самое красивое решение. Возможно, это даже очередной велосипед. Возможно, содержит ошибки, как логические, так и методические. Однако, на Инфостарте я не нашел обработки, которая помогла бы мне решить текущую задачу, а именно - нарисовать удобный тач интерфейс для моноблока с сенсорным экраном. Поэтому, как умел, сделал сам. Возможно, кому-то мой опыт покажется полезным.

    1С 8.2 и управляемые формы достаточно гибки (особенно вспоминая ужас работы с интерфейсом 7.7). В принципе, почти все, что нужно, они сделать позволяют. Можно и кнопки большие реализовать, и шрифт. Остается одна принципиальная задача, я бы даже сказал, вызов - это прокрутка пальцем. Как пользователь планшета, я не понимаю, зачем существует тач интерфейс, если нет возможности пользоваться руками. Однако, проблема в том, что в 1С нельзя подписаться на события "MouseDown" и "MouseUp", а так же нельзя получить координаты курсора мыши. Палец же с точки зрения тач-интерфейса - это мышь. Поэтому, чтобы получить возможность прокручивать список, данные задачи стоит передать внешней компоненте. 

Ок, данные от мыши получили. Встает следующая проблема :) 1С очень неловко (с точки зрения вмешательства) работает с табличным полем, которое привязано к динамическому списку. Нельзя ни получить общее количество строк, ни (в определенных случаях) получить номер текущей строки и увеличить его. Можно, конечно, пытаться как-нибудь выйти из положения с помощью скрытых колонок. Мне показалось, что лучшим вариантом будет "превратить" движения мыши вверх-вниз с зажатой кнопкой (= то есть движения пальца по экрану) в сообщения о прокрутке колеса мыши. 1С замечательно обрабатывает такие события без каких-либо ухищрений.

Итак, что представляет собой внешняя компонента?

Это dll по технологии NativeAPI, у которой есть 2 метода и 2 свойства.

Методы донельзя простые, это Включить() и Выключить()

Свойства тоже очевидны: Включен (чтение) и Активирован (чтение и запись).

Второе свойство служит для активации режима превращения MouseMove в MouseScroll.

С точки зрения Windows, компонента ставит глобальный хук на WH_MOUSE_LL. В случае активации блокирует сообщение WM_MOVE и шлет вместо него WM_MOUSEWHEEL.

Работа протестирована на УТ11 в средах Win7, WinXP, Win2003. Обработка умеет подключаться как дополнительная.

Компонента находится в макете обработки, приложенной к этой заметке. Сама обработка ничего толкового не делает - просто выводит список из 200 строк для тестирования прокрутки. 

Для работы компоненты могут понадобиться C++ Redistributable.

12.04.2013

Добавлено свойство "Чувствительность". Параметр влияет на скорость прокрутки (то есть на скорость посыла сообщения для скролла). При Ч. = 1 скролл работает "по умолчанию" с "обычной" скоростью. При увеличении Ч. скролл замедляется. Тип параметра = целое число.

P.S. Для корректной работы прокрутки необходимо у таблицы формы выставить следующие свойства:

Разрешить начало перетаскивания - Истина

Разрешить перетаскивание - Ложь

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Работа с интерфейсом Анализ учета Мониторинг 1С:Предприятие 8 1С 8.3 1C:Бухгалтерия 1С:Бухгалтерия 3.0 1С:ERP Управление предприятием 2 1С:Управление холдингом 1С:Зарплата и Управление Персоналом 3.x 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 Платные (руб)

Создайте свой функциональный интерфейс в любой конфигурации 1С с помощью расширения Infostart Dashboard. Настраивайте панели виджетов с метриками, индикаторами и показателями на начальном экране. Узнайте возможность внедрения подсистемы у себя в конфигурации с помощью бесплатной обработки "Анализ внедрения подсистемы 1С Infostart Dashboard"!

31720 руб.

27.03.2025    81258    55    42    

66

Работа с интерфейсом Системный администратор Программист 1С:Предприятие 8 1C:Бухгалтерия Платные (руб)

Расширение «Динамическое управление доступом к элементам форм объектов 1С8» предназначен для обеспечения возможности оперативного управления видимостью и доступностью элементов форм документов и справочников продуктов фирмы «1С» «1С:Предприятие 8». Решение универсальное, встраивается в любую конфигурацию с минимальными доработками, что позволяет без проблем обновлять типовые решения.

6100 руб.

14.01.2016    60447    22    25    

47

Работа с интерфейсом Рабочее место 1С:Предприятие 8 1C:Бухгалтерия 1С:Комплексная автоматизация 2.х Платные (руб)

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

6100 руб.

16.01.2015    68311    46    60    

85

Консолидация данных Работа с интерфейсом Программист Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 1C:ERP Узбекистан Беларусь Кыргызстан Россия Казахстан Платные (руб)

Знакомая ситуация? Пользователи, особенно менеджеры, уверены: отборов много не бывает. Идут пожелания добавить в форму списка еще один быстрый фильтр, еще два, еще пять... В итоге интерфейс превращается в нагромождение полей отбора, а потребность в «самом главном» отборе, который «вот прямо сейчас нужен», все равно не закрыта. Универсальное расширение, которое решает эту проблему элегантно и технологично. С его помощью в любую форму списка можно легко добавить панель настраиваемых кнопок-закладок, каждая из которых применяет сложный фильтр-запрос, а так же показывает актуальное количество элементов в реальном времени.

6088 руб.

17.10.2025    2025    3    0    

2

Разработка Инструментарий разработчика Работа с интерфейсом Адаптация типовых решений Нейросети 1C:Бухгалтерия 1C:ERP 1С:ЗУП 1С:КА 1С:УНФ 1С:УТ 1С:Розница 1С:ДО 1С:ERP Управление предприятием 2 Платные (руб)

Разработка "Дизайнер форм 1С" реализована в виде расширения 1С и является универсальным инструментом для разработки прототипа форм с целью демонстраций, технических заданий и т.д. Без участия разработчика с возможностью экспорта в файл внешней обработки и генерации формы используя искусственный интеллект.

36600 руб.

28.08.2025    7781    2    2    

6

Работа с интерфейсом Программист Стажер 1С:Предприятие 8 Бесплатно (free)

Это инструкция по дизайну форм в среде 1С. Гайд охватывает рекомендации и стандарты для оптимизации пользовательского интерфейса. В гайде содержатся указания по использованию элементов интерфейса, включая как основные, так и продвинутые аспекты. Предоставляются также примеры и антипримеры для наглядного понимания принципов дизайна

20.08.2024    49268    mrXoxot    44    

139

Работа с интерфейсом Программист 1С:Предприятие 8 Бесплатно (free)

Пример простого и симпатичного прогресс-бара в динамическом списке, без картинок, используя редактирование запроса.

27.05.2024    26485    smielka    39    

117
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Sholl 111 28.03.13 11:04 Сейчас в теме
Классная штука.
+1
Вопрос: можно ли убрать предупреждение: внешняя компонента успешно установлена?
2. stanru1 91 28.03.13 23:50 Сейчас в теме
(1) обновил обработку, теперь почем зря предупреждение не выскакивает.
3. yuraos 1008 29.03.13 06:21 Сейчас в теме
(2)

1С 8.2 и управляемые формы достаточно гибки (особенно вспоминая ужас работы с интерфейсом 7.7).


И в чем именно этот "ужас" заключался ???
4. stanru1 91 29.03.13 08:52 Сейчас в теме
(3) эти слова - не огульное обвинение 7.7, а беззлобное подтрунивание
если серьезно, то в 7.7, например, формы надо было рисовать, расставляя элементы управления в нужном порядке. в 8.2 платформа сама их размещает. Не было в 7.7 динамических списков. Не было настоек условного оформления.
Разумеется, владея formex можно было сделать многое, но в 8.2 это делать удобнее.
5. yuraos 1008 29.03.13 19:12 Сейчас в теме
(4)
а ... это ты про штатные возможности 1с-7.7.

ну да, в 1с-7.7 интерфейсные возможности более чем скромны.
сам использовал formex для их разнообразия.

мне почему-то показалось
что ты сравниваешь обычный интерфейс 1с-8.2 с управляемым

и я сразу изготовился поднять тему
о "кошмариках" управляемого приложения
:)
6. yuraos 1008 29.03.13 19:14 Сейчас в теме
stanru1,
классный у тебя котяра!
;)
7. Hellgga 29.03.13 20:48 Сейчас в теме
(6) yuraos, Это вроде не котяра, а манул...
Вот ещё один :)
Прикрепленные файлы:
9. yuraos 1008 29.03.13 22:13 Сейчас в теме
8. stanru1 91 29.03.13 21:29 Сейчас в теме
(6) yuraos, спасибо! Этот котяра был в подарках "контакта". Оттуда я его и уволок.

(7) Hellgga, именно манул это и есть.
10. Sholl 111 11.04.13 18:48 Сейчас в теме
А можно добавить свойство "Чувствительность"?
Типа на сколько движений мыши будет один скролл.
Или ограничение количества сколлов в секунду.
11. stanru1 91 12.04.13 12:17 Сейчас в теме
(10) добавил свойство "Чувствительность". При Ч. = 1 скролл происходит "по умолчанию". При увеличении Ч. - замедляется.
12. tdsk 06.02.14 14:52 Сейчас в теме
Выложите пожалуйста dll. Пытаюсь переписать на 8.1 и никак не могу вытащить ВК из обработки, винд 7 не хочет её регистрировать
Прикрепленные файлы:
13. dindzilin 26.02.14 19:01 Сейчас в теме
Насколько помню, компоненты по технологии NativeAPI не нуждаются в регистрации в этом их фишка. А вот может ли 8.1 с ними работать - не уверен, по моему нет. Проще переписать на технологию COM.
Виталик; +1 Ответить
14. dindzilin 03.03.14 16:30 Сейчас в теме
Есть вопрос автору - есть идеи как реализовать то же самое только на табличном документе?
15. LeaNaeD 06.04.14 16:25 Сейчас в теме
Присоединяюсь по поводу табличного документа. Но больше всего хотелось бы посмотреть рабочий пример сенсорной прокрутки самой формы или данных панели. Тыцкать пальцем за ползунок и тянуууууть - невеселое занятие это все.
Прикрепленные файлы:
16. Edgar70 16.12.14 11:52 Сейчас в теме
Аналогично, вопрос по прокрутке формы... можно ли это реализовать? или хотябы кнопку которая эмулирует прокрутку колесом мышки?
17. ParabolParabola 16.12.14 15:03 Сейчас в теме
Вообще не понятно как она работает. На Windows 8, что с этой обработкой, что без нее, ничего не меняется, справочники не листаются.
18. Edgar70 17.12.14 07:26 Сейчас в теме
(17) ParabolParabola, Насчет журнала справочников не знаю, а вот динамические списки листает прекрасно и в win 7 и в win 8(.1)
По сути, для прокрутки формы проблема заключается только в том, как активировать захват мышки без выделения какого либо элемента
19. ParabolParabola 16.02.15 11:08 Сейчас в теме
На windovs server 2008, не регистрируется MouseEvents.dll, как можно зарегистрировать эту dll?
20. Edgar70 25.03.15 09:59 Сейчас в теме
(19) ParabolParabola, Запустить от имени админа 1ску?
(2) Возникла проблема на планшете - при частом пролистывании компонента подвисает :(
и при активном открытии/закрытии форм может вылететь и больше не включиться... автор, подскажи плиз, как можно усовершенствовать? повысить стабильность? сверхнеобходимая штука! :)
21. antoklio 23.08.17 15:04 Сейчас в теме
А на Windows 10 будет работать компонента?
Для отправки сообщения требуется регистрация/авторизация