Простое штрихкодирование документов. Продолжение…

1С Простое штрихкодирование документовДостаточно часто задают вопрос: «А что же делать со штрихкодом, размещенным на печатной форме документа?» (см. Простое штрихкодирование документов) Предлагаю рассмотреть вариант, который реализован у меня…

Конфигурация: «Торговля и склад 9.2»

В модуль формы списка общего журнала добавляем процедуру «ОбработкаВнешнегоСобытия»

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

      глСканерПосылкаДанных(1);

   КонецЕсли;

КонецПроцедуры

Теперь, при считывании штрихкода, в открытом журнале будет активизироваться необходимый нам документ, а уж что дальше с ним делать — это на Ваше усмотрение ;-)

P.S. Код написал по памяти (рабочей конфигурации в данный момент нет под рукой), если что — не пинать :razz: Как только будет возможность, сверю с оригиналом

6 комментариев к записи «Простое штрихкодирование документов. Продолжение…»

  1. ШтрихКод передает слишком мало информации. Дальше собственного склада с наличием доступа к основной БД неприменимо. MatrixCode выглядит предпочтительнее.

    • Да ну, вот EAN13 действительно несет мало информации, правда иногда его использования вполне хватает, а кому мало, пожалуйста — EAN128

      • Это не грузовая декларация. Я сомневаюсь, что кто-то угробит на это пол-страницы А4. К тому же информация о кол-ве ящиков, палет, весе и прочая очень интересна при отсутствии данных об отправителе/получателе (они уникальны в пределах ОДНОЙ БД). Да и не всякий сканер штрихкодов такое осилит.

        • Вот для тех кто не угробит половину А4, я и написал данную статью и т.к. ЕАN13 — она и называется «Простое…». Если есть какие другие простые варианты, почему бы и нет, предлагайте…я только рад 😉

  2. Спасибо, работает, только добавил ОткрытьФорму(Док.ТекущийДокумент()); а как работает то же в 8ке? есть ли пример?

    • Для восьмерки примера нет, но и там все просто… Запросом получаем документ у которого реквизит EAN13 равен считанному и активизируем…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *