icon_gotop
18+
autorisation
Войти | Регистрация
Рекламный баннер 990x90px top

Россельхознадзор размещает алгоритм перекодирования номеров средств маркирования для электронных средств маркирования, которые не поддерживают федеральный формат номеров

17:56 19.04.2024 16+
Россельхознадзор размещает алгоритм перекодирования номеров средств маркирования для электронных средств маркирования, которые не поддерживают федеральный формат номеров

Вниманию госветслужб субъектов Российской Федерации,

Хозяйствующих субъектов – владельцев животных,

IT-компаний, разрабатывающих сервисы

для животноводов, ветеринарии, хозяйствующих

субъектов – владельцев животных

В целях увеличения объема номеров при неизменном количестве символов в формат федерального уникального номера средства маркирования (УНСМ) введены буквы. Однако не все электронные средства маркирования могут его поддерживать.

В этой связи Россельхознадзор публикует алгоритм пересчёта федерального УНСМ в формат чисто цифровых номеров, поддерживаемый некоторыми электронными средствами маркирования.

Пока Служба продолжит выдавать УНСМ цифро-буквенного формата. Для «вшивания» таких номеров в электронные средства маркирования, которые поддерживают только цифровой формат, их необходимо будет сначала перевести в этот цифровой формат по приведенной ниже схеме.

В дальнейшем в Хорриоте будет реализован функционал по автоматическому перекодированию цифро-буквенных УНСМ в цифровые и обратно – из цифровых в цифро-буквенные. При заказе цифровых УНСМ Россельхознадзор будет выдавать цифро-буквенные номера и указывать их цифровые аналоги. В карточке животных/групп животных будет добавлена поддержка обоих форматов номеров одновременно.

До реализации изложенных функций в системе необходимо вносить только номер, который был выдан изначально, т.е. номер федерального цифро-буквенного формата.

При добавлении поддержки нового цифрового формата в Хорриот для электронных носителей поддержка цифро-буквенного формата не будет прекращена и будет работать в полном объёме.

Федеральный УНСМ цифро-буквенного формата состоит из 11 символов и имеет следующий вид: RU[1-2][a-z0-9]{7}[0-9]

а) первые два разряда заполняются заглавными буквами – «RU», показывающими, что животные подвергнуты учету в Российской Федерации;

б) третий разряд заполняется цифрой «1» или «2»:

- «1» в случае, если животное подвергнуто индивидуальной идентификации;

- «2» в случае, если животное подвергнуто групповой идентификации;

в) 7 символов с четвертого по десятый разряды заполняются уникальной последовательностью цифр и строчных английских букв (если УНСМ был выдан до мая 2021, то с четвертого по десятый разряды состоят только из цифр);

г) одиннадцатый разряд является служебным и содержит контрольную сумму (далее – КС), вычисленную для всего номера (с 1-го символа по 10-й) по алгоритму «Схема проверки контрольной суммы» с основанием 10.

После преобразования в цифровой формат федеральный УНСМ будет состоять из 15 символов и будет иметь следующий вид: 643[1-2][0-9]{11}

а) первые три разряда заполняются цифрами «643», показывающими, что животные подвергнуты учету в Российской Федерации;

б) четвертый разряд заполняется цифрой контрольной суммы, вычисленной для уникальной части номера (символы с 5-го по 15-й) по алгоритму «Схема проверки контрольной суммы» с основанием 5 и следующими дополнениями

- в случае, если животное подвергнуто индивидуальной идентификации – оставить цифру без изменений;

- в случае, если животное подвергнуто групповой идентификации – добавить 5;

в) 11 символов с пятого по пятнадцатый разряды заполняются уникальной последовательностью цифр.

Уникальная часть номера средства маркирования цифро-буквенного формата в текстовом представлении представляет собой алфавит и цифры от 0 до 9: «0123456789abcdefghijklmnopqrstuvwxyz», что соответствует 36-ричной системе счисления.

Уникальная часть номера средства маркирования цифрового формата представляет собой цифры от 0 до 9, что соответствует 10-тичной системе счисления.

Для внесения УНСМ в текстовом формате на носитель необходимо преобразовать уникальную часть номера средства маркирования цифро-буквенного формата из 36-ричной системы счисления в 10-тичную.

Алгоритм для преобразования числа из 36-ричной в 10-тичную систему счисления

Перевести буквы из 36-ричной системы в 10-тичную, пользуясь ниже приведенной таблицей соответствия букв из 36-ричной системы цифрам в 10-тичной

a b c d e f g h i j k l m n o p q r

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

