Имя: Пароль:
1C
1С v8
Печать штрихкодов для купонов УТ 10.3
0 Elfidor
 
24.01.20
17:49
Здравствуйте! Создаю отдельную тему для такого дела...
Мне надо было сделать макет и процедуру печать для купонов. Все купоны (как и всевозможные карты скидок), лежат в справочнике "ИнформационныеКарты". Делать нечего, сами понимаете, всё сделал. Но! Какого лешего половина карт выходят на печать идеально, а половина нет? Они ведь абсолютно все идентичны! Разница только в имени, номере карты и номере моб.телефона. Всё остальное один в один, но одна карта отпечатает хорошо, а вторая вместо кода поставит "1234567890123" и напишет "Ошибочный штрих-код!" в ТекстКода и в КонтрольныйСимвол =_=
Код свой прилагаю ниже...

Процедура Печать() Экспорт

    ТабДок                     = Новый ТабличныйДокумент;
    ТабДок.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Купон";
    Макет                           = ПолучитьМакет("Печать");
    
    Шапка = Макет.ПолучитьОбласть("Шапка");
    Шапка.Параметры.Заполнить(ЭтотОбъект);
    ТабДок.Вывести(Шапка);
    // Штрихкод
    Штрихкод = Макет.ПолучитьОбласть("Штрихкод");
    Штрихкод.Рисунки.ШК.Объект.ТипКода = ПолучитьЗначениеТипаШтрихкодаДляЭУ(ЭтотОбъект.ТипШтрихКода);
    Штрихкод.Рисунки.ШК.Объект.Сообщение = ЭтотОбъект.КодКарты;
    ТабДок.Вывести(Штрихкод);

    ТабДок.ОтображатьСетку = Ложь;
    ТабДок.Защита = Ложь;
    ТабДок.ТолькоПросмотр = Ложь;
    ТабДок.ОтображатьЗаголовки = Ложь;
    ТабДок.Показать();

КонецПроцедуры // ПечатьЦенника(

Функция ПолучитьЗначениеТипаШтрихкодаДляЭУ(ТипКода)
    Перем Значение;
    
    Если ТипКода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN8 Тогда
        Значение = 0;
    ИначеЕсли ТипКода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN13 Тогда
        Значение = 1;
    ИначеЕсли ТипКода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN128 Тогда
        Значение = 2;
    ИначеЕсли ТипКода = ПланыВидовХарактеристик.ТипыШтрихкодов.Code39 Тогда
        Значение = 3;
    ИначеЕсли ТипКода = ПланыВидовХарактеристик.ТипыШтрихкодов.Code128 Тогда
        Значение = 4;
    Иначе
        Значение = -1;
    КонецЕсли;
    
    Возврат Значение;
КонецФункции


Для наглядности о чём я говорю:

Абиденко Александр Владимирович
EAN 13 Штриховая 000000043984 Дисконтная Розничный покупатель Накопительная карта скидок ВОИН +79619505000

Абанин Евгений                  
EAN 13 Штриховая 000000074292 Дисконтная Розничный покупатель Накопительная карта скидок ВОИН +79277409800
1 pechkin
 
24.01.20
17:54
контрльные цифры верные?
2 Elfidor
 
24.01.20
17:57
(1) Там где нормально печатает да, а там где нет как и писала "Ошибочный штрих-код!" в ТекстКода и в КонтрольныйСимвол
3 pechkin
 
24.01.20
17:59
(2) ну вот ты и разобрался в чем ошибка
4 Elfidor
 
24.01.20
18:04
(3) Так и это так понятно! Но даже если пишу жестко ТекстКода = 000000043984, а КонтрольныйСимвол = 8, то ситуацию это не меняет... После отработки кода не смотря на назначение всё равно пишет  "Ошибочный штрих-код!"