helpf.pro
Регистрация

v8.2 УП: Штрих-код

Kamil
29.08.2013 11:28Прочитано: 2823
Как поставить условие точнее написать правильно код если цифры в штрихкоде 13 цифр тогда ТипШтрихкода EAN13 а если больше или меньше тогда ТипШтрихкода Cod39??? Заранее спасибо!!!
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
29.08.2013 11:41Ответ № 1
(0) Kamil, используй функцию
Код 1C v 8.2 УП
 СтрДлина()   
Jonsony
29.08.2013 11:43Ответ № 2
А ничего что ещё есть EAN-8 ? из 8-ми цифр

а код - просто, проверка длины строки, штатная функция платформы

7.7, всё у чего ШК не 13 и не 8 цифр есть CODE39 :-)
Код 1C v 7.x
 
Если СтрДлина(ШК) = 13 Тогда
ТипШК="EAN-13";
ИначеЕсли СтрДлина(ШК) = 8 Тогда
ТипШК="EAN-8";
Иначе
ТипШК="CODE39";
КонецЕсли;


8.2
Код 1C v 8.2 УП
 
Если СтрДлина(ШК) = 13 Тогда
ТипШК="EAN-13";
ИначеЕсли СтрДлина(ШК) = 8 Тогда
ТипШК="EAN-8";
Иначе
ТипШК="CODE39";
КонецЕсли;


для достоверности и паранои можно предварительно на "ШК" натравить "СокрЛП()", откидывает "левые" пробелы до и после
Изменено 29.08.13 11:43:55
Jonsony
29.08.2013 11:45Ответ № 3
а ещё есть EAN 13 и 8 с добавочными 2 или 5 цифрами
то есть 13-ый будет от 15 до 18 символов, а 8-ой от 10 до 15
добавочные в литературе в основном, на журналах они наиболее часто
Mokey
29.08.2013 12:07Ответ № 4
(3) Jonsony
а ещё есть EAN 13 и 8 с добавочными 2 или 5 цифрами
,
вот это новость
Kamil
29.08.2013 12:12Ответ № 5
А как убрать пробелы в середине и справа и слева???
Jonsony
29.08.2013 12:17Ответ № 6
(4) Mokey, маловаста картинка, но там видно в принципе
(заменил картинку)
http://ivbox.ru/pictures/61ffc206d95a79fec5d6b56e0974b6dd.jpg
EAN-13 с добавочными 5 цифрам

журналы в них например номера выпуска заносят
то есть основной EAN-13 это регистрационый код самого издания, а в добавочных номер журнала или месяц и год

я с эти столкнулся 3 года назад, когда магазин автоматизировали и журналы были в продаже у нас.
эт ещё фигня :-) сканеры ШК по дефолту эти добавочные не читают :-)
включать надо
Изменено 29.08.13 12:25:58
Kamil
29.08.2013 12:18Ответ № 7
А как убрать пробелы в середине и справа и слева???
Jonsony
29.08.2013 12:24Ответ № 8
(5) Kamil,
справа убирает СокрП()
слева убирает СокрЛ
справа и слева убирает СокрЛП()

а вот внутри тут сложнее
если двойные пробелы то можно просто
Результат = СтрЗаменить(СтрокаГдеИщем, ЧтоИщем, НаЧтоМеняем);
Код 1C v 8.2 УП
 
Результат = СтрЗаменить(Номенклатура.Наименование, " ", " ");

в данном коде два пробела меняем на один :-)
если более двух пробелов подряд - тут проще по условию обрабатывать, но начинать праверку с больших значений
например не 2-3-4-5, а на убывание, 5-4-3-2
Kamil
29.08.2013 12:40Ответ № 9
Спасибо огромное!!!
Mokey
29.08.2013 14:24Ответ № 10
(6) Jonsony, мне интересно стало, что читает в этом случае сканер ШК с включенными опциями? я согласен с тем, что приписать можно всё, что угодно, даже ещё один ЕАN, что мелочиться-то, но вот как обычный сканер ШК это всё считает? Или он просто вернёт 15-18 цифр, а там догадывайся, EAN8 + ... , EAN13 + ... или что-то другое? Вот в чём вопрос, в обработке информации.
Можно, конечно, предположить, что кассир выбирает сам, что он в данный момент будет считытвать, а там свой алгоритм... но это, извините, не автоматизация, а вилы с удлинённой ручкой, только и всего, чтобы легче метать было))
Изменено 29.08.13 14:26:09
Jonsony
29.08.2013 22:30Ответ № 11
на чистом EAN13/8 вернёт 13 или 8 символов (цифр)
с дополнительными символами (допустим пятью) вернёт 13+5 или 8+5 символов(цифр)

а CODE39 может содержать не только цифры

например можно попытаться сложить символы считанного ШК
у EAN13/8 это пройдёт, ибо там только цифры
но вариант не 100%
CODE39 тоже может состоять из цифр (ну занесут так)

два захваченных ШК сканер не считает
исключение составляют ШК с дополнительными, типа того на что я ссылку приводил на обложке журнала, это сам по себе такой вид ШК
Mokey
30.08.2013 17:40Ответ № 12
Я как раз про обработку и вопрошаю, ещё раз подчёркивая, что добавить можно всё, что угодно, всё упирается в обработку считанного кода.
Если деятельность узконаправленная, то можно "заточить" обработку внешнего события именно под такой код, а если кодов надо обрабатывать много разных... вобщем, тема для отдельного долгого разговора))
Изменено 30.08.13 17:42:26
Jonsony
31.08.2013 14:02Ответ № 13
в основном на товарах EAN 13
хотя от сферы зависит
Jonsony
02.09.2013 10:16Ответ № 14
(12) Mokey, а хотя по сути говоря, по идее обработка должна получить считанный ШК и сравнить его с БД ШК и по результату сравнения выдать действия

задача распознования типов ШК не стоит обычно при считывании.
Mokey
02.09.2013 15:16Ответ № 15
(14) Jonsony, а какая задача стоит при считывании? для чего тогда вообще считывать, если не распознавать?
Пример:
1) 1234567893216
2) 1234567893216
только в первом случае это EAN13, а во втором EAN8 + 5.
номенклатуры с одинаковым штрихкодом не должно быть в базе, иначе как мы определим, который наш товар? Этот пример чисто гипотетический, не надо тыкать в меня контрольными символами и т.д.
А Вы говорите, что задача с распознаванием не стоит.
Изменено 02.09.13 17:52:07
Jonsony
03.09.2013 11:19Ответ № 16
Это не у меня, это у Kamil :-)
я с этим ещё два+ года назад разбирался.
Подсказка: Щелникни по Имени пользователя напротив ответа, и тем самым покажешь, что сообщение адресовано ему.
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.