Печать этикеток со штрих кодом

1. Tsprogrammist1 85 05.03.13 13:46 Сейчас в теме
Всем привет. Есть розница 1 вней есть товар добавил в него 2-а штрих кода 1- вбил с реального товара (46006224006673) 2-ой придумал сам (7777777777777). тк вот первый выходит на печать а 2-ой нет. стоит поменять хоть 1-у цифру в первом, тоже перестает выводить штрих код. подскажите пожалуйста в чем проблема?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. adolph 05.03.13 14:00 Сейчас в теме
Почитайте про формирование штрих кода... последняя цифра штрихкода - контрольная сумма.
3. adolph 05.03.13 14:15 Сейчас в теме
//******************************************************************************
// глКонтрольныйСимвол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(Штрихкод, ТипКода);

КонецФункции // глСформироватьШтрихкод()
Tsprogrammist1; +1 Ответить
4. adolph 05.03.13 14:30 Сейчас в теме
Эти процедуры должны быть в глобальном модуле - посмотри и вызывай при формировании ШК в нужнах тебе модулях.
Tsprogrammist1; +1 Ответить
5. Golikov 06.03.13 14:18 Сейчас в теме
Штрих код не соответствует формату, поэтому и не выводится. Скорее всего неправильная контрольная цифра.
Tsprogrammist1; +1 Ответить
6. sancho86 1 15.03.13 00:42 Сейчас в теме
Если бы это была ут то я бы посоветовал поставить тип штрихкода CODE 128, там нет никаких контрольных символов, можно с потолка придумать штрихкод. В рознице нужно добавлять поддержку этого типа. В том числе нужна обработка печати штрихкода из УТ. По умолчанию даже генерируется везде только в формате EAN-13...
assorty; Tsprogrammist1; +2 Ответить 1
7. mixa4 15.03.13 03:15 Сейчас в теме
(6) sancho86, весь вопрос автора сводится к незнанию того, что у EAN-13 последняя цифра - контрольная, что уже разъяснили, остальное лирика.
К слову, в Рознице вполне себе поддерживается и печатается CODE128, есть лишь небольшой глюк: при ручном вводе нужно его вводить и в колонку "Представление", иначе в печать попадают пробелы. То что EAN-13 по умолчанию - это как бы нормально.
Tsprogrammist1; +1 Ответить
8. Tsprogrammist1 85 15.03.13 12:24 Сейчас в теме
Всем спасибо ! Все получилось!
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот