Имя: Пароль:
1C
1С v8
Не сканируется созданный штрихкод
0 ATI_MSC
 
02.04.14
14:05
перевожу строку в штрихкод EanGnivc
Функция СформироватьСтрокуEanGnivc(ШтрихкодСтрокойСимволов) Экспорт
    Попытка
        Тест = Число(ШтрихкодСтрокойСимволов);
     Исключение
        ВызватьИсключение "Штрихкод может содержать только цифры";
     КонецПопытки;

     СимволыСпособовКодирования = "#$%&'()*+,";
     ЛевыйЗащитныйШаблон = "!";
     СреднийЗащитныйШаблон = "-";
     ПравыйЗащитныйШаблон = "!";

     СимволыШрифтаПоТипамКодов = Новый Соответствие;
     СимволыШрифтаПоТипамКодов.Вставить("L", "0123456789");
     СимволыШрифтаПоТипамКодов.Вставить("G", "ABCDEFGHIJ");
     СимволыШрифтаПоТипамКодов.Вставить("R", "abcdefghij");

     СпособыКодированияЛевойЧасти = Новый Массив;
     СпособыКодированияЛевойЧасти.Добавить("LLLLLL");
     СпособыКодированияЛевойЧасти.Добавить("LLGLLG");
     СпособыКодированияЛевойЧасти.Добавить("LLGGLG");
     СпособыКодированияЛевойЧасти.Добавить("LLGGGL");
     СпособыКодированияЛевойЧасти.Добавить("LGLLGG");
     СпособыКодированияЛевойЧасти.Добавить("LGGLLG");
     СпособыКодированияЛевойЧасти.Добавить("LGGGLL");
     СпособыКодированияЛевойЧасти.Добавить("LGLGLG");
     СпособыКодированияЛевойЧасти.Добавить("LGLGGL");
     СпособыКодированияЛевойЧасти.Добавить("LGGLGL");

     СпособКодированияПравойЧасти = "RRRRRR";

     Если СтрДлина(ШтрихкодСтрокойСимволов) = 13 Тогда
        КоличествоСимволовВГруппе = 6;
     ИначеЕсли СтрДлина(ШтрихкодСтрокойСимволов) = 8 Тогда
        КоличествоСимволовВГруппе = 4;
         СимволыСпособовКодирования = "";
         ШтрихкодСтрокойСимволов = "0"+ШтрихкодСтрокойСимволов;
     Иначе
        ВызватьИсключение "Поддерживаются только штрихкоды длиной 13 и 8 символов";
     КонецЕсли;

     ИндексСпособаКодирования = Число(Лев(ШтрихкодСтрокойСимволов,1));

     ЛеваяЧастьКода = "";
     ПраваяЧастьКода = "";

     Для ИндексСимвола = 1 По КоличествоСимволовВГруппе Цикл
        ЛеваяЧастьКода = ЛеваяЧастьКода
            + Сред(СимволыШрифтаПоТипамКодов[Сред(СпособыКодированияЛевойЧасти[ИндексСпособаКодирования],ИндексСимвола,1)]
                     ,Число(Сред(ШтрихкодСтрокойСимволов,(ИндексСимвола+1),1))+1
                     ,1);
         ПраваяЧастьКода = ПраваяЧастьКода
            + Сред(СимволыШрифтаПоТипамКодов[Сред(СпособКодированияПравойЧасти,ИндексСимвола,1)]
                     ,Число(Сред(ШтрихкодСтрокойСимволов,(ИндексСимвола+КоличествоСимволовВГруппе+1),1))+1
                     ,1);
     КонецЦикла;

     Результат = ""  + Сред(СимволыСпособовКодирования,ИндексСпособаКодирования+1,1)
                     + ЛевыйЗащитныйШаблон
                    + ЛеваяЧастьКода
                    + СреднийЗащитныйШаблон
                    + ПраваяЧастьКода
                    + ПравыйЗащитныйШаблон;
     Возврат Результат;
КонецФункции


ШтрихКод создаётся, но сканером невозможно считать, подскажите ,возможно данный штрих этим шрифтом невозможно считать сканером?
1 ATI_MSC
 
02.04.14
14:35
Хелп
2 Базис
 
naïve
02.04.14
14:39
Картинку штрихкода выложи на фотохостинг, у кого есть сканер - сможет с экрана считать. И цифры выложи - может, у тебя контрольный разряд неправильно посчитан.
3 ATI_MSC
 
02.04.14
14:55
(2)хм....а контрольную цифру вычислять надо? нельзя произвольный ряд цифр в штрихкод заложить?
4 antoneus
 
02.04.14
14:56
(3) надо.
5 Shurjk
 
02.04.14
15:08
Было как то раз такое, при чем не читалось именно в терминальной сессии. Т.е. если локально то тот же штрих код но локально тем же сканером читался. Решилось тем что подкрутив параметры печати сделал картину покрупнее.
6 Базис
 
naïve
02.04.14
15:40
Почитай, что такое ШК. В случае EAN-13 это 12 любых цифр и контрольный разряд, рассчитанный по этим 12-ти.

Традиции форума рекомендуют красивым девушкам помещать собственное фото в карточку.