s t u v w x y z

28 29 30 31 32 33 34 35

Сложить все произведения каждой цифры числа на основание системы счисления, т.е. на 36, в степени соответствующего разряда каждой цифры числа. Первый разряд соответствует степени 0, второй – степени 1, третий – степени 2 и т.д.

Пример перевода числа b316100 из 36-ричной в 10-тичную систему.

Складываем все произведения каждой цифры числа на 36 в степени соответствующего разряда каждой цифры числа.

Разряды цифр числа «b316100» в соответствии с таблицей справа налево следующие: «0» - 1 разряд; «0» - 2 разряд; «1» - 3 разряд; «6» - 4 разряд; «1» - 5 разряд; «3» - 6 разряд; «11» - 7 разряд.

Учитывая, что первый разряд соответствует степени 0, второй – степени 1, третий – степени 2 и т.д., получаем следующее:

(11 × 366) + (3 × 365) + (1 × 364) + (6 × 363) + (1 × 362) + (0 × 361) + (0 × 360) = 23944605696 + 181398528 + 1679616 + 279936 + 1296 + 0 + 0 = 24127965072.

Следовательно, число «b316100» в 36-ричной системе = числу «24127965072» в 10-тичной системе.

Таким образом, перевод цифро-буквенного УНСМ для индивидуального маркирования животного, в котором уникальная часть состоит из числа «b316100», в цифровой формат будет выглядеть следующим образом

Алгоритм для преобразования числа из 10-тичной системы счисления в 36-ричную

Данный алгоритм необходим для проверки корректности перевода федерального цифро-буквенного УНСМ в цифровой формат.

Чтобы перевести целое положительное десятичное число в другую систему счисления (например, в 36-ричную), нужно это число разделить на основание (на 36). Полученное частное снова делить на основание до тех пор, пока частное не окажется меньше основания.

Полученные остатки, являющиеся цифрами числа в новой системе счисления, выражаем цифрами алфавита этой системы. В качестве результата преобразования необходимо записать в одну строку последнее частное и все остатки, начиная с последнего. Полученное значение будет являться результатом преобразования.

Перевод числа 24127965072 из 10-тичной системы счисления в 36-ричную будет выглядеть следующим образом:

Разряд Деление Целое частное Остаток

7 24127965072 / 36 670221252 0

6 670221252 / 36 18617257 0

5 18617257 / 36 517146 1

4 517146 / 36 14365 6

3 14365 / 36 399 1

2 399 / 36 11 3

1 11 / 36 0 11 → b< <2412796507210 = b31610036Схема проверки контрольной суммы на примере цифро-буквенного УНСМ

Для вычисления контрольной суммы номера (служебный разряд) требуется сложить суммы вычисления следующей функции для каждого символа номера с 1-го по 10-й.

Сначала для каждого символа номера, начиная с последнего, вычислить код этого символа по кодировке ASCII в соответствии с указанной ниже таблицей.

0 1 2 3 4 5 6 7 8 9 R U a b c d e f g

48 49 50 51 52 53 54 55 56 57 82 85 97 98 99 100 101 102 103

h i j k l m n o p q r s t u v w x y z

104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122

Из кода каждого символа вычесть 48. Уникальная часть средства маркирования считается в нижнем регистре. Получившееся значение разницы для каждого нечётного символа умножаем на 2, и если получившееся произведение больше 9, то вычитаем из него 9.

Складываем получившиеся значения.

Сумму делим на основание (5 или 10). Если остаток от деления на основание равен нулю, то оставляем 0 и следующий шаг не осуществляется. Контрольная цифра равна 0.

Из основания вычитаем получившийся остаток.

Пример вычисления контрольной суммы номера RU1b3161006

Контрольная сумма в данном номере «6».

Коды символов этого номера в соответствии с таблицей (выделены жирным шрифтом):

R код 82,

U код 85,

1 код 49 и т.д.

R = 82 – 48 = 34

U = 85 – 48 = 37 *2 - 9 = 65

1 = 49 – 48 = 1

b = 98 – 48 = 50 * 2 – 9 = 91

3 = 51 – 48 = 3

1 = 49 – 48 = 1 * 2 = 2

6 = 54 – 48 = 6

1 = 49 – 48 = 1 * 2 = 2

0 = 48 – 48 = 0

0 = 48 – 48 = 0 * 2 = 0

34 + 65+ 1 + 91 +3 +2 +6 +2 + 0 + 0 = 204

204 mod основание (10) = 4

основание (10) – 4 = 6

803

Оставить сообщение: