|
чем напечатать 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с . проконсультировать по старой дружбе. работал у них когда то. С десадвом отправил к помоему едисофт у них. Как я понял, еще только тесты идут и провайдеры сами не в курсе. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |