Содержание:
2. Процедура обработки данных со сканера штрих‑кода в 1С
1. Настройка поля ввода штрих‑кода и автоматического позиционирования курсора в программе 1C:Предприятие
Сканер штрихкода должен быть уже настроен в компьютере. Это можно проверить в любом редакторе.
ВводШтрихкод
Добавляем реквизит формы «ВводШтрихкод», строка размером вашего штрихкода. На форме документа устанавливается Поле формы «ВводШтрихкод», который необходимо сделать текущем элементом при открытии формы документа.
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ПодключитьОбработчикОжидания("ВернутьКурсорНаПолеВвода", 0.1, Истина);
КонецПроцедуры
Процедура ВернутьКурсорНаПолеВвода нужна для возврата курсора на поле штрихкода
&НаКлиенте
Процедура ВернутьКурсорНаПолеВвода()
ЭтотОбъект.ТекущийЭлемент = ЭтотОбъект.Элементы.ВводШтрихкод;
КонецПроцедуры
2. Процедура обработки данных со сканера штрих‑кода в 1С
Когда срабатывает сканер штрихкода данные передаются в поле ВводШтрихкод и происходит команда ПриИзменении().
В этой команде прописываем следующий код.
1) Проверка на ввод кириллицы. Это актуально если пользователь вводит данные вручную.
2) Заполнение строки по полученному Штрихкоду (Артикул). Если уже есть строка с этой номенклатурой, то добавляется количество, если нет, то добавляется новая строка.
3) Очистим поле Штрихкода для дальнейшего сканирования
4) Проверим остаток полученной номенклатуры на складе. Если нет остатка, то не добавляем.
5) Заполнение других полей табличной части (Количество, сумма)
6) Возвращаем курсор обратно в поле «ВводШтрихкод».
&НаКлиенте
Процедура ВводШтрихкодПриИзменении(Элемент)
// 1) Проверем/ Уберем кирилицу
ВводШтрихкод = КирВЛат(ВводШтрихкод);
// 2) Процедура заполнения ТЧ по Артикулу
ПолеВводаЩтрихкодаПриИзмененииНаСервере(ВводШтрихкод);
// 3) Очистим поле штрихкода, подготовим для следующего сканирования
ВводШтрихкод = "";
// 4) Процедура проверяет остаток на складе, если нет, то не добавляет
ПроверитьНаОстаток(Элемент) ;
// 5) Заполнение других полей строки ТЧ, количество и суммы.
СтрокаТоварыПриИзменении(Элемент) ;
// 6) Вернем Курсор обратно в поле ввода Штрихкода.
ПодключитьОбработчикОжидания("ВернутьКурсорНаПолеВвода", 0.1, Истина);
КонецПроцедуры
Процедура замены кириллицы в латиницу
&НаКлиенте
Функция КирВЛат(Слово)Экспорт
// Вводные данные
// Могут быть только Большие Буквы и цифры.
Латиница= "";
СоотвБукв = новый СписокЗначений;
//Кириллица
СоотвБукв.Добавить("Й","Q");
СоотвБукв.Добавить("Ц","W");
СоотвБукв.Добавить("У","E");
СоотвБукв.Добавить("К","R");
СоотвБукв.Добавить("Е","T");
СоотвБукв.Добавить("Н","Y");
СоотвБукв.Добавить("Г","U");
СоотвБукв.Добавить("Ш","I");
СоотвБукв.Добавить("Щ","O");
СоотвБукв.Добавить("З","P");
СоотвБукв.Добавить("Ф","A");
СоотвБукв.Добавить("Ы","S");
СоотвБукв.Добавить("В","D");
СоотвБукв.Добавить("А","F");
СоотвБукв.Добавить("П","G");
СоотвБукв.Добавить("Р","H");
СоотвБукв.Добавить("О","J");
СоотвБукв.Добавить("Л","K");
СоотвБукв.Добавить("Д","L");
СоотвБукв.Добавить("Я","Z");
СоотвБукв.Добавить("Ч","X");
СоотвБукв.Добавить("С","C");
СоотвБукв.Добавить("М","V");
СоотвБукв.Добавить("И","B");
СоотвБукв.Добавить("Т","N");
СоотвБукв.Добавить("Ь","M");
Для а=1 по СтрДлина(Слово) Цикл
Символ = Сред(Слово,а,1);
Если Найти("ЙЦУКЕНГШЩЗФЫВАПРОЛДЯЧСМИТЬ", Символ) Тогда
Латиница = Латиница + СоотвБукв.НайтиПоЗначению(Сред(Слово,а,1));
Иначе
Латиница = Латиница + Сред(Слово,а,1);
КонецЕсли;
КонецЦикла;
Возврат ВРЕГ(Латиница);
КонецФункции
Специалист компании ООО "Кодерлайн"
Александр Ганзюк
