Имя: Пароль:
1C
 
Зачем хранить все 13 символов EAN13?
0 Прохожий
 
02.06.26
13:00
Последний символ - контрольная сумма. Его всегда можно посчитать, это "не значимый" символ. Кроме того в таблице всегда можно через МАКСИМУМ найти последний занятый штрихкод. А зачем хранить 13 символ вообще? По сути он нужен только при ручном вводе оператором, но там можно легко посчитать контрольную сумму. Остальные случаи - это уже верифицированные данные.
1 paramedic
 
02.06.26
13:02
А затем, чтобы отсеять ошибки чтения.
2 timurhv
 
02.06.26
13:07
Большая экономия? 2 байта на одну запись EAN.
3 paramedic
 
02.06.26
13:14
(2) Для ЕАН достаточно простой ASCII строки. Так что вообще 1 байт ))
4 p-soft
 
02.06.26
13:24
(0) хранить никто не заставляет.
но с чего решили, что вычисления бесплатны в любой ситуации?
5 uno-group
 
02.06.26
13:28
А нафига тебе последний занятый ШК их специальная служба выдает. И было такое, что ШК на 1000 заявку выдавали раньше чем ШК на 999. так что предугадать ШК с довольно большой вероятностью ты можешь но она не равна 100%
6 Garykom
 
гуру
02.06.26
13:32
(0) С чего взял что только EAN-13 (GTIN-13) существует?
Еще есть GTIN-14, где как раз 13 значащих цифр
7 АгентБезопасной Нацио
 
02.06.26
13:34
(5) затем, что локальный ШК ты имеешь право формировать для себя самостоятельно.
8 uno-group
 
02.06.26
13:39
+(6) А еще есть Code 128 где может быть сколько угодно символов в том числе и 13 знаков. и только по контрольному символу можно определить какой это код если в нем только цифры.
Он по другому алгоритму рассчитывается.
Каждому символу присваивается свое значение (от \(0\) до \(102\)).Вычисляется взвешенная сумма: значение стартового символа + значение первого символа \(\times 1\) + значение второго \(\times 2\) + ...Итоговая сумма делится на \(103\)
9 uno-group
 
02.06.26
13:42
(7) если это внутренний ШК зачем еан 13 юзать. Я Соде 128 и код товара использую и не парюсь. вообще дополнительных реквизитов не нужно все 13 символов экономятся. автоматически поддерживается уникальность кода и при поиске юзеру меньше символов вводить.
10 uno-group
 
02.06.26
13:47
Есть еан 8 тоже читается всеми сканерами и 99% народа весь возможный ассортимент гарантировано перекрывает. Вопросов не будет если внутренний код с товара не оторвал и он к комму то уехал что у товара неправильная маркировка.
ИМХО использовать EAN-13 для внутренней маркировки зло которое рано или поздно аукнется.
11 АгентБезопасной Нацио
 
02.06.26
13:57
(9) затем, что оборудование, например, может печатать только EAN.
(10) если пользоваться стандартами, то вероятность невелика. А вот когда разные "умельцы" изобретают что-то своё - тут бывает изрядно гемора.
12 Kigo_Kigo
 
02.06.26
15:25
(10) Врятли аукнется, если использовать его начиная с "2"
13 LLeonidov
 
02.06.26
16:15
(0) уже говорили что хранение в 1с 12 и 13 разрядов одинаковое количество байт? Для мс скюль  9.

А вот если взять GTIN и серию, принять на веру что в самом начале всегда 010, а серия 13 валидных символов, то можно это все упаковать в один УИД. Из УИД создать ссылку из ссылки справочник и все это добро с криптохвостом можно хранить в 100 байтах с учетом основного индекса и лишних полей в справочинке внутри мс скюль или файловой базы.
14 uno-group
 
02.06.26
17:05
(11) нет такого оборудование в 21 веке. Что нет желания разбираться как печатать другие кодировки верю.
15 Fish
 
гуру
02.06.26
17:10
(14) Он, наверное, имел ввиду, что оборудование умеет читать только EAN-13.
Потому что даже древние принтеры умели любой ШК печатать.
16 АгентБезопасной Нацио
 
02.06.26
17:10
(13) угу. а у гуид поднять основание до 36 как в клюшках. Или еще выше.
Извращаться - так извращаться!
17 LLeonidov
 
02.06.26
17:16
(16) нет уид хранить как уид самое сжатое 16 байтное значение в 1с. Хранилище по больше будет размером. Извращаться конечно только ради медленных 32 битных касс и когда тебе надо 10лямов серий на этих кассах. В остальных случаях забить и жить хоть с строковым представлением этих серий.
18 АгентБезопасной Нацио
 
02.06.26
17:17
(15) Был какой-то мобильный принтер размером с пейджер, на 2 батарейках - он только EAN13 дрюкал. Тупой, зато очень удобный - висел на поясе, не мешался, работал достаточно долго. А на лазерном - действительно что угодно печатается, но его на пояс обычно не повесишь.
А читать - так сейчас читают почти все всё что угодно. копеечный сканер-кольцо читает все известные одномерные. чуть подороже - и 2Д.
19 Злопчинский
 
02.06.26
17:53
(0) потому что пользует и эксплуатанты автоматизированных систем - существа "тупые" и не поймут что к чему. И два: при обменах и отсылающая и принимающая сторона тогда должны обеспечивать одинаковый "контекст", что далеко не факт.
20 Злопчинский
 
02.06.26
17:55
И Gtin - он вообще 12 цифр, а не 13 и не 14
..
21 NorthWind
 
02.06.26
22:00
(0) никто не заставляет, не хотите - не храните. Кажется, в оборудовании bizerba я встречал формат 12 символов для ШК EAN13... хотя могу соврать за давностью лет. Оба варианта имеют право на существование. Память сейчас обычно не настолько дорога, чтобы забивать себе этим голову.
22 Кирпич
 
02.06.26
22:10
(0) А зачем cчитать контрольную сумму, если её можно просто записать в 13-й символ?
23 timurhv
 
03.06.26
01:08
(3) В 1С 8? Там UTF на всю базу, плюс ВРЕГ и НРЕГ
01GTINСерияАа одинакова из-за настроек 1С в рамках СУБД как 01GTINСерияАА
(13) Нет, не всегда. Табачка - не начинается с 010
(16) Я максимум извратился = не хранить хеш марки как в типовых SHA256, а храню обрезаную марку + хеш самописный. Все что после 01GTIN21 проверяется на регистр, если верхний то равно 1, если нижний 0 и потом двоичное значение в 98-ричное конвертируется. Получается в строке хранится не длинная строка с хешем, а условно символ "Щ" или "Й", что позволяет делать внутренние соединения по таблицам в рамках 1С и не хранить избыточную информацию.
24 timurhv
 
03.06.26
01:10
(20) Ну как сказать, поставщики присылают иногда 146...Если записывать как в (0) в 12 сиволов, то типа ОК без предварительной проверки на 0.
25 Конструктор1С
 
03.06.26
04:53
(0) вычисления тоже не бесплатны. Ну и представь ситуацию, у тебя есть API (общий модуль), который возвращает рандомное количество записей с кодами. Тогда тебе придется многократно вычислять контрольную циферку, что напрочь убъет твою экономию на одном символе (которой нет)
26 Конструктор1С
 
03.06.26
04:57
(13) 13 символов прекрасно влезут в уид о 32-х символах
(16) зачем?
27 Web00001
 
03.06.26
05:44
(0)Как вы задолбали экономисты, которые экономят на одном символе, ух горит от этого. Начинаешь интегрироваться с такими умельцами и все время надо держать в голове, там здесь в базе у нас код без цифры, значит на печатку, надо дорисовать, а тут приходит с цифрой значит надо обрезать. Постоянно эта возня, здесь добавь там убери, еще держи в голове, где он есть, где его нет. Это все для того, чтобы что? Чтобы последний вычислить? Ну чтобы не загружать ВСЕ штрихкода во временную таблицу, отрезать последний и делать максимум. Вот ради этой операции, ты собираешься навести движ с отсутствием последнего символа при хранении? Не надо дядя.
28 DrZombi
 
гуру
03.06.26
06:14
(0) Скорость, работать с готовыми данными куда быстрее, нежели с полуфабрикатом.
На 1-3 записях в час, это не скажется.
А на полтора миллиона записей, вы уже будете замечать фризы :)
29 DrZombi
 
гуру
03.06.26
06:15
(27) 👍
30 DrZombi
 
гуру
03.06.26
06:17
+(27)  А потом туда же запилят Штрих код ЕАН128, и вся экономия к коту под хвост :)
31 Прохожий
 
