Имя: Пароль:
1C
1С v8
Вывод\генерация штрихкода
,
0 Trotter
 
10.07.16
18:48
есть макет, на макете "Элемент управления 1С: Печать штрихкодов"

Пишу:
ОбластьЦенника.Рисунки.D1.Объект.Сообщение = СгенерироватьШКСообщение(ШтрихКод);
ОбластьЦенника.Рисунки.D1.Объект.ТекстКода = СгенерироватьШКТекст(ШтрихКод);

Функция СгенерироватьШКСообщение(ШтрихКод)
       Если КомпонентШК <> Неопределено Тогда
        Попытка
        
            КомпонентШК.ТипКода = 1;
            мСтр = КомпонентШК.Сообщение = ШтрихКод;

            
        Исключение
            // Ошибка
        КонецПопытки;
    КонецЕсли;
Возврат мСтр;
КонецФункции

Функция СгенерироватьШКТекст(ШтрихКод)
       Если КомпонентШК <> Неопределено Тогда
        Попытка
            КомпонентШК.ТипКода = 1;
            мСтр = КомпонентШК.ТекстКода = ШтрихКод;
            
        Исключение
            // Ошибка
        КонецПопытки;
    КонецЕсли;
Возврат мСтр;
КонецФункции

Пишет, что мСтр = Ложь! Не как не могу опнять почему, как сделать одну функцию вместо двух ?
Почему ЛОЖЬ ?
ШтрихКод = Строка
1 Trotter
 
10.07.16
18:49
Прочитал
http://its.1c.ru/db/metod8dev/content/1838/hdoc
вроде должно работать, но...
2 Зая Бусечка
 
10.07.16
19:04
мСтр = КомпонентШК.ТекстКода = ШтрихКод

Картинка с Карлом...
3 NorthWind
 
10.07.16
19:15
(0) потому что в мСтр у вас ложится результат сраванения КомпонентШК.ТекстКода = ШтрихКод. Посмотрите сами внимательно, что вы написали.
4 NorthWind
 
10.07.16
19:16
многократного присваивания через = встроенный язык 1С не поддерживает, есличо. Надо два выражения писать, ага
5 Trotter
 
10.07.16
19:57
Спасибо, что - то я...
А почему ШК 4602486002057 - формируется
А вот этот вот код нет 2312345000000
?
6 Trotter
 
10.07.16
20:04
Пишет "Ошибка штрих-кода", почему не как не пойму
7 Trotter
 
10.07.16
20:21
"Ошибка штрих-кода" на ОбластьЦеника.Рисунки.D1.Объект.ТекстКода = СгенерироватьШКТекст(ШтрихКод);
8 Trotter
 
10.07.16
20:23
"Ошибочный Штрих-код" пардон
9 hhhh
 
10.07.16
20:34
(8) ну найди этот текст в конфе, посмотри когда возникает.
10 Trotter
 
10.07.16
20:41
(9) Вот тут сразу вываливает ошибку
Функция СгенерироватьШКСообщение(ШтрихКод)
       Если КомпонентШК <> Неопределено Тогда
        Попытка
    
            КомпонентШК.ТипКода = 1;
            КомпонентШК.Сообщение = ШтрихКод;
            мСтр = КомпонентШК.Сообщение;
        Исключение
            // Ошибка
        КонецПопытки;
    КонецЕсли;
Возврат мСтр;
КонецФункции
ТипКода может не верный или что ? пишут, что просто должен быть 13-ти значным
11 NorthWind
 
10.07.16
21:22
(5) А вот этот вот код нет 2312345000000?

Последний контрольный символ для такого ШК должен быть 2, т.е. верный ШК 2312345000002. Проверяйте ваш алгоритм формирования контрольного символа, в нем ошибка.
12 Доминошник
 
10.07.16
21:22
(5) Правильный штрихкод 2312345000002, а не 2312345000000
Смотри заполнение контрольной цифры http://www.tehreg.ru/scode_kontr.htm
13 Trotter
 
10.07.16
21:40
(11), (12) Не хочет.
14 Trotter
 
10.07.16
21:45
(11) Штрихкод передаётся как строка, формирую так:
ШтрихКод = СокрЛП("23" + СтрЗаменить(Результат[0].Код, Символ(160), "") + "000002");
Функция СгенерироватьШКСообщение(ШтрихКод)
       Если КомпонентШК <> Неопределено Тогда
        Попытка
            КомпонентШК.ТипКода = 1;
            КомпонентШК.Сообщение = ШтрихКод;
            мСтр = КомпонентШК.Сообщение;
        Исключение
            // Ошибка
        КонецПопытки;
    КонецЕсли;
Возврат мСтр;
КонецФункции
15 NorthWind
 
10.07.16
21:46
(14) + "000002"); - здесь ошибка. Контрольная цифра зависит от содержимого. Вы должны ее считать каждый раз
16 NorthWind
 
10.07.16
21:47
мы вам написали 2312345000002 - это конкретное значение штрих-кода, а вы теперь пытаетесь пихать двойку во все подряд. Это не правильно. Для какого-то другого кода там может быть тройка, девятка, что угодно.
17 Trotter
 
10.07.16
21:49
(16) Спасибо. Сейчас попробую по инструкции  )
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой