Изменение цифр в штрих-коде и его печать: Invalid barcode (БПО)
День добрый.
Есть штрих-код (EAN13), напр. - 3500000065742.
При печати этикетки - картинка штрих-кода выводится отлично.
Стоит задача - изменить первые две цифры из штрих-кода и распечатать.
Меняем первую: 3500000065742 -> 4500000065742
Картинка Штрих-кода не печатается, выводится Invalid barcode.
Внешняя компонента не может сгенерировать картинку.
Подскажите пожалуйста, я правильно понимаю, что нельзя просто заменить цифру(ы) в штрих-коде? Что нужно генерировать новый штрих-код? Возможно компонента проверяет "контрольный символ" - и если не соответствует, то валится в ошибку?
Есть штрих-код (EAN13), напр. - 3500000065742.
При печати этикетки - картинка штрих-кода выводится отлично.
Стоит задача - изменить первые две цифры из штрих-кода и распечатать.
Меняем первую: 3500000065742 -> 4500000065742
Картинка Штрих-кода не печатается, выводится Invalid barcode.
Внешняя компонента не может сгенерировать картинку.
Подскажите пожалуйста, я правильно понимаю, что нельзя просто заменить цифру(ы) в штрих-коде? Что нужно генерировать новый штрих-код? Возможно компонента проверяет "контрольный символ" - и если не соответствует, то валится в ошибку?
Найденные решения
(1) нужно изменить 13 символ контрольный
ШтрихКод="401911430593";
Тип=13;
Четн = 0;
Нечетн = 0;
КоличествоИтераций = ?(Тип = 13, 6, 4);
Для Индекс = 1 По КоличествоИтераций Цикл
Если (Тип = 8) и (Индекс = КоличествоИтераций) Тогда
Иначе
Четн = Четн + Сред(ШтрихКод, 2 * Индекс, 1);
КонецЕсли;
Нечетн = Нечетн + Сред(ШтрихКод, 2 * Индекс - 1, 1);
КонецЦикла;
Если Тип = 13 Тогда
Четн = Четн * 3;
Иначе
Нечетн = Нечетн * 3;
КонецЕсли;
КонтЦифра = 10 - (Четн + Нечетн) % 10;
Сообщить(КонтЦифра);
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) нужно изменить 13 символ контрольный
ШтрихКод="401911430593";
Тип=13;
Четн = 0;
Нечетн = 0;
КоличествоИтераций = ?(Тип = 13, 6, 4);
Для Индекс = 1 По КоличествоИтераций Цикл
Если (Тип = 8) и (Индекс = КоличествоИтераций) Тогда
Иначе
Четн = Четн + Сред(ШтрихКод, 2 * Индекс, 1);
КонецЕсли;
Нечетн = Нечетн + Сред(ШтрихКод, 2 * Индекс - 1, 1);
КонецЦикла;
Если Тип = 13 Тогда
Четн = Четн * 3;
Иначе
Нечетн = Нечетн * 3;
КонецЕсли;
КонтЦифра = 10 - (Четн + Нечетн) % 10;
Сообщить(КонтЦифра);
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот