Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Макрос проверки контрагентов через сервис ФНС
 
Доброго дня, форумчане!
Пожалуйста, помогите решить задачу (думаю, многим пригодится):
Начиная с 1 квартала 2015 г. в налоговую декларацию по НДС должны включаться сведения из книг покупок, книг продаж и т.д. - не суть.
Учитывая изложенное, ФНС России был создан сервис (http://npchk.nalog.ru/) для проверки контрагентов. Среди прочего имеется SOAP - интерфейс к данному сервису.

Я не программист. Опыта/знаний по обращениям к внешним данным из VBA у меня ноль целых шиш десятых, поэтому никак не могу разобраться в документации этого мыльного интерфейса для правильного обращения с ним :(
Плз, ХЭЛП!
Изменено: Вячеслав - 7 Апр 2015 18:54:43 (Залил образец с данными, которые возвращают разные результаты.)
 
Какие вообще возможны результаты? Сделать-то можно, но для всех Ваших данных возвращает "Налогоплательщик зарегистрирован в ЕГРН, но не имел статус действующего в указанную дату. Если ошибка повторяется после уточнения данных то, для решения проблемы вам следует обратиться в налоговую инспекцию".
Можете предоставить связку ИНН, КПП и даты с другим результатом?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Если я правильно понимаю, все возможные результаты описаны в документации к этому сервису.
Запрос без указания КПП возвращает "Налогоплательщик с указанным ИНН зарегистрирован в ЕГРН", что само по себе не очень интересно, поэтому интересует т.н. "Вторая версия сервиса" (3-4 станицы документации).
Образец с данными обновлён.
Изменено: Вячеслав - 7 Апр 2015 18:58:22
 
Вообще я не это просил. Я просил ИНН и КПП, которые дают иной результат, чтобы достоверно определить корректность функции. Но раз нет желания этого делать - не вижу тоже смысла запариваться. Мне оно не надо. Сами тогда допиливайте и смотрите(может там заголовки надо будет передавать или POST использовать):
Код
Function GetContrInfo(dDate As Date, sINN As String, sKPP As String)

    Dim sDt As String
    Dim oHttp As Object
    Dim sReqRes As String
    sDt = Format(dDate, "dd.MM.yyyy")
    sRequest = "http://npchk.nalog.ru/ajax.html?inn=" & sINN & "&kpp=" & sKPP & "&dt=" & sDt
    On Error Resume Next
    Set oHttp = CreateObject("MSXML2.XMLHTTP")
    If Err <> 0 Then
        Set oHttp = CreateObject("MSXML.XMLHTTPRequest")
    End If
    If oHttp Is Nothing Then Exit Function
    

    On Error GoTo 0
    oHttp.Open "GET", sRequest, False
    oHttp.Send
    sReqRes = oHttp.responsetext
End Function

вызывать так:
Код
Cells(li, 4) = GetContrInfo(Cells(li, 3).Value, Cells(li, 1).Value, Cells(li, 2).Value)

Сама функция возвращает номер(0, 1, 2, 3, 4). И это надо будет обработать, записывая в ячейку определенный текст в зависимости от результата функции.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
The_Prist, плз, не серчайте
Желание есть. Да-да! (+/- за 5 мин. до Вашего ответа я полностью обновил файл образцами данных). Может я что-то недопонял?

Функция, кажись, правильно формирует запрос, НО почему-то в ответ ничего не пишется:(
 
Добавьте последней строкой функции:
Код
GetContrInfo = sReqRes
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
О чудо! Премного благодарен :)
 
Вячеслав, а если Вам несложно выложите готовый результат
 
Выкладываю далёкий от совершенства, но всё же готовый результат ;)
Если найдутся желающие оптимизировать код - буду только рад!

Внимание! По 10 строке приходит ответ "3А", которого нет в документации. Расшифровка была получена ручным запросом к сервису.
 
Добрый день, гениально!!!!!, не могли подсказать как увеличить количество тестируемых значений ?
 
Вячеслав, а если возможность поиск без КПП осуществлять ?  
 
Цитата
Вячеслав15 написал: как увеличить количество тестируемых значений ?
В макросе в строке "For li = 2 To 10 Step 1" поменяйте 10 на нужное число строк.
Страницы: 1
Читают тему (гостей: 1)