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

12.04.13

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
Обработка + ВК
.epf 17,25Kb
114
114 Скачать (1 SM) Купить за 1 850 руб.

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

    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С v8.3 Управляемые формы 1C:Бухгалтерия Платные (руб)

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

5000 руб.

14.01.2016    55629    17    23    

43

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

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

6000 руб.

16.01.2015    63944    45    60    

83

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

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

2400 руб.

29.06.2020    19937    28    6    

44

Работа с интерфейсом Программист Стажер Платформа 1С v8.3 Бесплатно (free)

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

20.08.2024    23476    mrXoxot    44    

130

Работа с интерфейсом Программист Платформа 1С v8.3 Бесплатно (free)

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

27.05.2024    12024    smielka    37    

105

Работа с интерфейсом Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Бесплатно (free)

Добавьте новогоднего настроения! Расширение создает декорацию в виде гирлянды на некоторых формах объектов.

27.12.2023    18359    1228    elcoan    53    

125

Инструментарий разработчика Работа с интерфейсом Программист Платформа 1С v8.3 1C:Бухгалтерия Абонемент ($m)

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

3 стартмани

10.04.2023    12887    167    acces969    31    

126

Работа с интерфейсом Программист Платформа 1С v8.3 1C:Бухгалтерия Абонемент ($m)

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

1 стартмани

05.07.2022    7987    kalyaka    6    

33
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Sholl 108 28.03.13 11:04 Сейчас в теме
Классная штука.
+1
Вопрос: можно ли убрать предупреждение: внешняя компонента успешно установлена?
2. stanru1 91 28.03.13 23:50 Сейчас в теме
(1) обновил обработку, теперь почем зря предупреждение не выскакивает.
3. yuraos 1006 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 1006 29.03.13 19:12 Сейчас в теме
(4)
а ... это ты про штатные возможности 1с-7.7.

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

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

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

(7) Hellgga, именно манул это и есть.
10. Sholl 108 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 будет работать компонента?
Оставьте свое сообщение