Всем привет. Есть розница 1 вней есть товар добавил в него 2-а штрих кода 1- вбил с реального товара (46006224006673) 2-ой придумал сам (7777777777777). тк вот первый выходит на печать а 2-ой нет. стоит поменять хоть 1-у цифру в первом, тоже перестает выводить штрих код. подскажите пожалуйста в чем проблема?
По теме из базы знаний
- Печать этикеток со штрихкодом
- Печать этикеток со штрих-кодами для БП 2.0
- Печать штрих-кодов для основных средств в 1С:Бухгалтерия 3.0 с использованием внутренней компоненты "КомпонентаПечатиШтрихкодов"
- Печать этикеток со штрихкодом для Бухгалтерии 2.0, Бухгалтерии 3.0
- Создание и печать этикеток со штрих-кодами из шаблона Word для БП 3.0 и УТ 11.4
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
//******************************************************************************
// глКонтрольныйСимволEAN(ШтрКод, Тип)
//
// Параметры:
// ШтрКод - 12-символьный штрих-код (без контрольной цифры)
// Тип - тип штрихкода: 13 - EAN13, 8 - EAN8
//
// Возвращаемое значение:
// Контрольный символ
//
// Описание:
// Функция вычисляет контрольный символ кода EAN
//
Функция глКонтрольныйСимволEAN(ШтрКод, Тип) Экспорт
Четн = 0;
Нечетн = 0;
Если Тип = 13 Тогда
КолвоИтераций = 6;
Иначе
КолвоИтераций = 4;
КонецЕсли;
Для Индекс = 1 По КолвоИтераций Цикл
Четн = Четн + Сред(ШтрКод, 2 * Индекс, 1);
Нечетн = Нечетн + Сред(ШтрКод, 2 * Индекс - 1, 1);
КонецЦикла;
Если Тип = 13 Тогда
Четн = Четн * 3;
Иначе
Нечетн = Нечетн * 3;
КонецЕсли;
КонтЦифра = 10 - (Четн + Нечетн) % 10;
Возврат ?(КонтЦифра = 10, "0", Строка(КонтЦифра));
КонецФункции // глКонтрольныйСимволEAN()
//******************************************************************************
// СтрокаВЦифры(Стр)
//
// Параметры:
// Стр - строка символов
//
// Возвращаемое значение:
// Строку, сосотоящую только из символов цифр
//
// Описание:
// Из исходной строки переносит в результирующую строку символы, при этом,
// если символ не является цифровым, то в результирующую строку переносится
// символ цифры, который является самым правым в коде символа исходной строки
//
Функция СимволыВЦифры(СтрСимв)
СтрЦифр = "";
Для Индекс = 1 По СтрДлина(СтрСимв) Цикл
ТекСимв = Сред(СтрСимв, Индекс, 1);
Если Найти("1234567890", ТекСимв) = 0 Тогда
// преобразуем символ
ТекСимв = Строка(КодСимв(ТекСимв) % 10);
КонецЕсли;
СтрЦифр = СтрЦифр + ТекСимв;
КонецЦикла;
Возврат СтрЦифр;
КонецФункции // СтрокаВЦифры()
//******************************************************************************
// глСформироватьШтрихкод(Префикс, ПредвКод, ТипКода=13)
//
// Параметры:
// Префикс - префикс штрихкода (строка из 2-х символов)
// ПредвКод - строка, содержащая символы из которых нужно сформировать штрих-код
// ТипКода - тип формируемого штрихкода. Возможные значения:
// 13 - для формирования EAN 13 (по умолчанию)
// 8 - для формирования EAN 8
// Возвращаемое значение:
// Нет
//
// Описание:
// На основании кода Номенклатуры и кода ОКЕИ формирует штрихкод в формате EAN
//
Функция глСформироватьШтрихкод(Префикс, ПредвКод, ТипКода=13) Экспорт
Если ТипКода = 13 Тогда
ИспКолво = 10;
Иначе
ИспКолво = 6;
КонецЕсли;
Штрихкод = СимволыВЦифры(Прав(СокрЛП(ПредвКод), ИспКолво));
Штрихкод = Префикс + глДополнитьСтрокуЛ(Штрихкод, "0", ИспКолво);
Возврат Штрихкод + глКонтрольныйСимволEAN(Штрихкод, ТипКода);
КонецФункции // глСформироватьШтрихкод()
// глКонтрольныйСимволEAN(ШтрКод, Тип)
//
// Параметры:
// ШтрКод - 12-символьный штрих-код (без контрольной цифры)
// Тип - тип штрихкода: 13 - EAN13, 8 - EAN8
//
// Возвращаемое значение:
// Контрольный символ
//
// Описание:
// Функция вычисляет контрольный символ кода EAN
//
Функция глКонтрольныйСимволEAN(ШтрКод, Тип) Экспорт
Четн = 0;
Нечетн = 0;
Если Тип = 13 Тогда
КолвоИтераций = 6;
Иначе
КолвоИтераций = 4;
КонецЕсли;
Для Индекс = 1 По КолвоИтераций Цикл
Четн = Четн + Сред(ШтрКод, 2 * Индекс, 1);
Нечетн = Нечетн + Сред(ШтрКод, 2 * Индекс - 1, 1);
КонецЦикла;
Если Тип = 13 Тогда
Четн = Четн * 3;
Иначе
Нечетн = Нечетн * 3;
КонецЕсли;
КонтЦифра = 10 - (Четн + Нечетн) % 10;
Возврат ?(КонтЦифра = 10, "0", Строка(КонтЦифра));
КонецФункции // глКонтрольныйСимволEAN()
//******************************************************************************
// СтрокаВЦифры(Стр)
//
// Параметры:
// Стр - строка символов
//
// Возвращаемое значение:
// Строку, сосотоящую только из символов цифр
//
// Описание:
// Из исходной строки переносит в результирующую строку символы, при этом,
// если символ не является цифровым, то в результирующую строку переносится
// символ цифры, который является самым правым в коде символа исходной строки
//
Функция СимволыВЦифры(СтрСимв)
СтрЦифр = "";
Для Индекс = 1 По СтрДлина(СтрСимв) Цикл
ТекСимв = Сред(СтрСимв, Индекс, 1);
Если Найти("1234567890", ТекСимв) = 0 Тогда
// преобразуем символ
ТекСимв = Строка(КодСимв(ТекСимв) % 10);
КонецЕсли;
СтрЦифр = СтрЦифр + ТекСимв;
КонецЦикла;
Возврат СтрЦифр;
КонецФункции // СтрокаВЦифры()
//******************************************************************************
// глСформироватьШтрихкод(Префикс, ПредвКод, ТипКода=13)
//
// Параметры:
// Префикс - префикс штрихкода (строка из 2-х символов)
// ПредвКод - строка, содержащая символы из которых нужно сформировать штрих-код
// ТипКода - тип формируемого штрихкода. Возможные значения:
// 13 - для формирования EAN 13 (по умолчанию)
// 8 - для формирования EAN 8
// Возвращаемое значение:
// Нет
//
// Описание:
// На основании кода Номенклатуры и кода ОКЕИ формирует штрихкод в формате EAN
//
Функция глСформироватьШтрихкод(Префикс, ПредвКод, ТипКода=13) Экспорт
Если ТипКода = 13 Тогда
ИспКолво = 10;
Иначе
ИспКолво = 6;
КонецЕсли;
Штрихкод = СимволыВЦифры(Прав(СокрЛП(ПредвКод), ИспКолво));
Штрихкод = Префикс + глДополнитьСтрокуЛ(Штрихкод, "0", ИспКолво);
Возврат Штрихкод + глКонтрольныйСимволEAN(Штрихкод, ТипКода);
КонецФункции // глСформироватьШтрихкод()
Если бы это была ут то я бы посоветовал поставить тип штрихкода CODE 128, там нет никаких контрольных символов, можно с потолка придумать штрихкод. В рознице нужно добавлять поддержку этого типа. В том числе нужна обработка печати штрихкода из УТ. По умолчанию даже генерируется везде только в формате EAN-13...
(6) sancho86, весь вопрос автора сводится к незнанию того, что у EAN-13 последняя цифра - контрольная, что уже разъяснили, остальное лирика.
К слову, в Рознице вполне себе поддерживается и печатается CODE128, есть лишь небольшой глюк: при ручном вводе нужно его вводить и в колонку "Представление", иначе в печать попадают пробелы. То что EAN-13 по умолчанию - это как бы нормально.
К слову, в Рознице вполне себе поддерживается и печатается CODE128, есть лишь небольшой глюк: при ручном вводе нужно его вводить и в колонку "Представление", иначе в печать попадают пробелы. То что EAN-13 по умолчанию - это как бы нормально.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот