Достаточно часто задают вопрос: «А что же делать со штрихкодом, размещенным на печатной форме документа?» (см. Простое штрихкодирование документов) Предлагаю рассмотреть вариант, который реализован у меня…
Конфигурация: «Торговля и склад 9.2»
В модуль формы списка общего журнала добавляем процедуру «ОбработкаВнешнегоСобытия»
Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные)
// Процедура разбирает штрих-код, считанный сканером и активизирует документ
Если Событие = "BarCodeValue" Тогда
Состояние("Поиск документа..."); // пока будем обрабатывать штрихкод сканер должен буфферизовать
// вновь считанные штрихкоды
глСканерПосылкаДанных(0);
ШтрихкодДокумента = Данные;
// Определим год документа
ЦифрыГода = Лев(ШтрихкодДокумента, 2);
ГодДокумента = "20" + ЦифрыГода;
ДатаНачалаПоиска = Дата(ГодДокумента, "01", "01");
ДатаОкончанияПоиска = Дата(ГодДокумента, "12", "31");
УстановитьИнтервал(ДатаНачалаПоиска, ДатаОкончанияПоиска);
Док = СоздатьОбъект("Документ");
Док.ВыбратьПоЗначению(ДатаНачалаПоиска, ДатаОкончанияПоиска,"EAN13" ,ШтрихкодДокумента);
Если Док.ПолучитьДокумент() = 1 Тогда
АктивизироватьОбъект(Док.ТекущийДокумент());
Иначе
Предупреждение("Документ со штрихкодом " + ШтрихкодДокумента + " не был найден!");
КонецЕсли;
глСканерПосылкаДанных(1);
КонецЕсли;
КонецПроцедуры
Теперь, при считывании штрихкода, в открытом журнале будет активизироваться необходимый нам документ, а уж что дальше с ним делать — это на Ваше усмотрение
P.S. Код написал по памяти (рабочей конфигурации в данный момент нет под рукой), если что — не пинать Как только будет возможность, сверю с оригиналом
ШтрихКод передает слишком мало информации. Дальше собственного склада с наличием доступа к основной БД неприменимо. MatrixCode выглядит предпочтительнее.
Да ну, вот EAN13 действительно несет мало информации, правда иногда его использования вполне хватает, а кому мало, пожалуйста — EAN128
Это не грузовая декларация. Я сомневаюсь, что кто-то угробит на это пол-страницы А4. К тому же информация о кол-ве ящиков, палет, весе и прочая очень интересна при отсутствии данных об отправителе/получателе (они уникальны в пределах ОДНОЙ БД). Да и не всякий сканер штрихкодов такое осилит.
Вот для тех кто не угробит половину А4, я и написал данную статью и т.к. ЕАN13 — она и называется «Простое…». Если есть какие другие простые варианты, почему бы и нет, предлагайте…я только рад 😉
Спасибо, работает, только добавил ОткрытьФорму(Док.ТекущийДокумент()); а как работает то же в 8ке? есть ли пример?
Для восьмерки примера нет, но и там все просто… Запросом получаем документ у которого реквизит EAN13 равен считанному и активизируем…