Цель
Избежать ошибок в предоставляемых сведениях из книг и журналов, в части заполнения идентификационных реквизитов контрагентов (ИНН, КПП).
Выбор сервиса
Для проверки корректности ИНН/КПП будем использовать сервис "Проверка контрагента" от ФНС России.
На текущий момент у данного сервиса доступен интерфейс SOAP первой версии.
После 01.07.2015. будет доступна вторая версия интерфейса с расширенными возможностями.
Описание сервиса
Итак, что имеем на входе
WSDL ссылка - http://npchk.nalog.ru/FNSNDSCAWS?wsdl
XSD схема запроса - http://npchk.nalog.ru/FNSNDSCAWS?xsd=1
XSD схема ответа - http://npchk.nalog.ru/FNSNDSCAWS?xsd=2
Порядок работы с веб-сервисом следующий:
- передаем данные по контрагентам, которые надо проверить
- получаем результат проверки по переданному списку контрагентов
Необходимо заполнить "коллекцию" NP структуры NdsRequest данными по проверяемым контрагентам (максимальное количество проверяемых контрагентов за один запрос = 10000).
Поля структуры запроса следующие: INN, KPP(необязательное поле), DT (необязательное поле)
В качестве ответы мы получаем коллекцию со статусами(атрибут State) проверенных контрагентов:
0 - ИНН+КПП+ДАТА+ Налогоплательщик зарегистрирован в ЕГРН и имел статус действующего в интервале ± 6 дней от даты запроса
1 - ИНН+КПП+ДАТА- Налогоплательщик зарегистрирован в ЕГРН, но не имел статус действующего в интервале ± 6 дней от даты запроса
2 - ИНН+КПП+ Налогоплательщик зарегистрирован в ЕГРН (в запросе не указана дата)
3 - ИНН+КПП- Несоотвествие КПП указанному в запросе ИНН (дата могла быть указана а могла и быть не указана)
4 - ИНН- Налогоплательщик с указанным ИНН не зарегистрирован в ЕГРН (дата могла быть указана а могла и быть не указана)
во второй версии будут доступны следующие статусы:
5 - Некорректный ИНН
6 - Недопустимое количество символов ИНН
7 - Недопустимое количество символов КПП
8 - Недопустимые символы в ИНН
9 - Недопустимые символы в КПП
11 - некорректный формат даты
12 - некорректная дата (ранее 01.01.1991 или позднее текущей даты)
Реализация в 1С
Создадим WSпрокси для подключения к сервису и объект "Запрос" (ссылка на ИТС)
Используем следующие объекты 1С:
Новый WSОпределения(, , , , , )
Новый WSПрокси(, , , , , , )
ФабрикаXDTO.Создать(, )
Параметры веб-сервиса можно посмотреть по адресу http://npchk.nalog.ru/FNSNDSCAWS:
Получаем следующий код:
Определение = Новый WSОпределения("http://npchk.nalog.ru/FNSNDSCAWS?wsdl");
Прокси = Новый WSПрокси(Определение, "http://ws.unisoft", "FNSNDSCAWS", "FNSNDSCAWS_Port");
Запрос = Прокси.ФабрикаXDTO.Создать(Прокси.ФабрикаXDTO.Тип("http://ws.unisoft/FNSNDSCAWS/Request", "NdsRequest"));
Заполним коллекцию Запрос.NP.
Создадим структуру:
Контрагент = Прокси.ФабрикаXDTO.Создать(Прокси.ФабрикаXDTO.Тип("http://ws.unisoft/FNSNDSCAWS/Request", "NdsRequest_NP"));
Структура Контрагент содержит следующие атрибуты:
Пусть данные по контрагентам находятся в некоторой таблице ДанныеПоКонтрагентам с полями {ИНН, КПП, ДатаДляПроверки}. Заполним из этой таблицы коллекцию контрагентов для веб-сервиса:
Для каждого ДанныеПоКонтрагенту Из ДанныеПоКонтрагентам Цикл
Контрагент.INN = ДанныеПоКонтрагенту.ИНН;
Контрагент.KPP = ДанныеПоКонтрагенту.КПП;
Контрагент.DT = Формат(текДата, "ДФ=dd.MM.yyyy");
Запрос.NP.Добавить(Контрагент);
КонецЦикла;
Передадим веб-сервису данные и выполним запрос:
РезультатЗапроса = Прокси.NdsRequest(Запрос);
Получим состояние по каждому контрагенту(как уже определили выше, состояние находится в поле State коллекции NP):
Для каждого ОтветДляКонтрагента из РезультатЗапроса.NP Цикл
Сообщить(ОтветДляКонтрагента.State);
КонецЦикла;