Вход | Регистрация


1С:Предприятие ::

Метки: 

Реквизиты контрагента nalog.ru

Я
   skupidom
 
13.06.18 - 10:45
Коллеги написал запрос по проверке ИНН в 1С УФ.
Как скорректировать код,чтобы получить реквизиты контрагента:
ОГРН,адрес,..
Определение = Новый WSОпределения("http://npchk.nalog.ru/FNSNDSCAWS_2?wsdl";);
Прокси = Новый WSПрокси(Определение, "http://ws.unisoft";, "FNSNDSCAWS2", "FNSNDSCAWS2_Port");
Запрос = Прокси.ФабрикаXDTO.Создать(Прокси.ФабрикаXDTO.Тип("http://ws.unisoft/FNSNDSCAWS2/Request";, "NdsRequest2"));

Контрагент = Прокси.ФабрикаXDTO.Создать(Прокси.ФабрикаXDTO.Тип("http://ws.unisoft/FNSNDSCAWS2/Request";, "NdsRequest2_NP"));    
Контрагент.INN = ИНН;
Контрагент.KPP = КПП;
Контрагент.DT = Формат(ТекущаяДата(),"ДФ=dd.MM.yyyy");
Запрос.NP.Добавить(Контрагент);
Результат = Прокси.NdsRequest2(Запрос);
 
  Рекламное место пустует
   Cyberhawk
 
1 - 13.06.18 - 10:48
Чудак, в типах XSD нет нужных тебе полей, с какого х..олодца ты решил что там будут ОГРН и адрес?
   zippygrill
 
2 - 13.06.18 - 10:49
и не забудь что запросы ограничены :)
Типа 500 запросов/месяц
   skupidom
 
3 - 13.06.18 - 10:51
сторонний сервис есть примеры?
   novichok79
 
4 - 13.06.18 - 10:55
(3) dadata.ru есть
блин, а зачем так сложна?

Определение = Новый WSОпределения("http://npchk.nalog.ru/FNSNDSCAWS_2?wsdl";;);
Прокси = Новый WSПрокси(Определение, "http://ws.unisoft";;, "FNSNDSCAWS2", "FNSNDSCAWS2_Port");

Запрос = Прокси.ФабрикаXDTO.Создать(Прокси.ФабрикаXDTO.Тип("http://ws.unisoft/FNSNDSCAWS2/Request";;, "NdsRequest2"));
Контрагент = Прокси.ФабрикаXDTO.Создать(Прокси.ФабрикаXDTO.Тип("http://ws.unisoft/FNSNDSCAWS2/Request";;, "NdsRequest2_NP"));

вот кстати
https://сайт_чье_имя_нельзя_упоминать/public/439808/
   novichok79
 
