Механизм работы с одномерным штрих-кодом в независимом веб-интерфейсе

02.03.20

Интеграция - Сканер штрих-кода

В продолжение предыдущей публикации приведу пример работы с одномерным штрих-кодом в простом веб-интерфейсе, посредством сканера одномерного цифрового штрих-кода.

Файлы

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

Наименование Скачано Купить файл
Механизм работы с одномерным штрих-кодом в независимом веб-интерфейсе:
.rar 3,65Kb
0 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Дошли руки, так что если есть интерес, то попробуем расписать механизм по частям. И начнём с механизма получения данных от сканера штрих-кода.

Если вкратце, то суть состоит в том, чтобы html-документ, при получении данных от клавиатуры, выполнял необходимый нам функционал.

В приложенном архиве три файла: index.htm (сам пользовательский интерфейс с данными), index.js (программный код обработчиков) и index.pdf (в нём три штрих-кода, использованные в файле index.htm).

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

Разумеется, браузер, в котором будет выполняться проверка, должен быть "свежим", т.е. "понимать" стандарты html-5. И, само собой, не должно быть запрещено выполнение java script. Впрочем, если не идёт речь о какой-либо экзотике или раритетах под старыми операционными системами, то вышеуказанное является само собой разумеющимся.

При этом к компьютеру (либо мобильному устройству, с которого будет открываться страница) должен быть подключён сканер штрих-кода в режиме клавиатуры. Это может быть как usb-подключение (к мобильным устройствам - посредством otg-адаптера), так и беспроводное соединение: в зависимости от модели сканера.

Выглядеть загруженная страница должна следующим образом:

Штрих-коды для проверки можно распечатать из файла index.pdf

Результат сканирования, в данном случае, выглядит следующим образом:

Разумеется, это лишь пример для демонстрации механизма.

Итак, перейдём к описанию.

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

В данном случае все данные уже включены в тело .htm файла во вставке кода: это массив "var docs = […]", содержащий интересующие нас объекты. Это не обязательный механизм, но он допустим. В общем случае, если не говорить о детальных данных, несколько тысяч записей вида "штрих-код, ключ, представление" будут в таком виде занимать несколько сотен килобайт, что позволяет работать с данными полностью на стороне клиента.

В файле index.js реализована привязка события: "document.onkeypress = keypress_action", где в "keypress_action" реализован механизм сбора данных, поступающих с клавиатуры (а сканер штрих-кода в данном случае воспринимается системой именно как клавиатура, последовательно передающая коды символов).

Функция выглядит следующим образом:

 

function keypress_action(e){
    let key_code = e.keyCode;
    if(key_code > 47 && key_code < 58){
        if(key_code == 48){res_code += '0'};
        if(key_code == 49){res_code += '1'};
        if(key_code == 50){res_code += '2'};
        if(key_code == 51){res_code += '3'};
        if(key_code == 52){res_code += '4'};
        if(key_code == 53){res_code += '5'};
        if(key_code == 54){res_code += '6'};
        if(key_code == 55){res_code += '7'};
        if(key_code == 56){res_code += '8'};
        if(key_code == 57){res_code += '9'};
        if(timer_eraser != undefined){
            clearTimeout(timer_eraser);
        }
        timer_eraser = setTimeout(eraser, 100);
    }
}

Т.е. входящие символы, если они являются цифрами, функция конкатенирует в переменную "res_code". Для того, чтобы изолировать вводимые в ручном режиме цифры, подключён обработчик ожидания с функцией "eraser", которая очищает значение переменной "res_code" каждые (в данном случае) десять миллисекунд. При этом при вводе нового символа выполнение данной функции прекращается для исключения удаления рабочих данных.

В данном примере функция очистки переменной со штрих-кодом совмещает в себе механизм поиска документа по штрих-коду и отображения данных.

function eraser(){
    let tmp = Number(res_code).toString();
    let work_table = document.getElementById('work_table');
    let rows = work_table.getElementsByTagName('tr');
    let id_exist = false;
    let found = false;
    docs.forEach(row => {
        if(row.sc == tmp){
            found = true;
            for (let tbl_row of rows){
                if(row.uid == tbl_row.id){
                    id_exist = true;
                }
            }
            if(!id_exist){
                let tr = document.createElement('tr');
                tr.id = row.uid;
                tr.doc = row.doc;
                tr.sum = row.cnt;
                tr.onclick = function(){
                    if(confirm('Удалить из списка ' + this.doc + '?')){
                        work_table.removeChild(this);
                        process_sum();
                    }
                }
                tr.innerHTML = '<td>' + row.doc + '</td><td>' + row.cnt + '</td>';
                
                if(rows.length == 0){
                    work_table.appendChild(tr);                    
                }
                else{
                    work_table.insertBefore(tr, rows[0]);
                }
                process_sum();
            }
        }
    });    
    res_code = '';
}

В приведённом примере использованы штрих-коды с усечёнными лидирующими (не значимыми) нулями, так что поступивший штрих-код преобразуется в число и затем снова в строку. Это не является необходимым, но в данном случае экономит трафик.

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

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

Вступайте в нашу телеграмм-группу Инфостарт

Веб-интерфейс

См. также

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

Стандартные конфигурации ERP, КА, УТ 11 позволяют работать с штрихкодированием серий. Есть только одно суровое ограничение – на упаковке должна быть этикетка для номенклатуры и отдельно для серии. Во многих случаях это критически неудобно.

18000 руб.

19.04.2021    26819    61    56    

73

Сканер штрих-кода Терминал сбора данных Мобильная разработка Монитор заказов Оптовая торговля Розничная торговля Ценообразование, анализ цен Программист Пользователь 1С v8.3 Мобильная платформа 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Простой мобильный ТСД (терминал сбора данных) сканер для 1С для смартфонов на iOS и Android, не требующий сложных настроек и установки дополнительных программ. Обмен между Вашей 1С и мобильным приложением осуществляется через облачный сервис и расширение конфигурации. Работает с конфигурациями УТ 11, ERP, КА2, Розница 2, Розница 3, УНФ 1.6, УНФ 3.0. Полнофункциональный демо-доступ для своей конфигурации можно запросить в настройках мобильного приложения - все необходимое придет на почту автоматически.

3000 руб.

22.04.2019    109632    666    203    

353

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

У вас возникал вопрос - Как быстро и правильно выполнить приемку товара в торговой точке? Как минимизировать ошибки при сборке заказа клиента? Текущая разработка способна помочь в решении данных проблем. Её назначение - проверка с помощью сканера штрих кода поступления и реализации товаров, заказов клиентов, заказов поставщикам, расходных и приходных ордеров, перемещений и возвратов.

5100 руб.

29.07.2020    40951    208    178    

166

Мобильная разработка Сканер штрих-кода Терминал сбора данных Управляемые формы Мобильная платформа 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Сбор заказов, инвентаризация, проверка ценников, просмотр полной информации об остатках и ценах со смартфона Онлайн - все это содержит в себе решение 1С "Штрихкод-информер" (штрих-код чекер). Отправка данных со смартфона выполняется либо напрямую в открытую форму документа, отсканировав QR-код, либо в общую корзину учетной системы, не подходя к компьютеру. Кассир или оператор сможет просмотреть список присланных данных и загрузить в любую форму, поддерживающую работу с ТСД. Для работы с мобильным приложением требуется опубликовать HTTP-сервис из поставляемого расширения.

3000 руб.

03.12.2018    65382    220    106    

184

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

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

19000 руб.

28.04.2023    12146    18    4    

11

Сканер штрих-кода Бухгалтер Пользователь 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бухгалтерский учет Платные (руб)

Теперь практически все торговые документы в конфигурации 1С Бухгалтерия 3.0 (ПРОФ / КОРП) и в конфигурации 1С Бухгалтерия сельскохозяйственного предприятия 3.0 поддерживают подбор товара по штрих-коду. Можно пользоваться сканером штрихкода или подбирать штрих-код вручную. В основных печатных формах документов выводится колонка Штрихкод. Для менеджеров по продажам будет удобным дополнительный отчет Прайс-лист с остатками и штрих-кодом.

3600 руб.

28.07.2020    31143    83    37    

62

Сканер штрих-кода СБП. Оплата по QR-коду Распознавание документов и образов Программист 1С v8.3 Абонемент ($m)

Чтение штрих-кодов, QR из PDF и картинок, копирование страниц из одного PDF в другой, удаление страниц из PDF.

5 стартмани

11.08.2025    1458    19    Grigoriy251    11    

5
Для отправки сообщения требуется регистрация/авторизация