03.06.26
06:44
(1) ?
(2) Поиск максимального выданного если подряд новые выдаешь
Сортировать можно по человечески
(5) "Внутренние штрихкоды компании по международным стандартам должны начинаться строго с цифры 2 (в диапазоне 200–299). Этот диапазон зарезервирован глобальной системой GS1 специально для товаров, которые продаются только внутри одной торговой сети или предприятия и не подлежат регистрации." (с) где-то копирнул
(6) Следы не путаем!
(7) Молодец!
(8) А ещё есть негры и гомосексуалисты. Но эта ветка не про них.
(9) Штрихкодировать можно что угодно, это всего лишь метод сплошной идентификации. Даже у автобусных
х билетов в СССР были номера. Даже были счастливые и несчастливые билетики. Счастливые полагалось съесть.
(10) Сканеры не интересуют, если распечатывать то контрольную сумму можно посчитать, а если считывать и искать в базе, то последнюю цифру отбросить.
(25) "Пошел в лес и встретил медведя - убегу - догонит - на дерево влезу - а в лесу нет деревьев"  выдумщики такие выдумщики.
32 Прохожий
 
03.06.26
06:45
(27) Дарю
Функция СгенерироватьEAN13(БазоваяЧасть12Цифр) Экспорт
    
    Четные = 0;
    Нечетные = 0;

    Для Индекс = 1 По 12 Цикл
        Цифра = Число(Сред(БазоваяЧасть12Цифр, Индекс, 1));
        Если Индекс % 2 = 0 Тогда
            Четные = Четные + Цифра;
        Иначе
            Нечетные = Нечетные + Цифра;
        КонецЕсли;
    КонецЦикла;
    
    Сумма = Четные * 3 + Нечетные;
    Остаток = Сумма % 10;
    КонтрольнаяЦифра = ?(Остаток = 0, 0, 10 - Остаток);
    
    Возврат БазоваяЧасть12Цифр + Строка(КонтрольнаяЦифра);
    
КонецФункции
33 Прохожий
 
03.06.26
07:19
(27) А теперь пользователь хочет посортировать регистр, там чего резать ему? Контрольная сумма - зло криворуких архитекторов прошлого. А не гениальное решение.
В голове держать не надо, надо работать с текущим 12 значным номером. А при необходимости превращать его в штрихкод EAN13. Пакеты в TCPIP например тоже содержат заголовок и полезную нагрузку. Никакой проблемы. Зачем таскать с собой бесполезный хвост?
34 Eiffil123
 
03.06.26
07:58
(33) с ИНН тоже выкидываем 1 символ? и из номера банковского счета?
35 Прохожий
 
03.06.26
08:01
(34) Их выдают, читайте внимательнее. Здесь про другое
36 Web00001
 
03.06.26
08:08
(33) А теперь пользователь хочет посортировать регистр, там чего резать ему.
Пусть сортирует, кто ему мешает?
>Контрольная сумма - зло криворуких архитекторов прошлого
Это скан распечатанной информации, немного потерся код и пришел тебе со сканера не тот который напечатан. Контрольный символ нужен для этого. Чтобы было понятно, что сканирован тот код, который был напечатан. Ничего гениального.

>В голове держать не надо, надо работать с текущим 12 значным номером.
На печать нужно 13. Иначе не все сканеры читают, это раз, проверить, что правильно данные считались корректно без контрольного символа невозможно, это два. Когда данные прилетают, надо понимать, какие прилетели. С символом, без символа и привести к нужному виду. Если у вас все, всегда читается и проблем нет. Возможно вам он не нужен. У нас при печати, он был нужен.
37 Прохожий
 
03.06.26
08:21
(36) Какую печать?* Какие потерсы? Вы ветку читаете или в голове выдумываете? В базе данных 13 символ как козе футболка.
38 АгентБезопасной Нацио
 
03.06.26
08:27
(35) штрихкоды тоже "выдают". С контрольной цифрой. И ИННы выдают с контрольной цифрой (а то и двумя).
А еще можно текст хранить без пробелов, и при выводе проверять текст по словарю,  и вставлять в нужные места пробелы.
39 Прохожий
 
03.06.26
08:30
Очевидно же что там где вводят вручную или сканят сканером можно из базы 12 символов вытащить и просчитать. А там где идут обмены между двумя роботами там контрольная цифра зачем? Архитекторы тупые.
40 Прохожий
 
