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

Вниманию госветслужб субъектов Российской Федерации, 
Хозяйствующих субъектов – владельцев животных, 
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
 
		
	
		
		
	
Оставить сообщение: