Загрузка ТН ВЭД с сайта nalog.ru


В публикации представлена конфигурация в которой реализована структура по хранению данных классификатора ТН ВЭД и обработка по загрузке из файла TNVED.7z который выложен на сайте nalog.ru

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

Сам классификатор можно скачать по ссылке https://www.nalog.ru/rn77/program/5961290/. Также по ссылее доступно описание структуры файлов классификатора.

Как показала практика классификатор ТН ВЭД выложенный на сайте nalog.ru отличается от классификатора который есть например в БП 3.0 в виде макета наличием иерархической структуры и большим количеством элементов.

В архиве содержится конфиграция на управляемых формах (DT), файл с классификатором и описание его структуры. Классификатор актуален на 29.06.2024, на момент публикации это самый актуальный классификатор.

6 Comments

  1. lame

    По мелочам если не придираться то работает.

    только в файловом варианте.

    Косяк в этом месте.

    &НаКлиенте
    Процедура РаспаковатьФайлКлассификатора()
    …
    Объект.Файл1 = ПутьРаспаковка + «TNVED1.TXT»;
    Объект.Файл2 = ПутьРаспаковка + «TNVED2.TXT»;
    Объект.Файл3 = ПутьРаспаковка + «TNVED3.TXT»;
    Объект.Файл4 = ПутьРаспаковка + «TNVED4.TXT»;
    
    КонецПроцедуры

    Показать

    те распаковал на клиенте

    а обрабатываешь этот файл на сервере

    &НаСервере

    Процедура ОбработатьФайл1()
    ТекстДок = Новый ТекстовыйДокумент();
    ТекстДок.Прочитать(Объект.Файл1, «cp866»);
    …
    конецпроцедуры
    

    А его — файла — на сервере просто нет …

    Reply
  2. lame

    и в файловом варианте косячок …

    программа делает

    ЗапуститьПриложение(Объект.Имя7Z + ПараметрыЗапуска);

    потом идет далее

    те архив еще НЕ распаковался, а программа пошла дальше и пытается этот файл обработать

    те поменяй на

    ЗапуститьПриложение(Объект.Имя7Z + ПараметрыЗапуска,,истина);

    Reply
  3. lame

    ну .. по мелочам …

    &НаСервере — добавить . тк это можно делать только на сервере

    Процедура ПометитьНаУдалениеЛишниеЭлементыРазделы(МассивЗагружЭлементов

    Reply
  4. lame
    Reply
  5. enter_123

    Низкий поклон автору.

    Внесу свои 5 копеек:

    На сайте налоговой теперь архив в формате .ARJ и выбирать его по маске *.7z не получается, надо поправить.

    Ну и ссылка на скачивание теперь статическая поэтому вот процедура которая скачивает его на клиенте

    &НаКлиенте
    Процедура ЗагрузитьКлассификаторССайта()
    Если НЕ ЗначениеЗаполнено(Объект.ПутьКФайлуТНВЭД) Тогда
    ИмяФайлаРезультат = ПолучитьИмяВременногоФайла(«ARJ»);
    
    HTTPСоединение     = Новый HTTPСоединение(«www.nalog.ru»,,,,,,Новый ЗащищенноеСоединениеOpenSSL());
    HTTPЗапрос      = Новый HTTPЗапрос(«/html/sites/www.new.nalog.ru/docs/sprav/TNVED.ARJ»);
    
    HTTPСоединение.Получить(HTTPЗапрос, ИмяФайлаРезультат);
    
    Объект.ПутьКФайлуТНВЭД = ИмяФайлаРезультат;
    КонецЕсли;
    Конецпроцедуры
    

    Показать

    Reply
  6. enter_123

    Ну и архиватором 7z у меня не получилось открыть архив arj нашел UnArj и сделал с ней. Вот процедура распаковки

    &НаКлиенте
    Процедура РаспаковатьФайлКлассификатора()
    
    ПутьРаспаковка = КаталогВременныхФайлов() + «TN_VED» + ПолучитьРазделительПути();
    СоздатьКаталог(ПутьРаспаковка);
    
    ФайлПрограммыАрхиватораUnArj = ПолучитьИмяВременногоФайла(«exe»);
    ПолучитьДвоичнеДанныеПрограммыАрхиватораUnArj().Записать(ФайлПрограммыАрхиватораUnArj);
    
    НаборВыполняемыхКоманд = СтрШаблон(«cd «»%1″» && «»%2″» e «»%3″»», ПутьРаспаковка, ФайлПрограммыАрхиватораUnArj, Объект.ПутьКФайлуТНВЭД);
    
    КомандаСистемы(НаборВыполняемыхКоманд);
    
    Объект.Файл1 = ПутьРаспаковка + «TNVED1.TXT»;
    Объект.Файл2 = ПутьРаспаковка + «TNVED2.TXT»;
    Объект.Файл3 = ПутьРаспаковка + «TNVED3.TXT»;
    Объект.Файл4 = ПутьРаспаковка + «TNVED4.TXT»;
    
    КонецПроцедуры
    
    

    Показать

    ну и сама UnArj прикрепить как макет двоичные данные «АрхиваторArj» к обработке

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *