Пример проверки раскладки клавиатуры (Wscript, управляемые формы, внешняя обработка)

13.02.22

Разработка - Инструментарий разработчика

Пример проверки раскладки клавиатуры для управляемых форм с помощью объекта Wscript. Может использоваться для проверки сканера, подключенного в клавиатурном режиме, когда нет возможности подключения сканера в режиме COM-порта.

Скачать файл

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

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

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

Хочу поделится еще одним способом, который пришлось реализовать из-за невозможности подключения сканера в режиме COM-порта.

Решение в общем-то очевидное и простое, однако натолкнулся на некоторые трудности в его реализации.

Итак, пускай есть следующая форма для ввода штрих-кода:

 

 

  1. создадим реквизит с типом строка и связанное с ним поле текстового документа (! но не поле ввода) на форме - это поле будет исключительно для проверки раскладки (поле имеет цвет фона формы и поэтому будет казаться невидимым).
  2. перед вводом штрих-кода нужно будет "послать" в созданное поле с помощью Wscript какую-нибудь клавишу
  3. проверяем клавишу
  4. продолжаем действие (например, показать окно ввода штрих-кода) или показываем предупреждение о необходимости переключить раскладку

Вроде все просто, однако натолкнулся на проблему, связанную с тем, что при попытке получить текст из этого поля сразу после отправки клавишу будет получена пустая строка "". Понятно, "не успевает" 1с).

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

Теперь уже сам код:

1. Процедура нажатия на кнопку с подключением  обработчика ожидания

&НаКлиенте
Процедура ВвестиШтрихКод(Команда)
	
	ВведенныйШтрихКод = "";
	
	ПроверкаРаскладки = "";
	ТекущийЭлемент = Элементы.ПроверкаРаскладки;
	WshShell = Новый COMОбъект("Wscript.Shell");
	WshShell.SendKeys("+2"); 
	WshShell.SendKeys("^a");
	WshShell = Неопределено;
	
	ПодключитьОбработчикОжидания("ВвестиШтрихКодПроверитьРаскладкуЗавершение", 1);
	
КонецПроцедуры

2. Сам обработчик ожидания

&НаКлиенте
Процедура ВвестиШтрихКодПроверитьРаскладкуЗавершение()

	ВведенныйСимвол = Элементы.ПроверкаРаскладки.ВыделенныйТекст;
	ОтключитьОбработчикОжидания("ВвестиШтрихКодПроверитьРаскладкуЗавершение");
	Если ВведенныйСимвол <> "@" Тогда
		ПоказатьПредупреждение(, "Необходимо переключиться на английский язык!");
	Иначе
		ОпОп = Новый ОписаниеОповещения("ВводШтрихКодаЗавершение", ЭтотОбъект);
		ПоказатьВводСтроки(ОпОп, , "Введите штрих-код:");
	КонецЕсли;
	
КонецПроцедуры

3. Действие после проверки раскладки

&НаКлиенте
Процедура ВводШтрихКодаЗавершение(Текст, ДопПар) Экспорт

	Если Текст = Неопределено Тогда
		Возврат;
	КонецЕсли;
	
	ВведенныйШтрихКод = Текст;
	
КонецПроцедуры

В заключение, прикладываю саму обработку с примером для управляемых форм.

 

Дополнительная информация

Разработка велась на платформе 8.3.20.1674.

Поддерживается толстый и тонкий клиент.

Операционная система Winowds 10.

Раскладка Wscript

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

15500 руб.

02.09.2020    181526    1006    403    

959

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

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    22585    150    82    

146

Пакетная печать Печатные формы Инструментарий разработчика Программист Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

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

22200 руб.

06.10.2023    19792    51    19    

85

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

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

15000 руб.

10.11.2023    13369    55    33    

75

Инструментарий разработчика Программист Платформа 1С v8.3 Платные (руб)

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

9360 руб.

17.05.2024    29982    103    48    

147

Инструментарий разработчика Программист 8.3.14 Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

20000 руб.

07.10.2021    18920    7    32    

43

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

Разработка Конструктор автоматизированных рабочих мест "Конструктор АРМ" реализована в виде расширения и является универсальным инструментом для создания АРМ любой сложности в пользовательском режиме.

3600 руб.

27.12.2024    2094    3    0    

7
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. alex_imfi 13 01.02.24 13:14 Сейчас в теме
WshShell.SendKeys("^a"); - выделить все, отработает только на английской раскладке
WshShell.SendKeys("^A"); - выделить все, отработает только на русской раскладке
2. bmf 01.04.24 17:37 Сейчас в теме
Только что делал по этой публикации проверку раскладки, у меня не успевал выделяться текст.

Я сделал немного иначе:

перед "ВведенныйСимвол = Элементы.ПроверкаРаскладки.ВыделенныйТекст;"
вставил строку
Элементы.ПроверкаРаскладки.УстановитьГраницыВыделения(1,2);

И всё заработало.
Спасибо автору.
Оставьте свое сообщение