5 - 13.06.18 - 11:01
dadata.ru:

            ТелоЗапроса = Новый Структура;
            ТелоЗапроса.Вставить("query", ИНН);

            ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON(, , , , , , , , Ложь);
            
            ЗаписьJSON = Новый ЗаписьJSON;
            ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписиJSON);

            ЗаписатьJSON(ЗаписьJSON, ТелоЗапроса);
            ТелоЗапросаСтрокой = ЗаписьJSON.Закрыть();
            
            HTTPЗапрос = Новый HTTPЗапрос(ПутьКСервису);
            
            HTTPЗапрос.Заголовки.Вставить("Content-Type", "application/json");
            HTTPЗапрос.Заголовки.Вставить("Accept", "application/json");
            HTTPЗапрос.Заголовки.Вставить("Authorization", "Token " + APIКлючDaData);

            HTTPЗапрос.УстановитьТелоИзСтроки(ТелоЗапросаСтрокой);

            Попытка
                
                HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
                
            Исключение

                БылиОшибкиПриОтправкеHTTPЗапроса = Истина;

                ОписаниеОшибкиПриОтправкеHTTPЗапроса = 
                СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
                НСтр("ru = 'При получении данных контрагента по ИНН на DaData.Ru произошла ошибка:
                      |%1'"), ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
                
                МассивОшибок.Добавить(ОписаниеОшибкиПриОтправкеHTTPЗапроса);
                
                ЗаписьЖурналаРегистрации(
                ИмяСобытияВЖурналеРегистрации, УровеньЖурналаРегистрации.Ошибка, , , ОписаниеОшибкиПриОтправкеHTTPЗапроса);
                
            КонецПопытки;
            
            Если Не БылиОшибкиПриОтправкеHTTPЗапроса Тогда 
                
                Если HTTPОтвет = Неопределено Тогда
                    
                    БылиОшибкиПриРасшифровкеHTTPОтвета = Истина;

                    ОписаниеОшибкиПриРасшифровкеHTTPОтвета = 
                    СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
                    НСтр("ru = 'При получении данных контрагента по ИНН на DaData.Ru произошла ошибка:
                          |%1'"), НСтр("ru = 'Ответ сервера не получен'"));
                    
                    МассивОшибок.Добавить(ОписаниеОшибкиПриРасшифровкеHTTPОтвета);

                    ЗаписьЖурналаРегистрации(
                    ИмяСобытияВЖурналеРегистрации, УровеньЖурналаРегистрации.Ошибка, , , ОписаниеОшибкиПриРасшифровкеHTTPОтвета);

                ИначеЕсли HTTPОтвет.КодСостояния <> 200 Тогда
                    
                    БылиОшибкиПриРасшифровкеHTTPОтвета = Истина;

                    ОписаниеОшибкиПриРасшифровкеHTTPОтвета = 
                    СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
                    НСтр("ru = 'При получении данных контрагента по ИНН на DaData.Ru произошла ошибка:
                          |Код состояния сервера = %1'"), HTTPОтвет.КодСостояния);
                    
                    МассивОшибок.Добавить(ОписаниеОшибкиПриРасшифровкеHTTPОтвета);

                    ЗаписьЖурналаРегистрации(
                    ИмяСобытияВЖурналеРегистрации, УровеньЖурналаРегистрации.Ошибка, , , ОписаниеОшибкиПриРасшифровкеHTTPОтвета);

                КонецЕсли;
                
                Если Не БылиОшибкиПриРасшифровкеHTTPОтвета Тогда
                    
                    ТекстHTTPОтвета = HTTPОтвет.ПолучитьТелоКакСтроку();

                    Если Не ЗначениеЗаполнено(ТекстHTTPОтвета) Тогда
                        
                        БылиОшибкиПриРасшифровкеHTTPОтвета = Истина;

                        ОписаниеОшибкиПриРасшифровкеHTTPОтвета = 
                        СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
                        НСтр("ru = 'При получении данных контрагента по ИНН на DaData.Ru произошла ошибка:
                              |%1'"), НСтр("ru = 'Получен пустой ответ сервера'"));
                        
                        МассивОшибок.Добавить(ОписаниеОшибкиПриРасшифровкеHTTPОтвета);

                        ЗаписьЖурналаРегистрации(
                        ИмяСобытияВЖурналеРегистрации, УровеньЖурналаРегистрации.Ошибка, , , ОписаниеОшибкиПриРасшифровкеHTTPОтвета);
                        
                    Иначе 
                        
                        Попытка
                            
                            ЧтениеJSON = Новый ЧтениеJSON;
                            ЧтениеJSON.УстановитьСтроку(ТекстHTTPОтвета);
                            ОтветСервера = ПрочитатьJSON(ЧтениеJSON);

                        Исключение
                            
                            БылиОшибкиПриРасшифровкеHTTPОтвета = Истина;
                            
                            ОписаниеОшибкиПриРасшифровкеHTTPОтвета = 
                            СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
                            НСтр("ru = 'При получении данных контрагента по ИНН на DaData.Ru произошла ошибка
                                  |%1'"), ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
                            
                            МассивОшибок.Добавить(ОписаниеОшибкиПриРасшифровкеHTTPОтвета);
                            
                            ЗаписьЖурналаРегистрации(
                            ИмяСобытияВЖурналеРегистрации, УровеньЖурналаРегистрации.Ошибка, , , ОписаниеОшибкиПриРасшифровкеHTTPОтвета);

                        КонецПопытки;
   skupidom
 
6 - 13.06.18 - 11:02
есть рабочий пример по реквизитам контрагента по ИНН ?
   skupidom
 
7 - 13.06.18 - 11:11
как с nalog.ru взять данные, может используя HTTPСоединение ?
   dezss
 
8 - 13.06.18 - 11:16
(7) покажи страничку на налог.ру, где такие данные можно посмотреть.
   novichok79
 
9 - 13.06.18 - 11:18
(6) я тебе его скинул в (5) правда там dadata.ru
   novichok79
 
10 - 13.06.18 - 11:19
(7) а как еще можно в 1С? у меня в нелтенке dadata.ru и egrul.nalog.ru, через egrul.nalog.ru пришлось еще получать капчу и токен капчи с сайта.
 
  Рекламное место пустует
   skupidom
 
11 - 13.06.18 - 11:27
эти параметры:
HTTPЗапрос.Заголовки.Вставить("Content-Type", "application/json");
            HTTPЗапрос.Заголовки.Вставить("Accept", "application/json");
            HTTPЗапрос.Заголовки.Вставить("Authorization", "Token " + APIКлючDaData);
   skupidom
 
12 - 13.06.18 - 11:27
что это за параметры?
   dezss
 
13 - 13.06.18 - 11:29
(11) (12) это заголовки хттп-запроса.
   skupidom
 
14 - 13.06.18 - 11:30
ПутьКСервису что здесь?
   novichok79
 
15 - 13.06.18 - 11:32
(12) все написано в документации к API
https://dadata.ru/api/find-party/
(14) https://suggestions.dadata.ru

есть даже православный пример работы:
http://poly-soft.ru/public/595325/
   skupidom
 
16 - 13.06.18 - 11:43
это платный сервис,есть пример с бесплатным?
   novichok79
 
17 - 13.06.18 - 11:46
(16) пример то есть, но работать за тебя не хочется. в dadata.ru определение по ИНН бесплатно до 10000 запросов в день, по-моему.
   Cyberhawk
 
18 - 13.06.18 - 11:48
Однако, какой борзой ТС попался ))
   skupidom
 
19 - 13.06.18 - 11:53
борзой кто пишет!
   skupidom
 
20 - 13.06.18 - 11:56
сервис -платный,а пример похожий на приведенный далее код (приведенный не работает,ошибка:{"error" : "Access is denied"})
Код:
ssl = Новый ЗащищенноеСоединениеOpenSSL();
        HTTPСоединение = Новый HTTPСоединение("xn--c1aubj.xn--80asehdb",443,,,,,ssl);     
        HTTPЗапрос = Новый HTTPЗапрос("интеграция/компании/?инн="+СокрлП(Стр.ИННЖКХ))// Стр.ИННКазна


        Попытка
            ОтветСайта =  HTTPСоединение.Получить(HTTPЗапрос);
            ТекстJSON = ОтветСайта.ПолучитьТелоКакСтроку();
        Исключение
            Возврат;
        КонецПопытки;
        
        ЧтениеJSON = Новый ЧтениеJSON;
        ЧтениеJSON.УстановитьСтроку(ТекстJSON);
        Структ = ПрочитатьJSON(ЧтениеJSON);
        ЧтениеJSON.Закрыть();
        
        IDОрганизации =Структ[0].id;
        
        HTTPЗапрос = Новый HTTPЗапрос("интеграция/компании/"+Формат(IDОрганизации,"ЧГ=")+"/"); 
        ОтветСайта =  HTTPСоединение.Получить(HTTPЗапрос);
        ТекстJSON = ОтветСайта.ПолучитьТелоКакСтроку();
        //ТекстJSON - полный ответ с данными об организации 


        ЧтениеJSON = Новый ЧтениеJSON;
        ЧтениеJSON.УстановитьСтроку(ТекстJSON);
        Структ = ПрочитатьJSON(ЧтениеJSON);
        
        Ответ = "Наименование: "+СокрлП(Структ.shortName);
        Ответ = Ответ+Символы.ПС+"Полн. наименование: "+СокрлП(Структ.name);
        Ответ = Ответ+Символы.ПС+"ИНН: "+СокрлП(Структ.inn);
        Ответ = Ответ+Символы.ПС+"КПП: "+СокрлП(Структ.kpp);
        Ответ = Ответ+Символы.ПС+"ОГРН: "+СокрлП(Структ.ogrn);
        Ответ = Ответ+Символы.ПС+"Юр Адрес: "+СокрлП(Структ.address.fullAddress);
        Ответ = Ответ+Символы.ПС+"Физ Адрес: "+СокрлП(Структ.address.fullHouseAddress);
   novichok79
 
21 - 13.06.18 - 11:58
(19) тебе и так кусок рабочего кода из нетленки был дан бесплатно (!!!). что еще нужно? парсинг ответа? мне это не оплачивается.
(20) у меня определение по ИНН в (5) работает бесплатно. на счету dadata.ru лежат 10 рублей, которые были подарены сайтом при регистрации.
   dezss
 
22 - 13.06.18 - 12:05
(20) а токен получить и указать в заголовках тебе религия не позволяет?
Тебе ж рабочий пример уже дали, просто подставь свои значения!!!

(15) утащил к себе...прикольный у них сервис...даж скрипт для сайта дают)
   novichok79
 
23 - 13.06.18 - 12:15
(22) буквально на прошлой неделе решал похожую задачу в своей нетленке. внедрил туда заполнение контрагента по egrul.nalog.ru и dadata.ru. из похожих сервисов есть еще focus.kontur.ru и http://www.fedresurs.ru, их не внедрил, ибо 2-х сервисов и так достаточно, я думаю.
   skupidom
 
24 - 13.06.18 - 12:22
какое было решение? через приведенный Вами код JSON?
   novichok79
 
25 - 13.06.18 - 12:25
(24) цитирую сам себя же:
внедрил туда заполнение контрагента по egrul.nalog.ru и dadata.ru
   dezss
 
26 - 13.06.18 - 12:31
(23) а где документация по egrul.nalog.ru?
чета сразу не увидел
   skupidom
 
27 - 13.06.18 - 12:34
есть обработка для извлечения данных с egrul.nalog.ru ?
   novichok79
 
28 - 13.06.18 - 12:38
(26) документации я тоже не нашел, на инфостарте есть обработки заполнения, видимо кто-то из html на сайте вытащил вызов. в обработках используются COMОбъекты, у меня сервак на линухе, пришлось переписывать под типовые методы 1С, в итоге оказалось что можно обойтись и без COMОбъектов.
   dezss
 
29 - 13.06.18 - 12:58
(28) интересно, а как обошли использование капчи?
или там нашли какой-то прямой вызов?
   novichok79
 
30 - 13.06.18 - 13:01
(29) а никак похоже. я не видел таких решений, разве что
https://сайт_чье_имя_нельзя_упоминать/public/439808/
но там не egrul.nalog.ru
схема такая - сначала получаю токен капчи с картинкой, потом пользак вводит капчу, я передаю значение капчи вместе с токеном в процедуру получения данных.
   catena
 
31 - 13.06.18 - 13:08
(30)Зачем так сложно, можно же так: http://catalog.mista.ru/public/439808/
   skupidom
 
32 - 13.06.18 - 13:10
здесь можно получить только state, но не заполнить реквизиты контрагента
   novichok79
 
33 - 13.06.18 - 13:32
(31) вы привели мою же ссылку.
 
 
   catena
 
34 - 13.06.18 - 13:36
(33)Но она открывается без доп.телодвижений
   novichok79
 
35 - 13.06.18 - 13:37
(34) браво!
   skupidom
 
36 - 13.06.18 - 14:05
Коллеги, нужен пример получения реквизитов контрагента через сторонний сервис по ИНН, не лимитированный..
   Cyberhawk
 
37 - 13.06.18 - 14:11
Мда, борзота, озвученная мною еще в (18), растет как на дрожжах! ))
   piter3
 
38 - 13.06.18 - 14:12
(36) я пас.
   Aleksey
 
39 - 13.06.18 - 14:12
(36) А что уже есть такой сервис? Все сервисы имеют то или иное ограничение,
   skupidom
 
40 - 13.06.18 - 14:26
самый оптимальный из них какой?
   skupidom
 
41 - 13.06.18 - 14:27
к которому возможно самое большое кол-во обращений за сутки?
   novichok79
 
42 - 13.06.18 - 14:56
Когда у вас нет собаки, 
Ее не отравит сосед, 
И с другом не будет драки, 
Когда у вас друга нет. 
А ударник гремит басами, 
А трубач выжимает медь — 
Думайте сами, решайте сами, 
Иметь или не иметь...
   dezss
 
43 - 13.06.18 - 15:13
(41) блин...неужели 10к обращений в сутки - это мало?
   LienXo
 
44 - 13.06.18 - 15:24
(43) там 10к хитрые немного. Но, в принципе базу на 30к контрагентов за неделю я проверил
   dezss
 
45 - 13.06.18 - 15:40
(44) в чем хитрость?
   Aleksey
 
46 - 13.06.18 - 16:08
(40) так все они за платно готовы анлим предоставить. Откуда нам знать в чем оптимальность?
   Aleksey
 
47 - 13.06.18 - 16:14
Вот даже налог.ру формально стоят 5000 за 1 запрос или 150 тысяч в год
https://normativ.kontur.ru/document?moduleId=1&documentId=257561
   LienXo
 
48 - 13.06.18 - 17:07
(45) 10к не "запросов" а "ответов". Т.е. ты ввел ИНН 10 знаков, не поставил отборы - тебе вернули организацию и 10 ИПшников - 11 ответов ты потратил. Примерно так



Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует