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