03.06.26
08:31
(38) Когда нечего сказать по сути можно абсурдить.
41 Web00001
 
03.06.26
09:27
(37)У меня сервис делает определенную движуху по продукции из базы, которая была найдена по штрихкоду. Кто его дергает, код одной из библиотек внутри 1с, код который получил эти данные из сканера или еще кто-то, мне по сути неважно. Это может потом и внешний сервис делать. Никак не связанный с нашей базой и компанией. Этот сервис содержит ряд методов, в том числе он может отдавать на печать табдоки, с этим штрихкодом. И вот приходится постоянно думать, какой длины штрихкод и почему он такой длины. Не выглядит сложно, но ровно до того момента когда начинают читать разные штрихкоды не только еan13. Все решаемо конечно. Но, нередко костылями. Мне не нравится. И в целом то как бы и ладно, можно пережить. Но непонятно, как вы выражаетесь зачем козе футболка. Какую задачу выполняет экономия этого символа. Его убрали, что бы, что?
Зы: что такое потерсы, я не знаю.
42 АгентБезопасной Нацио
 
03.06.26
09:15
(41) >>Зы: что такое потерсы, я не знаю.
Гаррисы же!
43 d4rkmesa
 
03.06.26
09:33
Это мне напоминает тему с Сирожей на ИС, где он вопрошал, зачем криптохвост КИЗ-ам: https://forum.infostart.ru/forum9/topic321442/
44 uno-group
 
03.06.26
09:33
Чем 13 символ мешает сортировке.
Роботам пофик сколько символов в обмене. Прирост скорости минимален. Экономия места минимальна. нагрузка на проц. для вычисления 13 символа минимальны. А вот стоимость кодинга существенна. Если тебе нужно продать время работы или создать ее видимость, то можно извращается. В остальных случаях работает не трож.
45 Прохожий
 
03.06.26
11:51
(41) Архитектор - молодец!
(43) Долгое время винчестеры были на блинах, по сути грампластинка 18 века. Но все же перешли на микросхемы. Мышление индустриального общества сменится мышлением постиндустриального.
(44) Тринадцатый символ снижает ошибку неправильного ввода штрихкода руками в 10 раз. Но 10% вероятности все же остается. Давайте два добавим символа и будет EAN15 с тремя контрольными, кому мешают 3 символа? Зато вероятность ручной ошибки будет меньше всего лишь 0,1%? И все только для проверки ручного ввода штрихкода когда чего-то потерлось. "Вот ради этой операции" и придумано такое кривое архитектурное решение как 13 символ. Больше оно никому никогда не нужно. Роботы передают данные безошибочно.
Хотя есть 0,0000000000000000000000000091 % штрихкодов, которые приходится вводить людям когда они с этикеткой налажают. Остальные операции ввода, передачи ,чтения прекрасно уже автоматизированы и не требуют защиты от дураков.
46 Прохожий
 
03.06.26
11:54
Интересно что сейчас людей заменяют роботами помощниками и тогда польза контрольной цифры станет равна 0.
47 Прохожий
 
03.06.26
12:39
"вот стоимость кодинга существенна." - в том и дело что роботов с ИИ кодить не надо. Купил новую стиральную машину и понял что пора кодингов прошла. Она сама решает что и как просто по нескольким показателям периодически интерполирует процесс.
48 Dedal
 
03.06.26
13:13
(0) Можно, а зачем?
49 uno-group
 
03.06.26
13:32
(45) Не так. 13 символ выявляет 100% ошибок когда ошиблись при вводе в 1 символа. 10% ошибок остается когда несколько цифры переставили местами, но вероятность самой такой ошибки не слишком высока. А если это сканирование ШК то она вообще невозможна.
50 Web00001
 
03.06.26
13:41
(45)Ответ то на вопрос будет? Не использовать этот символ, чтобы что? Какая задача решается? Как я понял тут архитектор в чате. И спроектировано какое-то решение, красоту которого ломает 13 символ?
51 d4rkmesa
 
03.06.26
21:47
(45) >>Мышление индустриального общества сменится мышлением постиндустриального.

Очень удобно прибиться к тому, к чему не имеете никакого отношения. Мышление сменится вне зависимости от того, будут ли EAN-13 использоваться и в каком виде. Эта ветка - просто ничтожная доля энтропии в части влияния на процесс смены мышления.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн