Проверка вводимого штрихкода не проходит в случае если контрольная цифра 0 #696872


#0 by palpetrovich
Проверку делаю по схеме 1. Сложить все цифры, которые стоят на четных местах: 2. Полученную сумму умножить на 3: 3. Сложить все цифры, которые стоят на нечетных местах, без контрольной цифры: 4. Сложить числа, полученные в пунктах 2 и 3: 5. От полученной суммы отбросить десятки: получим 2, 6. Из 10 вычесть полученное в пункте 5 число: Сформированный 1с штрихкод 2000007093010 проверку не проходит ...я где-о неправ?
#1 by palpetrovich
* в "получим 2," - не читать :)
#2 by NS
Какую проверку не проходит?
#3 by NS
Проходит проверку. Штрих-код подлинный, контрольный знак верный.
#4 by palpetrovich
да, онлайн проверку проходит, не прохдит в 1с - по алгоритму из ...да и если "ручками" посчитать по этому алгоритму - тоже не проходит
#5 by Ненавижу 1С
если ручками посчитать, то проходит вообще-то
#6 by palpetrovich
хм, где у меня прокол?
#7 by Torquader
Наверное, цифры на нечётных чётных местах, исключая саму контрольную цифру ?
#8 by palpetrovich
+ может в п.6 надо срвнивать только последнюю цифру? ...редкость конечно,но могли-бы и упомнуть в алгоритме
#9 by Torquader
Ну, если строго, то 10-0=10, но циФра 0 (единицу тоже отбросить).
#10 by palpetrovich
наверное, просто в том алгоритме, который мне попался на просторах интернета это не описано :)
#11 by Torquader
В каком-то иностранном алгоритме упоминалось что-то типа "комплементарная до 0 цифра", что более подходит по смыслу.
#12 by Torquader
#13 by NS
Ты подумал что последней ЦИФРОЙ должно быть 10? Нет такой цифры :)
#14 by Torquader
Function TestBarCode(ByRef b)     l=Len(b)     If l<>13 Then ' длина у нас должна быть 13 символов     For l=1 To 11 Step 2             k=k-48         Else ' если не цифра, то априори неверно     Next     r=(10-(r Mod 10))Mod 10         k=k-48     Else ' контрольная цифра - тоже цифра
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С