Проблемы в структуре Товарной номенклатуры ВЭД СНГ (2000г)

Архангельский Андрей

       Товарная номенклатура Внешнеэкономической деятельности СНГ (в дальнейшем ТН ВЭД) задумывалась как иерархическая система классификации товаров. И по сути она должна была применяться в основом в базах данных. Но при попытке ввести ее как древовидную структуру в таблицу возникло столько проблем, что это может быть уроком — насколько безграмотны могут быть официальные документы.
       Не такой уж большой документ — 17317 строк (гнезд) — содержит 10469 ошибок. А это 60%!!! Если бы программист написал программу содержащую 60% ошибочных операторов — программа бы не работала, а программиста бы уволили. Автомобиль с таким количеством бракованных деталей вряд ли добрался бы до ворот завода — развалился бы!
       Приведенные здесь ошибки являются ошибкам первого порядка, потому что после их исправления обязательно возникнут новые ошибки. Ошибки первого порядка можно разделить на две группы — терминологические и структурные.
       Терминологические ошибки — это определения терминов, которые определениями не являются; неверное определение диапазонов значений и "прочее". Ошибки типа когда свинья названа коровой не рассматриваются, просто потому что я не являюсь специалистов во всех описываемых отраслях. Хотя некоторые так называемые определения вызывают недоумение и жалость к тем, кто будет пользоваться ими.
       Структурные ошибки — это наличие гнезда классификации без соответствующего кода. Иногда отсутствующий код легко определяется, иногда нет. Ошибки типа "инверсия структуры" в данном случае не рассмативаются и относятся к ошибкам второго уровня, потому что это не мешает ввести данные в таблицу.

Терминологические ошибки

"Война и Мир"
       — если кто помнит объем этого нетленого произведения Льва Николаевича Толстого, тот поймет в чем суть проблемы. Роман "Война и мир" отличался необычайно длинными абзацами и предложениями. Часто встречались предложения, которые не умещались на одной странице. Но любая классификация — это не роман, а термины, которые должны быть краткими, ясными и однозначными. А для БД требование краткости имеет числовое выражение. Термин должен быть настолько кратким, чтобы по этому полю можно было построить индекс, вписать в накладную, показать в списке. Для СУБД Firebird/Interbase с учетом кода размер поля должен быть не более 170 символов.
       Итого, имеется 570 гнезд (или 3.3%), которые не удовлетворяют этим требованиям, со средним значением 244 символов. И, наконец, шедевром является код 3004_90_190_1!!! 1663 символа без учета, того что предварительно требуется вставить значения 4 уровней. Смотрите и наслаждайтесь!

3004 90 190 1 - - - - натриевая соль аденозинтрифосфорной кислоты (АТФ) или ацетилсалициловая кислота(кроме лекарственных средств в виде таблеток, покрытых энтеросолюбильной оболочкой, содержащих в качестве действующего вещества ацетилсалициловую кислоту), или бензокаин или бискалцитрат (коллоидный субцитрат висмута),или верапамил гамма-аминомасляная кислота, или дибазол,или диклофенак натрия или димедрол, или ибупрофен, или корвалол, или валидол, или изосорбит динитрат, или инозин (рибоксин), или каптоприл, или кетамин, или кетотифен, или клозапин или кломифен цитрат, или лидокаин, или липоевая кислота, или лития карбонат, или метазид, или метамизол (анальгин), или метенамин, или метилурацил, или метионин, или метронизадол, или натрия хлорид, или нафазолин, или нитроксолин, или нефидипин(кроме лекарственных средств в форме двухслойных таблеток, с лазерной перфорацией полупроницаемой мембраны, полимерным слоем и слоем действующего активного вещества - нифедипина в осмотическом состоянии), или ницетамид, или панкреатин, или парацетамол, или пентаэритритил тетранитрат, или пирацетам, или пиреноксин, или пирикарбат, или пироксикам, или полиамин, или поливинилпирролидон, или примидон, или пробукол, или прокаин (новокаин),или пропранолол, или ранитидин, или сальбутамол, или суксаметоний, или сульфадиметоксин, или сульфален, или таурин, или фенобарбитал , или фталилсульфатиазол, или фуросемид, или хлорхинальдол, или церебролизат, или циннаризин, или ципрофлоксацин (кроме лекарственных средств в форме инфузионного раствора для внутривенного введения, содержащих в качестве действующего вещества ципрофлоксацин),или цитрапар, или цитрамон-П, или этамзилат

       Если вместо 4 тире подставить значения верхних уровней, то этот термин не поместится даже на стандартной машинописной странице, размер которой составляет 30 строк по 60 символов = 1800 символов.
       Этот термин не одинок. 92% гнезд не являются законченными терминами. Они требуют подстановки в начало значение гнезда верхнего уровня. В среднем глубина таких подстановок составляет 3 уровня, максимум — 8. В результате таких подстановок количество ошибок этого типа возрастет многократно. В результате программист должен выполнять работу разработчика классификации, но его на это никто не уполномачивал.

Перечисления
       Ошибки типа "Война и мир" являются следствием других ошибок — "перечисления". Когда нет термина — простейший способ определить, что входит в группу — это перечислить известные элементы. Но при появлении нового элемента возникает проблема — в какую группу его поместить? Явным признаком перечислений являются слова "включая", "например" и т.д. Т.е. это проблема не только для программиста, но и для оператора БД, который должен вводить новые значения.
       Всего таких гнезд — 1495 (или 8.63%).
       Однако, эта цифра не учитывает случаи, когда перечисления как такового нет, но параметры того или иного товара, заявленные в классификации, либо не известны по технологическим причинам, либо вообще являются коммерческой тайной или защищены патентами. В таких случаях возникает проблема оператора БД. Например, позиция

4804_39_500 — "Бумага и картон, изделия из бумажной массы, в которых не менее 80 мас.% от общей массы волокна составляют волокна древесины хвойных пород, полученные в результате сульфатного или натронного процесса".

       Ни в одном из каталогов ведущих производителей бумаги не указаны подобные характеристики. Так каким образом определить код для того или иного вида бумаги, если известен только обычный каталог производителя, как правило, зарубежного?

Нарушение множества
       Следующий вид ошибок — нарушение множества. Это попытка уточнить перечисления с помощью определения границ множества, но в результате границы множества становятся неопределенными. Например:

4408 — Листы однослойной фанеры и шпона для клееной фанеры (склеенные или несклеенные) и прочая древесина, распиленная вдоль, разрезанная на части или лущеная, строганая или нестроганая, шлифованная или нешлифованная, имеющая или не имеющая соединения в шип, толщиной не более 6 мм:

       Здесь — склеенные или несклеенные — означают "любые";
       — строганная или не строганная — означает "любые";
       — шлифованная или нешлифованная — означает "любая";
       — имеющая или не имеющая соединения в шип — означает "любая".
       Таким образом, это определение имеет сразу 4 ошибки типа "нарушение множества". Правильная форма должна выглядеть так:

4408 — Листы однослойной фанеры и шпона для клееной фанеры и прочая древесина, распиленная вдоль, разрезанная на части или лущеная, толщиной не более 6 мм:

Всего таких ошибок — 564 (3.26%).

Перекрестные ссылки
       Еще один тип ошибок специфический для БД. Суть этой ошибки заключается в том, что термин для определения своей сути ссылается на другой термин. Например:

8708_40_100_0 — - - для промышленной сборки: тракторов, управляемых идущим рядом водителем и указанных в субпозиции 8701_10; моторных транспортных средств товарной позиции 8703; транспортных средств товарной позиции 8704 с двигателем внутреннего сгорания с воспламенением от сжатия (дизелем или полудизелем) и рабочим объемом двигателя не более 2500 см3 либо с двигателем внутреннего сгорания с искровым зажиганием и рабочим объемом двигателя не более 2800 см3; моторных транспортных средств специального назначения товарной позиции 8705

       Проблема заключается в том, что в базах данных в поиске и отображении используется ОДНА строка. Поэтому для того, чтобы узнать что скрывается под "товарной позицией 8703" нужно открыть еще один экземпляр таблицы с соответствующим поиском. Разработчики "ТН ВЭД" считали, что пользователям будет достаточно бумажного экземпляра, в котором можно заложить закладку, перелистнуть несколько страниц и посмотреть ответ. Но в БД такие термины недопустимы.
       Всего таких ошибок — 743 (4.29%).

Прочие
       Это не "остальные ошибки". Это специальный вид ошибок. 4232 гнезда или 24.44% имеют в качестве определения ТОЛЬКО слово "прочие" в различных падежах. Говоря по простому, разработчик "ТН ВЭД" говорит — "А я не знаю как назвать то, что должно быть в этой позиции". А почему это должны знать программист или оператор БД?

Структурные ошибки

0Lev
       — Бантики. Это когда большой раздел подразделяется на несколько частей, каждая из которых имеет название, но не имеет кода. При этом в структуре кода нет возможности каким-либо образом это отобразить. Например:

Группа 72. I. ПЕРВИЧНЫЕ ПРОДУКТЫ; ПРОДУКТЫ В ФОРМЕ ГРАНУЛ ИЛИ ПОРОШКА


       Единственный разумный выход для программиста — игнорировать эти ошибки. Тем более что их относительно немного — 33 (0.19%).

1Lev
       — Отсутствует код верхнего уровня. Эта ошибка могла бы быть несущественной, если бы не нужно было ссуммировать по древовидной структуре. Например:

7202_00_000_0 — Отходы и лом цинковые


       При этом код 7202 отсутствует. При попытке ссуммировать по 3 уровню, в который входит код 7202 это гнездо выпадет из результата. Конечно эта проблема существует и для уровней более высогоко порядка, но необходимо какое-то минимальное количество уровней, по которым возможно ссуммирование. Исправление этой ошибки достаточно простое — добавляется уровень "7202" и в него дублируется определение из существующего кода.
       Всего таких ошибок — 294 (1.70%)

Lev0
       — отсутствует код гнезда, но он может быть определен логически.
       Эта ошибка не позволяет правильно построить структуру дерева. Вызвана прежде всего тем, что разработчики "ТН ВЭД" строя структуру путем вычленения ключевых слов не задумывались о том, что промежуточные уровни тоже должны иметь коды. Например, (отсутствующий код выделен жирным шрифтом):

7205_20_..._. - порошки
7205_21_000_0 - - из легированной стали
7205_29_000_0 - - прочие

       Но программист, заполняя дерево должен указать отсутствующий код "7205_20_..._.".
       Всего таких ошибок —1988 (11.48%).

LevX
       — отсутствует код гнезда и его определение проблематично. Например, (отсутствующие коды выделены жирным шрифтом):

8543 89 - - прочие:
8543 89 100 0 - - - бортовые регистраторы параметров полета, для гражданской авиации
8543 89 200 0 - - - антенные усилители
8543 89 500 0 - - - солнечные облучательные устройства, солнечные [кварцевые лампы} и аналогичное оборудование для солнечного загара:
8543 89 5?? . - - - - для люминесцентных ламп, использующих ультрафиолетовое излучение-
8543 89 510 - - - - - с максимальной длиной трубки 100 см:
8543 89 510 1 - - - - - - солярии
8543 89 510 9 - - - - - - прочие

       В этом случае правильный порядок кодов 100, 200, 500, ... Но между 200 и 500 есть еще одно гнездо, причем либо одно, либо другое нарушает уровни структуры. Такие ошибки серьезно затрудняет построение дерева. В каждом конкретном случае требуется анализ достаточно большого раздела и, возможно, изменение каких-либо определений. Конечно, исправление таких ошибок не входит в компетенцию программиста, но БД будет строить все-таки он.
       Всего таких ошибок — 583 (3.37%).
       Кроме перечисленных ошибок существуют менее явные, но также создающие проблемы как для программиста, так и на оператора.
       Например, инверсия структуры. Т.е. в одном разделе в разных частях используется различный подход. В одной части классификация строится по принципу — товар -> дата производства, а в другой части по принципу — дата производства -> товар.
       Проблема для оператора — в каждом случае нужно приспосабливаться в методу поиска.
       Проблема для программиста — при разработке программы нельзя опираться на структуру данных, а приходится использовать "правила", что ограничивает возможности масштабирования.

Резюме

       Представленный документ, который имеет широкое распространение в бизнесе и, следовательно, в информационных системах, утверждаемый Правительством Российской Федерации является не более чем "заявкой о намерениях" (черновиком), а не завершенной классификацией. Значительное количество неопределенностей и 4232 слова "ПРОЧИЕ" открывают широкие ворота для произвола таможни и, как следствие, критики в адрес программиста.
       Ниже приведены статьи Таможенного кодекса РФ о "Товарной номенклатуре внешнеэкономической деятельности".

Статья 39. Товарная номенклатура внешнеэкономической деятельности
       1. Товарная номенклатура внешнеэкономической деятельности утверждается Правительством Российской Федерации исходя из принятых в международной практике систем классификации товаров.
       2. Товарная номенклатура внешнеэкономической деятельности применяется для осуществления мер таможенно-тарифного и нетарифного регулирования внешнеторговой и иных видов внешнеэкономической деятельности, ведения таможенной статистики внешней торговли Российской Федерации.

Статья 40. Классификация товаров
       1. Товары при их декларировании таможенным органам (глава 14) подлежат классификации, то есть в отношении товаров определяется классификационный код (классификационные коды) по Товарной номенклатуре внешнеэкономической деятельности.
       2. По запросу декларанта таможенные органы принимают предварительное решение о классификации товара в соответствии с параграфом 3 настоящей главы.
       3. В случае установления нарушения правил классификации товаров при их декларировании таможенный орган вправе самостоятельно осуществить классификацию товаров.
       4. Федеральная служба, уполномоченная в области таможенного дела, принимает решения о классификации отдельных видов товаров и обеспечивает опубликование указанных решений.
       5. Решения таможенных органов о классификации товаров являются обязательными. Декларант вправе обжаловать такие решения в соответствии с главой 7 настоящего Кодекса.

© 01.08.2009, Архангельский А.Г.

<<Пред. Оглавление
Об Авторе
Все персоны
Главная страница
След.>>



Поддержите культуру
ЯндексЯндекс. ДеньгиХочу такую же кнопку

Google
 
Web azdesign.ru az-libr.ru


Дата последнего изменения:
Wednesday, 23-Oct-2013 09:03:00 UTC