Виртуальная цифровая клавиатура с отбором по номеру

Введенный номер передается в таблицу, и по нему отбираются документы

При использовании сенсорного экрана для работы 1С встаёт вопрос замены клавиатуры.

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

Данная обработка реализует виртуальный ввод на сенсорном экране номера документа, по которому происходит отбор документов из динамического списка.

Также ранее публиковалась обработка для поиска номенклатуры в таблице формы:

//infostart.ru/public/94550/

Вызов обработки:

&НаКлиенте
Процедура ПоискПоНомеруСписка(Команда)
ОткрытьФормуМодально("Обработка.ВводКоличества.Форма.ВводКоличества",,ЭтаФорма);
КонецПроцедуры
ОбработкаОповещения:
Если ИсточникВыбора.ИмяФормы = "Обработка.ВводКоличества.Форма.ВводКоличества" Тогда
ОбщегоНазначенияКлиентСервер.ИзменитьЭлементОтбораСписка(Список, "Номер",  ВРег(СокрЛП(ВыбранноеЗначение)), ЗначениеЗаполнено(ВРег(СокрЛП(ВыбранноеЗначение))),ВидСравненияКомпоновкиДанных.Содержит);
КонецЕсли

 

Если у вас в типовой конфе нет этой процедуры, то добавляете ее в общий модуль:

 

// Изменяет элемент отбора динамического списка
//
//Параметры:
//Список         - обрабатываемый динамический список,
//ИмяПоля        - имя поля компоновки, отбор по которому нужно установить,
//ВидСравнения   - вид сравнения отбора, по умолчанию - Равно,
//ПравоеЗначение - значение отбора,
//Установить     - признак необходимости установить отбор
//
Процедура  ИзменитьЭлементОтбораСписка(Список, ИмяПоля, ПравоеЗначение = Неопределено, Установить = Ложь, ВидСравнения = Неопределено) Экспорт
УдалитьЭлементОтбораСписка(Список, ИмяПоля);
Если Установить Тогда
УстановитьЭлементОтбораСписка(Список, ИмяПоля, ПравоеЗначение, ВидСравнения);
КонецЕсли;
КонецПроцедуры // ИзменитьЭлементОтбораСписка()

// Удаляет элемент отбора динамического списка
//
//Параметры:
//Список  - обрабатываемый динамический список,
//ИмяПоля - имя поля компоновки, отбор по которому нужно удалить
//
Процедура УдалитьЭлементОтбораСписка(Список, ИмяПоля) Экспорт

УдалитьЭлементОтбораКоллекции(Список.Отбор.Элементы, ИмяПоля);

КонецПроцедуры // УдалитьЭлементОтбораСписка()

Процедура УдалитьЭлементОтбораКоллекции(КоллекцияЭлементов, ИмяПоля)

ПолеКомпоновки = Новый ПолеКомпоновкиДанных(ИмяПоля);
Для Каждого ЭлементОтбора Из КоллекцияЭлементов Цикл
Если ТипЗнч(ЭлементОтбора) = Тип("ЭлементОтбораКомпоновкиДанных")
И ЭлементОтбора.ЛевоеЗначение = ПолеКомпоновки Тогда
КоллекцияЭлементов.Удалить(ЭлементОтбора);
КонецЕсли;
КонецЦикла;

КонецПроцедуры // УдалитьЭлементОтбораСписка()

// Устанавливает элемент отбор динамического списка
//
//Параметры:
//Список            - обрабатываемый динамический список,
//ИмяПоля           - имя поля компоновки, отбор по которому нужно установить,
//ВидСравнения      - вид сравнения отбора, по умолчанию - Равно,
//ПравоеЗначение    - значение отбора
//
Процедура УстановитьЭлементОтбораСписка(Список, ИмяПоля, ПравоеЗначение, ВидСравнения = Неопределено) Экспорт

УстановитьЭлементОтбораКоллекции(Список.Отбор.Элементы, ИмяПоля, ПравоеЗначение, ВидСравнения);

КонецПроцедуры // УстановитьЭлементОтбораСписка()

Процедура УстановитьЭлементОтбораКоллекции(КоллекцияЭлементов, ИмяПоля, ПравоеЗначение, ВидСравнения = Неопределено)

ЭлементОтбора = КоллекцияЭлементов.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение    = Новый ПолеКомпоновкиДанных(ИмяПоля);
ЭлементОтбора.ВидСравнения     = ?(ВидСравнения = Неопределено, ВидСравненияКомпоновкиДанных.ВИерархии, ВидСравнения);
ЭлементОтбора.Использование    = Истина;
ЭлементОтбора.ПравоеЗначение   = ПравоеЗначение;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;

КонецПроцедуры // УстановитьЭлементОтбораСписка()

4 Comments

  1. stormtg

    Интересная идея, спасибо.

    Reply
  2. HameleonA

    Для пост терминалов полезной вещицей будет .

    Reply
  3. Jonny_wk

    Нужная вещь, автор молодец! Респектую!

    Reply
  4. promiks111

    Ошибка при выполнении файловой операции

    по причине:

    Неверный формат хранилища данных

    Reply

Leave a Comment

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