Рекомендуемый алгоритм экранирования специальных символов в составе кода идентификации

1. Описание и назначение функциональности

При работе с КИ, в которых присутствуют специальные символы, перед подачей сведений в ГИС МТ провести экранирование специальных символов по нижеописанным рекомендациям.

Экранирование - замена в тексте управляющих символов на соответствующие текстовые подстановки. Экранирование используется для отделения текста от кода и управляющих символов. Экранирование применяется при передаче параметров запросов API методов согласно следующим стандартам:

  • при передаче параметров в едином указателе ресурса (Uniform Resource Locator, URL), т.е. в URL запроса должно применяться экранирование согласно стандарту RFC 3986 (см. описание стандарта в п. 2.1 https://datatracker.ietf.org/doc/html/rfc3986);

  • при передаче параметров в строке * .json тела запроса URL должно применяться экранирование согласно стандарту RFC 8259 (см. описание стандарта в п. 7 https://datatracker.ietf.org/doc/html/rfc8259);

  • при подаче сведений в ГИС МТ путём загрузки файла в формате * .csv с использованием в загружаемом файле КИ со специальными символами всю строку КИ поместить в двойные кавычки ("). Экранирование осуществляется согласно стандарту RFC 4180 (см. описание стандарта в https://tools.ietf.org/html/rfc4180);

  • при передаче параметров в строке * .xml тела запроса URL должно применяться экранирование согласно стандарту W3C (см. описание стандарта в https://www.w3.org/TR/xml/).

2. Экранирование специальных символов в URL

При работе посредством открытого API с использованием GET запросов в строке с КИ экранировать все специальные символы.

НомерСимволНазвание символаЭкранированный символ

1

!

Восклицательный знак

%21

2

\

Обратный слэш (бэкслэш)

%5C

3

"

Двойная кавычка

%22

4

%

Знак процента

%25

5

&

Амперсанд

%26

6

'

Одинарная кавычка (апостроф)

%27

7

*

Звёздочка

%2A

8

+

Плюс

%2B

9

-

Минус (тире)

%2D

10

.

Точка

%2E

11

/

Слэш

%2F

12

_

Нижнее подчеркивание

%5F

13

,

Запятая

%2C

14

:

Двоеточие

%3A

15

;

Точка с запятой

%3B

16

=

Равно

%3D

17

<

Меньше

%3C

18

>

Больше

%3E

19

?

Вопросительный знак

%3F

20

(

Открывающая круглая скобка

%28

21

)

Закрывающая круглая скобка

%29

Пример КИ с экранированием специальных символов:

До экранированияПосле экранирования

010463003407001221VrDpTmvic%XKb

010463003407001221VrDpTmvic%25XKb

010463003407001221bUT'4"g=MTs_<

010463003407001221bUT%274%22g%3DMTs%5F%3C

010463003407001221./>*HsakfSJ:V

010463003407001221%2E%2F%3E%2AHsakfSJ%3AV

3. Экранирование специальных символов в файле формата * .json

При работе посредством открытого API с использованием POST запросов в формате * .json в строке с КИ специальные символы, двойные кавычки ( " ) и амперсанд ( & ), экранировать символом бэкслэш ( \ ).

Пример КИ с экранированием двойной кавычки и амперсанда:

До экранированияПосле экранирования

010463003407001221bUT'4"g=MTs_<

010463003407001221bUT'4\"g=MTs_<

010463003407001221-GFL&PguP(/V+

010463003407001221-GFL\&PguP(/V+

4. Экранирование специальных символов в файле формата * .csv

При подаче сведений в ГИС МТ путём загрузки файла в формате * .csv с использованием в загружаемом файле КИ со специальными символами необходимо всю строку КИ поместить в двойные кавычки ( " ). Если в последовательности символов КИ присутствуют двойные кавычки, то перед каждым символов двойной кавычки поставить ещё один символ двойной кавычки в качестве экранирования.

Пример КИ с экранированием последовательности специальных символов с двойной кавычкой в КИ и без неё в файле формата * .csv:

До экранированияПосле экранирования

010481097886269421"LLRY<%"JZTVZ

"010481097886269421""LLRY<%""JZTVZ"

010463003407001221-GFL&PguP(/V+

"010463003407001221-GFL&PguP(/V+"

В исключительных случаях для отдельных операционных систем экранирование выполняется с использованием апострофа ('), если апостроф входит в состав КИ. Необходимо указать второй апостроф перед первым и поместить всю строку между апострофами.

Пример КИ с экранированием последовательности специальных символов с апострофом:

До экранированияПосле экранирования

010466006407038621I?NczVEs,'IpG

'010466006407038621I?NczVEs,''IpG'

Смешанный пример КИ с экранированием последовательности специальных символов с апострофом и кавычкой:

До экранированияПосле экранирования

010466006407038621I?Nc’VEs,"IpG

"010466006407038621I?Nc''VEs,""IpG"

010466006407038621I?Nc"VEs,IpG'

"010466006407038621I?Nc""VEs,IpG''"

5. Экранирование специальных символов в файле формата * .xml

При подаче сведений в ГИС МТ путём загрузки файла в формате * .xml с использованием в загружаемом файле КИ со специальными символами всю строку символов КИ обрамить специальной последовательностью <![CDATA[ в начале строки и ]]> в конце строки. При этом все специальные символы, входящие в последовательность символов КИ, дополнительно экранировать не нужно.

Пример КИ с экранированием последовательности специальных символов в файле формата * .xml:

До экранированияПосле экранирования

010463003407001221joMWPMeGOFt3r

<![CDATA[010463003407001221joMWPMeGOFt3r]]>

010463003407001221bUT'4"g=MTs_<

<![CDATA[010463003407001221bUT'4"g=MTs_<]]>

Перечень сокращений, условных обозначений и терминов

Сокращение, условное обозначение, терминОписание

API

Application Programming Interface (интерфейс программирования приложений) — программный интерфейс приложения, набор готовых классов, процедур, функций, структур и констант, предоставляемых приложением (библиотекой, сервисом) или операционной системой для использования во внешних программных продуктах

CSV

Comma-Separated Values — текстовый формат файла, предназначенный для предоставления табличных данных

JSON

JavaScript Object Notation — текстовый формат обмена данными, основанный на JavaScript

URL

Uniform Resource Locator — унифицированный указатель ресурса

XML

eXtensible Markup Language — расширяемый язык разметки, состоящий из набора тегов, их атрибутов, значений, а также набора правил, определяющих какие атрибуты и элементы могут входить в состав других элементов

XSD

XML schema definition — язык описания структуры XML-документа

ГИС МТ

Государственная информационная система, созданная в целях автоматизации процессов сбора и обработки информации об обороте товаров, подлежащих обязательной маркировке средствами идентификации, хранения такой информации, обеспечения доступа к ней, её предоставления и распространения, повышения эффективности обмена такой информацией и обеспечения прослеживаемости указанных товаров, а также в иных целях, предусмотренных федеральными законами

КИ

Код идентификации — последовательность символов, представляющая собой уникальный номер экземпляра товара, формируемая Оператором информационной системы мониторинга для целей идентификации товаров, в том числе в потребительской упаковке

Оператор

Частный партнёр, действующий в качестве Оператора Единой системы маркировки в соответствии с распоряжением Правительства РФ от 8 мая 2019 г. № 899-р «О реализации проекта государственно-частного партнёрства, заключаемого в целях создания, эксплуатации и технического обслуживания объекта, предназначенного для обеспечения маркировки и прослеживаемости отдельных видов товаров» (https://честныйзнак.рф), распоряжением Правительства Российской Федерации от 3 апреля 2019 г. № 620-р «Об операторе государственной информационной системы мониторинга за оборотом товаров, подлежащих обязательной маркировке», и распоряжением № 2828-р от 18 декабря 2019 года

ТОРГ-2

Акт о расхождениях в количестве или качестве товара

УКД

Универсальный корректировочный документ — электронный документ, формат которого утверждается Федеральной налоговой службой, предназначенный для документирования факта изменения стоимости ранее осуществлённой поставки и (или) факта расхождения по количеству (качеству) продукции при её приёмке

УПД

Универсальный передаточный документ — электронный документ об отгрузке товаров (выполнении работ, оказании услуг) или передаче имущественных прав, формат которого утверждается Федеральной налоговой службой

Участник оборота товаров

Юридические и физические лица, зарегистрированные в качестве индивидуальных предпринимателей, являющиеся налоговыми резидентами Российской Федерации, осуществляющие ввод товаров в оборот, оборот и (или) вывод из оборота товаров, за исключением юридических лиц и физических лиц, зарегистрированных в качестве индивидуальных предпринимателей, приобретающих товары для использования в целях, не связанных с их последующей реализаций (продажей)