Почему при печати ценников, в штрихкод добавляется цифра?
Приходую товар документом ПТиУ
В каждом товаре завожу штрихкод, который сканирую с товаров, там где написано EAN
Если в штрихкоде 12 символов, то он сканируется и вписывается в базу нормально, а вот при печати ценника в сам ценник почемуто подставляется какая нибуть цифра 13, как этого избежать? Как сделать так чтобы если в EAN цифр 12ть то и печаталось на ценнике, 12ть?
Пользуюсь, для печати ценников вот такой обработкой.
В каждом товаре завожу штрихкод, который сканирую с товаров, там где написано EAN
Если в штрихкоде 12 символов, то он сканируется и вписывается в базу нормально, а вот при печати ценника в сам ценник почемуто подставляется какая нибуть цифра 13, как этого избежать? Как сделать так чтобы если в EAN цифр 12ть то и печаталось на ценнике, 12ть?
Пользуюсь, для печати ценников вот такой обработкой.
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Вообще-то, стандарт шрихкода и называется EAN13, потому что в нем должно быть 13 цифр. Последняя цифра - контрольный символ, который нужен для проверки правильности штрихкода.
Правильно ли я понял, что после печати 13-значного штрихкода и его последующего сканирования не находится товар, так как штрихкод в справочнике имеет только 12 символов?
В вашем случае 13-й символ добавляет сама компонента V8.Barcod.1. То есть нужно либо поменять её на другую, либо настроить эту, если она позволяет. Настройка производится в макете "Ценник". Нажать правую кнопку мыши на штрихкоде и выбрать "Элемент управления: 1С печать штрихкода - Свойства". У меня, к сожалению, эта компонента не установлена, при вызове свойств штрихкода 1С вылетает с ошибкой.
А можно и доработать процедуру обработки считанного штрихкода, чтобы она искала товар по первым 12 символам.
Правильно ли я понял, что после печати 13-значного штрихкода и его последующего сканирования не находится товар, так как штрихкод в справочнике имеет только 12 символов?
В вашем случае 13-й символ добавляет сама компонента V8.Barcod.1. То есть нужно либо поменять её на другую, либо настроить эту, если она позволяет. Настройка производится в макете "Ценник". Нажать правую кнопку мыши на штрихкоде и выбрать "Элемент управления: 1С печать штрихкода - Свойства". У меня, к сожалению, эта компонента не установлена, при вызове свойств штрихкода 1С вылетает с ошибкой.
А можно и доработать процедуру обработки считанного штрихкода, чтобы она искала товар по первым 12 символам.
EAN13 позволяет ограничить 3 символа.Для этого необходимо выполнить следующую прописку:(поступил так я) - установить условия вызова V8.Barcod.1.dll по 4 позициям- 13 знаков кода,10 знаков кода, значение до 6 первых нулей,значения кода с 4 последними нулями.
Стандартная процедура вызова *.dll+ условия+ ссылка (маску см.выше).Сканер читает без проблем. Одна оговорка - драйвера сканера должен поддерживать EAN13 с данной градацией символов. Для этого по марке сканера необходимо найти драйвера с ссылкой-"поддержки 3 форматов штрих-кода". Все.
Стандартная процедура вызова *.dll+ условия+ ссылка (маску см.выше).Сканер читает без проблем. Одна оговорка - драйвера сканера должен поддерживать EAN13 с данной градацией символов. Для этого по марке сканера необходимо найти драйвера с ссылкой-"поддержки 3 форматов штрих-кода". Все.
(3) Gavroch.v, а можно на русском языке?
где это надо пописать и как?
куда устанавливаются в 1С драйвера сканера? (вроде сканер работает и так)
там где в еан13 - 13 цифр проблем нет, а вот там где их 12 - одни сплошные проблеммы.
Стандартная процедура вызова *.dll+ условия+ ссылка
где это надо пописать и как?
куда устанавливаются в 1С драйвера сканера? (вроде сканер работает и так)
там где в еан13 - 13 цифр проблем нет, а вот там где их 12 - одни сплошные проблеммы.
Я поступил проще, в обработку печати ценников добавил проверку на длину строки штрихкода и при необходимости увеличивал строку необходимым числом нулей до 13 символов, добавляя их перед штрихкодом. Таким образом при печати штрихкода у меня генерируется штрихкод правильной длины с нужным количеством лидирующих нулей, при сканировании этого ШК товар подбирается нормально.
Так мне не надо генерировать штрих код, я работаю с теми что уже есть на товарах.
Если такой штрихкод, то товар ищется по нему нормально, а вот когд печатается ценник, одна случайная цифра добавляется в конце.
а надо чтобы не добавлялась, что бы было как есть, есть 12ть цифр - значит и на ценнике, 12ть. есть 13 символов, значит и на ценнике печатаем 13, есть 5 символов и на ценнике печатаем 5ть. В общем хочу чтобы прога не придумывала ничего, а печатала как есть, может можно как-то в ней отключить проверку на ошибки

Если такой штрихкод, то товар ищется по нему нормально, а вот когд печатается ценник, одна случайная цифра добавляется в конце.
а надо чтобы не добавлялась, что бы было как есть, есть 12ть цифр - значит и на ценнике, 12ть. есть 13 символов, значит и на ценнике печатаем 13, есть 5 символов и на ценнике печатаем 5ть. В общем хочу чтобы прога не придумывала ничего, а печатала как есть, может можно как-то в ней отключить проверку на ошибки
(11) Это если код EAN-13, а если код UPC который не содержит контрольной цифры? Вариант с добавлением штрихкода типа "0+UPC = EAN13" не предлагать
Я уточню, есть товар с кодом типа UPC который состоит из 12 символов, при сканировании он считывается, но при печати этикеток товара в конец кода добавляется контрольная цифра от EAN13. Задача не печатать данную цифру.
Я уточню, есть товар с кодом типа UPC который состоит из 12 символов, при сканировании он считывается, но при печати этикеток товара в конец кода добавляется контрольная цифра от EAN13. Задача не печатать данную цифру.
Для таких случаев можно использовать CODE39. Подсмотрел решение в 1С:Розница.
в общий модуль
ГенерацияШтрихкода.ПодготовитьИзображениеШтрихкода(ВнешняяКомпонента, ПараметрыШтрихкода)
вместо:
вставляем это:
в общий модуль
ГенерацияШтрихкода.ПодготовитьИзображениеШтрихкода(ВнешняяКомпонента, ПараметрыШтрихкода)
вместо:
Если ПараметрыШтрихкода.ТипКода = 99 Тогда
ВнешняяКомпонента.АвтоТип = Истина;
Иначе
ВнешняяКомпонента.АвтоТип = Ложь;
ВнешняяКомпонента.ТипКода = ПараметрыШтрихкода.ТипКода;
КонецЕсли;
вставляем это:
Если ПараметрыШтрихкода.ТипКода = 99 Тогда
ТипШтрихкодаВрем = МенеджерОборудованияКлиентСервер.ОпределитьТипШтрихкода(ШтрихкодВрем);
Если ТипШтрихкодаВрем = "EAN8" Тогда
ВнешняяКомпонента.ТипКода = 0;
ИначеЕсли ТипШтрихкодаВрем = "EAN13" Тогда
ВнешняяКомпонента.ТипКода = 1;
// Если код содержит контрольный символ, обязательно указываем.
ВнешняяКомпонента.СодержитКС = СтрДлина(ШтрихкодВрем) = 13;
ИначеЕсли ТипШтрихкодаВрем = "EAN128" Тогда
ВнешняяКомпонента.ТипКода = 2;
ИначеЕсли ТипШтрихкодаВрем = "CODE39" Тогда
ВнешняяКомпонента.ТипКода = 3;
ИначеЕсли ТипШтрихкодаВрем = "CODE128" Тогда
ВнешняяКомпонента.ТипКода = 4;
ИначеЕсли ТипШтрихкодаВрем = "ITF14" Тогда
ВнешняяКомпонента.ТипКода = 11;
ИначеЕсли ТипШтрихкодаВрем = "QR" Тогда
ВнешняяКомпонента.ТипКода = 16;
ИначеЕсли ТипШтрихкодаВрем = "EAN13Addon2" Тогда
ВнешняяКомпонента.ТипКода = 14;
ИначеЕсли ТипШтрихкодаВрем = "EAN13Addon5" Тогда
ВнешняяКомпонента.ТипКода = 15;
Иначе
ВнешняяКомпонента.АвтоТип = Истина;
КонецЕсли;
Иначе
ВнешняяКомпонента.АвтоТип = Ложь;
ВнешняяКомпонента.ТипКода = ПараметрыШтрихкода.ТипКода;
КонецЕсли;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот