Имя: Пароль:
1C
 
чем напечатать SSCC код в 1с7.7
0 mishaPH
 
модератор
05.03.18
10:55
Коллеги.
Возникла необходимость.
баркоде такого формата нет
StrokeScribe GS1-128 не печатает. только ЕАН-128.
1 Fragster
 
гуру
05.03.18
11:01
zint
2 mishaPH
 
модератор
05.03.18
11:02
(1) мерси. а для 7ки прикручивается?
если есть готовые модули. Можно контору попросить купить
3 spectre1978
 
05.03.18
11:03
(0) EAN128 - это оно и есть. Печатается стандартной компонентой, которая баркод. Только не будет красивых скобочек в HRC а-ля (11).... Но содержимое самого кода будет верным и будет корректно читаться
4 Fragster
 
гуру
05.03.18
11:05
(2) так ведь обычная командная строка, безо всяких внешних компонент.
5 Fragster
 
гуру
05.03.18
11:05
и бесплатно, да
6 mishaPH
 
модератор
05.03.18
11:06
(3) ну не совсем так. еан 128 это тоже транспортно логистический блок и там свои должны быть символы обязательно

например кол 0008888888899999999 он не воспроизводит и пишет ошибку (00)0888888899999999
7 mishaPH
 
модератор
05.03.18
11:07
(4) а как он выводит его на форму печати в 1с.
8 spectre1978
 
05.03.18
11:08
(6) нет никакой разницы. В действительности что GS1-128, что EAN128, что SSCC - это суть один и тот же код. Если не верите, найдите образцы "кошерного" SSCC, потом сформируйте компонентой (только скобки уберите) и сравните штрихи визуально.
9 Fragster
 
гуру
05.03.18
11:09
(7) с помощью программиста, который полученную через командную строку картинку с диска выводит в табличный документ.
10 spectre1978
 
05.03.18
11:09
+ (8) в случае с SSCC все еще проще, потому что там нет полей переменной длины и не надо вставлять разделители. Поэтому справится даже старинная компонента
11 spectre1978
 
05.03.18
11:14
недостаток старой компоненты, которая шла с семеркой - она не умеет в EAN128 "пропускать" скобки. Т.е. она их воспринимает как символы кода (потому что это в общем-то корректные символы CODE128) и соответственно вставляет в него. А надо бы, чтобы она их игнорировала при построении кода. И второй момент - по-моему, старая компонента не умеет работать с символами FNC. Хотя здесь, может быть, я ошибаюсь. Но для SSCC они и не нужны.
12 mishaPH
 
модератор
05.03.18
11:16
(11) вообщето в стандарте юнискан 30 там есть спец разделитель. и прямо написано. что без него обычный 128 не прокатит. дело даже не в скобочках
13 spectre1978
 
05.03.18
11:21
(12) Поле (00) - фиксированного размера, значит, разделитель необязателен. Разделитель обязателен только для полей переменного размера
14 spectre1978
 
05.03.18
11:22
я в свое время просто нашел онлайн-генератор кодов и проверил несколько своих образцов. Сетка вроде тоже принимает, претензий не имеет по этим кодам...
15 mishaPH
 
модератор
05.03.18
11:26
(13) (14) те взять просто коде 128 и сформиовать на свой вкус? добавив к коду еще последним некий контрольный символ?

это для тандера. в принципе можно сделать и прикинутся валенком отправив им на согласование.
код (00) можно вообще в ручную сформировать.
16 Torquader
 
05.03.18
11:32
А разве в компоненте нельзя отдельно задать данные для формирования штрих-кода, а отдельно текст для вывода под ним ?
17 spectre1978
 
05.03.18
11:49
(16) Почему бы и нет... Разумно. Я чет до этого даже не додумался, не особенно надо было, и так принимают.
18 spectre1978
 
05.03.18
11:57
(15) Посмотрите сами, что получается.
https://imgur.com/a/kGaYl
19 spectre1978
 
05.03.18
12:02
Да, контрольный символ я действительно рассчитывал точно также, как и для EAN13, но для бОльшей длины кода.
20 spectre1978
 
05.03.18
12:02
не CODE128, а EAN128. Там есть некоторые отличия.
21 mishaPH
 
модератор
05.03.18
14:53
(20) StrokeScribe может еан128. и по идее ей не надо подсовывать контрольный символ. на код ругается и не выводит. Попробую конророльный посчитать
22 spectre1978
 
05.03.18
15:12
(21) я использовал штатный activex, предназначенный для совместного использования с семерочными конфигурациями. BARCODE.OCX, по-моему, называется.
23 spectre1978
 
05.03.18
15:13
и да, контрольный символ там надо было посчитать и добавить к коду. Но это делается совершенно прозрачно, в глобальнике у торговли есть процедура глКонтрольныйСимволEAN, которая элементарно дорабатывается под произвольную длину кода.
24 spectre1978
 
05.03.18
15:16
О, вспомнил. ActiveBarcode эта штука называлась, вот.
25 mishaPH
 
модератор
05.03.18
15:22
(23) (22) мерси.. посмотрю штатную торговлю..
26 mishaPH
 
модератор
11.03.18
16:42
(23) мерси. все почти получилось. можно для тупых, как переделать эту функцию

Функция глКонтрольныйСимволEAN(ШтрКод, Тип) Экспорт
    
    Четн = 0;
    Нечетн = 0;
    
    Если Тип = 13 Тогда
        КолвоИтераций = 6;
    Иначе
        КолвоИтераций = 4;
    КонецЕсли;
    
    Для Индекс = 1 По КолвоИтераций Цикл
        Четн = Четн + Сред(ШтрКод, 2 * Индекс, 1);
        Нечетн = Нечетн + Сред(ШтрКод, 2 * Индекс - 1, 1);
    КонецЦикла;
    
    Если Тип = 13 Тогда
        Четн = Четн * 3;
    Иначе
        Нечетн = Нечетн * 3;
    КонецЕсли;
    
    КонтЦифра = 10 - (Четн + Нечетн) % 10;
    
    Возврат ?(КонтЦифра = 10, "0", Строка(КонтЦифра));
    
КонецФункции // глКонтрольныйСимволEAN()

данный код будет длинной без контрольного символа 17 символов
27 spectre1978
 
11.03.18
16:49
Я на ее основе просто написал свою:

Функция КонтрольныйСимволПроизвольногоШК (ШтрКод, КоличествоЗначащихСимволов) Экспорт
    
    Четн = 0;
    Нечетн = 0;                                          
    
    НечетноеКоличествоСимволов = КоличествоЗначащихСимволов % 2;
    
    КолвоИтераций = НечетноеКоличествоСимволов + Цел (КоличествоЗначащихСимволов / 2);
    
    Для Индекс = 1 По КолвоИтераций Цикл
        Четн = Четн + Сред(ШтрКод, 2 * Индекс, 1);
        Нечетн = Нечетн + Сред(ШтрКод, 2 * Индекс - 1, 1);
    КонецЦикла;

    Если НечетноеКоличествоСимволов = 0 Тогда
        Четн = Четн * 3;
    Иначе
        Нечетн = Нечетн * 3;
    КонецЕсли;
    
    КонтЦифра = 10 - (Четн + Нечетн) % 10;
    
    Возврат ?(КонтЦифра = 10, "0", Строка(КонтЦифра));
    
КонецФункции
28 mishaPH
 
модератор
11.03.18
16:54
(27) огромное мерси
29 spectre1978
 
11.03.18
16:59
(28) кстати, вопрос. Коль скоро вы делаете SSCC для тандера, расскажите, вы каким образом им дополнительную инфу посылаете? Они отправили письмо, в котором пишут, что хотят модифицированный документ DESADV, но в письме нет никакой информации по названиям полей/тегов, которые они хотят. EDI-провайдер вообще сделал круглые глаза и сказал что Тандер им ничего не сообщал насчет таких своих хотелок. Вы передаете что-то в EDI документах касательно SSCC и если да, то как?
30 mishaPH
 
модератор
11.03.18
17:01
(29) с этим вопросом надо к провайдеру.

я этим просто не занимаюсь. тут меня попросили помочь с 1с . проконсультировать по старой дружбе. работал у них когда то.

С десадвом отправил к помоему едисофт у них.

Как я понял, еще только тесты идут и провайдеры сами не в курсе.