|
0
ivanich1789
25.06.15
✎
17:46
|
Всем привет. Розница 2.1. Часто штрихкод не читается сканером и вбивается вручную. Поступление товара по накладным поставщиков также идет по штрихкоду. Чтобы упростить процесс решил сделать подбор по части штрихкода(точнее его последним символам). Добавил в тч колонку штрихкод. При вводе, по энтеру, запросом создаю списокзначений с нужной номенклатурой. Дальше ПоказатьВыборИзМеню(). На мгновенье появляется список, выбора не происходит, отрабатывает оповещение ПослеВыбораИзМеню и фокус перескакивает на поле Номенклатура. Как я понимаю дело в подтверждении ввода энтером и автоматическом переходе к следующему элементу ввода. Подскажите, люди добрые, что делаю не так. Опыта в восьмерке не густо. Спасибо.
|
|
|
2
ivanich1789
26.06.15
✎
10:59
|
Делаю по событию ПриИзменении. Стандартной обработки, как понимаю, в нем нет.
&НаСервере
Функция ПоискШК(СтрокаШаблона)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Штрихкоды.Владелец КАК Владелец,
| Штрихкоды.Штрихкод КАК Штрихкод,
| Штрихкоды.Характеристика,
| Штрихкоды.ТипШтрихкода,
| Штрихкоды.Упаковка
|ИЗ
| РегистрСведений.Штрихкоды КАК Штрихкоды
|ГДЕ
| Штрихкод ПОДОБНО ""%"+СтрокаШаблона+"""";
Список = Новый СписокЗначений;
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Список.Добавить(ВыборкаДетальныеЗаписи.Владелец, Строка(ВыборкаДетальныеЗаписи.Владелец));
КонецЦикла;
Возврат(Список);
КонецФункции
&НаКлиенте
Процедура ТоварыШтрихКодПриИзменении(Элемент)
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
ШК = ТекущаяСтрока.Штрихкод;
Если СтрДлина(ШК) < 4 Тогда
Сообщить("Код должен быть не меньше 4х символов");
Возврат;
КонецЕсли;
СтрокаШаблона = "[";
Для Сч = 1 По СтрДлина(ШК) Цикл
СтрокаШаблона = СтрокаШаблона + Сред(ШК, Сч, 1);
Если Сч <> СтрДлина(ШК) Тогда
СтрокаШаблона = СтрокаШаблона + "][";
КонецЕсли;
КонецЦикла;
СтрокаШаблона = СтрокаШаблона + "]";
РезультатПоиска = Новый СписокЗначений;
РезультатПоиска = ПоискШК(СтрокаШаблона);
Оповещение = Новый ОписаниеОповещения("ПослеВыбораИзМеню", ЭтотОбъект , Параметры);
ПоказатьВыборИзМеню(Оповещение, РезультатПоиска);
КонецПроцедуры
&НаКлиенте
Процедура ПослеВыбораИзМеню(ВыбранныйЭлемент, Параметры) Экспорт
Сообщить(ВыбранныйЭлемент);
КонецПроцедуры
|
|