Вход | Регистрация



чем напечатать SSCC код в 1с7.7

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

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

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

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

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

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

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

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


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует