gifts2017

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

Опубликовал Дмитрий Михеев (Dmi|MiX) в раздел Программирование - Работа с интерфейсом

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

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

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

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

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

http://infostart.ru/public/94550/

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

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

 

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
ВводКоличества.epf
.epf 6,41Kb
18.10.11
52
.epf 6,41Kb 52 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. stormtg stormtg (stormtg) 17.11.11 09:37
Интересная идея, спасибо.
2. Александр Б. (HameleonA) 17.11.11 12:37
Для пост терминалов полезной вещицей будет .
3. Евгений Сущенков (Jonny_wk) 20.06.12 18:58
Нужная вещь, автор молодец! Респектую!
5. Артур Ли (promiks111) 25.01.14 17:04
Ошибка при выполнении файловой операции
по причине:
Неверный формат хранилища данных
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа