Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
15 дек 2024, 21:55

Поиск сканером штрих-кодов в табличной части документа. Нужна помощь!

Автор dimi3o, 05 янв 2013, 16:25

0 Пользователей и 1 гость просматривают эту тему.

dimi3o

Всем привет! Возникла надобность ускорить ревизию на предприятии. Нужно подводить указатель к товарной позиции в табличной части сформированного документа "Инвентаризация по складу" простым считыванием штрих-кода для корректировки остатков. В документе "реализация" подбор товарных позиций по штрих-коду идёт. Подскажите, необходимо изменять обработку внешнего события или просто сменить драйвер сканера?
У меня стоит драйвер 2002 года АТОЛ 5.0 с библиотекой - scanopos.dll
Заранее спасибо!

start2000

Если у Вас Торговля и склад, то смотрите как работает в документе Реализация Процедура ОбработкаВнешнегоСобытия. Добавьте такую же процедуру в Ваш документ Инвентаризация по складу. Чтения штрих-кода сканером это событие BarCodeValue. Далее можете использовать функцию глПолучитьТоварПоШтрихкоду для поиска товара с введенным штрих-кодом. Затем поиск номера строки табличной части с этим товаром в документе и если найдено, то использовать функцию АктивизироватьСтроку(<НомСтроки>) для перевода курсора на строку с найденным товаром.

dimi3o

Спасибо! Всё сделал! Очень помогли!

Процедура ОбработкаВнешнегоСобытия(Источник,Событие,Данные)
    // Процедура разбирает штрих-код, считанный сканером
    // и заполняет строки накладной
    Перем Упаковка,ТекКоличество, Спецификация;

    Перем ВремТовар, ВремЕдиница, ВремКоличество, ВремЦена;
   
    Перем СтрокаВозврЦена;

    Если Событие = "BarCodeValue" Тогда
        Если Форма.ТолькоПросмотр() = 0 Тогда
            //--------------------------------------------------------------------------------
            //Проверяем не карточка ли это
            ОбрШтрихкод = СокрЛП(Данные);
           
            // Определение типа штрих-кода
            ПрефиксШтрихкода = глПрефиксШтрихкода();
            Если ПустоеЗначение(ПрефиксШтрихкода) = 0 Тогда
                Если Найти(ПрефиксШтрихкода, Лев(ОбрШтрихкод, 1)) <> 0 Тогда
                    // Удаляем спец. символ из штрих-кода
                    ОбрШтрихкод = Сред(ОбрШтрихкод, 2);
                Иначе
                    Сообщить("Формат считанного штрих-кода не предназначен для товаров или карточек");
                    Возврат;
                КонецЕсли;
            КонецЕсли;
           
            Если глПолучитьТоварПоШтрихкоду(Данные, ВремТовар, ВремЕдиница, ВремКоличество) <> 0 Тогда
                ТЗ = СоздатьОбъект("ТаблицаЗначений");
                ВыгрузитьТабличнуюЧасть(ТЗ, "Номенклатура");
                НомСтр = 0;
                Если ТЗ.НайтиЗначение(ВремТовар, НомСтр, "Номенклатура") = 1 Тогда
                    АктивизироватьСтроку(НомСтр);
                    ПолучитьСтрокуПоНомеру(НомСтр);
                    Количество = Количество + 1;
                    ПриИзмененииКоличества();
                КонецЕсли;
            КонецЕсли;
        КонецЕсли;
       
        // Обработка закончена. Готовы к получению нового штрихкода.
        глСканерПосылкаДанных(1);
       
    Иначе
        глОбработкаВнешнегоСобытия(Источник, Событие, Данные);   
    КонецЕсли;

КонецПроцедуры // ОбработкаВнешнегоСобытия()

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск