Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   заполнение реквизитов контрагента по ИНН в 1С 7.7 (http://forums.kuban.ru/f1040/zapolnenie_rekvizitov_kontragenta_po_inn_v_1s_7_7_a-6447013.html)

nico20 22.01.2015 15:02

заполнение реквизитов контрагента по ИНН в 1С 7.7
 
Всем привет,
пытаюсь написать простенькую обработку по заполнению реквизитов контрагента по ИНН в 1С 7.7 В 8ке эта опция уже есть.
Остановился на ответе с сервера, не могу понять в чем причину. Пожалуйста, помогите, кто разбирается в вопросе.
Заранее спасибо.

Цель обработок: обратиться к focus.kontur,ru с указанием ИНН и получить какую-нибудь информацию с сайта вроде наименования контрагента.
На мой взгляд, обработки идентичны, но 8ка в переменную хHTTP.responsetext() возвращает то, с чем можно работать (некий файл html, в теле которого есть и КПП и юр адрес и наименование), а 7ка возвращает какую-то ерунду, а именно:

<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="/search?query=7814559591&amp;region=&amp;industry=&amp;state=081077917">here</a>.</h2>
</body></html>



8ка
Процедура Команда1(Команда)
ИНН="7814541393";
СтрокаПоиска = ИНН;
СтрокаHTTPЗапроса = "https://focus.kontur.ru/search?query=<%ИНН%>&region=<%РЕГИОН%>&industry=<%INDOSTRY%>&state=081077917";

СтрокаHTTPЗапроса = СтрЗаменить(СтрокаHTTPЗапроса, "<%ИНН%>", СокрЛП (ИНН));
СтрокаHTTPЗапроса = СтрЗаменить(СтрокаHTTPЗапроса, "<%РЕГИОН%>", "");
СтрокаHTTPЗапроса = СтрЗаменить(СтрокаHTTPЗапроса, "<%INDOSTRY%>","");
ТекстHTTPОтвета = Неопределено;
хHTTP = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
хHTTP.option(1, "utf-8");
хHTTP.open ("GET", СтрокаHTTPЗапроса,0);
хHTTP.send();
ТекстHTTPОтвета = хHTTP.responsetext();

КонецПроцедуры


7ка
Процедура Сформировать()
ИНН="7814559591";
СтрокаПоиска = ИНН;
СтрокаHTTPЗапроса = "https://focus.kontur.ru/search?query=<%ИНН%>&region=<%РЕГИОН%>&industry=<%INDOSTRY%>&state=081077917";

СтрокаHTTPЗапроса = СтрЗаменить(СтрокаHTTPЗапроса, "<%ИНН%>", СокрЛП (ИНН));
СтрокаHTTPЗапроса = СтрЗаменить(СтрокаHTTPЗапроса, "<%РЕГИОН%>", "");
СтрокаHTTPЗапроса = СтрЗаменить(СтрокаHTTPЗапроса, "<%INDOSTRY%>","");
ТекстHTTPОтвета = "";
хHTTP = СоздатьОбъект("WinHttp.WinHttpRequest.5.1");
хHTTP.option(1, "utf-8");
хHTTP.open ("GET", СтрокаHTTPЗапроса,0);
хHTTP.send();
ТекстHTTPОтвета = хHTTP.responsetext();
КонецПроцедуры

user1C 22.01.2015 15:38

в 7-ке на любой ИНН такой ответ приходит?

nico20 26.01.2015 17:47

Проблема только на одном терминальном сервере, на остальных машинах запрос работает. Поэтому, вопрос закрываю.
Кому надо получать / проверять данные по ИНН, пользуйтесь. Разбор ответа (парсинг) каждый пишет сам, в зависимости от задач.
Процедура Сформировать()
перем ТекстHTTPОтвета;
ИНН="7806468421"; //здесь вводим интересующий вас ИНН
СтрокаПоиска = ИНН;
СтрокаHTTPЗапроса = "https://focus.kontur.ru/search?query=<%ИНН%>&state=081077917";
СтрокаHTTPЗапроса = СтрЗаменить(СтрокаHTTPЗапроса, "<%ИНН%>", СокрЛП (ИНН));
СтрокаHTTPЗапроса = СтрЗаменить(СтрокаHTTPЗапроса, "<%РЕГИОН%>", "");
СтрокаHTTPЗапроса = СтрЗаменить(СтрокаHTTPЗапроса, "<%INDOSTRY%>","");


Попытка
хHTTP = СоздатьОбъект("WinHttp.WinHttpRequest.5.1");

хHTTP.open ("GET", СтрокаHTTPЗапроса,0);
хHTTP.send();
ТекстHTTPОтвета = хHTTP.responsetext();
Текст = СоздатьОбъект("Текст");
Текст.ДобавитьСтроку(стрзаменить(ТекстHTTPОтвета,"utf-8","windows-1251"));
Текст.Записать(Каталогпользователя() + "otvet32.htm");

сделатьразбортекста(Каталогпользователя() + "otvet32.htm");//эту процедуру парсинга каждый пишет под себя,
//однозначно вытаскивается наименование, ИНН, КПП, ОКПО, ОГРН. если постараться, то и юр адрес.

исключение
сообщить("что-то пошло не так");
конецпопытки


КонецПроцедуры

VZ 26.01.2015 21:44

2-nico20 > ОК :)
Примечание: В среде Windows7x64 строка [em]Текст.ДобавитьСтроку(стрзаменить(ТекстHTTPОтвета," utf-8","windows-1251"));[/em] не срабатывает, и при просмотре браузером (IE, Chrome) выгрузка выглядит печально. При "ручном исправлении"(Блокнот) - получше. :)
Наверно, для х64 надо использовать объект [em]adodb.Stream[/em]
И еще: Попробовал в строку запроса засунуть код региона (первые два символа ИНН. Ответ пришел немного, но позже, нежели в варианте (2). Время мерял [em]_GetPerformanceCounter()[/em]

Sasha 27.01.2015 00:27

2(0)я делал на базе сервиса ИТС от 1С. Но нужна действующая подписка, там удобнее тем, что SOAP запрос возвращает ответ в формате xml (методы "getCorporationRequisitesByINN","getEntrepreneurRequisitesByINN")

DeiMos 27.01.2015 08:47

Существует масса РАЗНЫХ юрлиц с ОДИНАКОВЫМ ИНН.

victuan 27.01.2015 10:18

5-DeiMos >Но ККП у них разные.

DeiMos 27.01.2015 11:35

6-victuan > Одинаковые

DeiMos 27.01.2015 11:36

И ИНН и КПП - одинаковые

victuan 05.03.2015 14:27

Кто-нибудь сделал в рабочем виде заполнение реквизитов контрагентов в 1с 7.7?
Мне нужно вытянуть адрес контрагента в формате КЛАДР.

101 05.03.2015 18:11

(9) ищи глобальную процедуру в 7.7
ЗЫ кладр в ЗиК-е ...
в остальном я тя не понил нифига - если он заполнен как попало то как ты его в кладр впихнешь ?

101 05.03.2015 18:20

(6)+
(7,8) разные КПП бывают

victuan 05.03.2015 19:28

10-101 >Причем здесь это?
Ты сабж (0) читал?
В 8-ке есть (штатное или например это [url]http://pinnp.ru/[/url]), нужно такое же прикрутить к 7.7

101 05.03.2015 19:43

(12) хмм именно по этому и спросил ...
ряззз заполнение реквизитов контрагентов в 1с 7.7 (с)
двааа вытянуть адрес контрагента в формате КЛАДР (с)
- такая процедура нормально работает в ЗиК - на сотрудников
триии ищи глобальную процедуру в 7.7 (с) там есть разбор формата адреса ...
ЗЫ что не так ? как вопрос в (9) ??? соотносится с (0) Оо ...

101 05.03.2015 19:49

+ тогда уж надо делить вопросы ... в 7.7 в контрагентах адрес неструктурированная строка ...
+ что ты хочешь ? шашечки или ехать ? функционал зависит от способа хранения данных ...
ЗЫ как щас вспоминаю .... три знака после запятой в суммовом эквиваленте ...

DeiMos 05.03.2015 20:18

Приношу свои извинения. Да, КПП разный.
У меня просто море крови выпила ситуация, когда КПП не указан.

Чучундер 05.03.2015 23:35

Вот тут ишшо
[url]http://forum.infostart.ru/forum24/topic126433/message1313932/#message1313932[/url]

xxc 06.03.2015 07:12

выложи Проверка контрагентов.ert куданить

economist 06.03.2015 08:32

Одинаковый ИНН может быть только у филиальной сети и их головной компании (один налогоплательщик), КПП - все равно у них разные. Еще бывает ситуация когда у головы и филиала разные ИНН. Это когда филиал создавался самостоятельным, а потом "влился" в холдинг с выд. балансом. Впрочем, теткам из госреестра я не верю.

У совершенно разных компаний НЕ может одинакового ИНН. Поэтому ИНН+КПП - самомодостотачный идентификатор. Но тому, кто придмал в 1С77 хранить их в одном текстовом поле с нестрогим разделителем и парсить по длине строки - руки бы оторвать... Крайне непрофессиональное решение.

victuan 06.03.2015 09:51

14-101 >Хорошо, уточню задачу. Нужно по реквизиту ИНН (+ КПП желательно) считывать адрес контрагента с сайта ФНС (или подобного), который поддается преобразованию в формат КЛАДР.
Если у меня будет строка адреса с запятыми, то это уже результат в формате КЛАДР. Если с сайта получается строка, поддающаяся преобразованию в формат КЛАДР, то это уже то, что мне надо.
Но я не могу получить такую строку, например, кодом в посте #2.

victuan 06.03.2015 09:54

16-Чучундер >Это проверка контрагентов - такую я себе сделал давно. Не видит многих ИПшников в базе ФНС.

victuan 06.03.2015 09:57

20-victuan >Кстати, косячит сам сервис. Если ИПшника искать по одному - то находит как действующего, если списком - то, считает недействующим.
Причем глюк не для всех ИП, для каких не понять.
Отправил о глюке письмо в поддержку сайта - ни ответа, ни привета...

perpetum 06.03.2015 12:49

[quote=xxc;38244303] выложи Проверка контрагентов.ert куданить [/quote]
Смотри здесь:
[url]http://forum.infostart.ru/forum24/topic126433/message1314769/?result=reply#message1314769[/url]

Чучундер 06.03.2015 12:51

19-victuan > т ак вроде сейчас уже не Кладр, а другой классификатор

Чучундер 06.03.2015 12:52

21-victuan > может затроллить их? ;-)

ValeraH 06.03.2015 13:29

23-Чучундер > В 7.7 Кладр по-прежнему.

perpetum 06.03.2015 14:08

[quote=VZ;37853475] 2-nico20 &gt; ОК :) Примечание: В среде Windows7x64 строка Текст.ДобавитьСтроку(стрзаменить(ТекстHTTPОтвета," utf-8","windows-1251")); не срабатывает, и при просмотре браузером (IE, Chrome) выгрузка выглядит печально.[/quote]
- странно, у меня срабатывает, просто вместо " utf-8" надо указать "utf-8"

VZ 06.03.2015 16:36

26-perpetum > Ага ;) Слона-то я и не приметил...
Полученный файл раскрывается и в Chrome, и в IE. Вываливается куча инфы, в т.ч., конечно, и адрес.
Но не в формате КЛАДР, а в отдельных полях. Ну, и КПП...
Регион задавать в адресной строке смысла никакого нет.
Парсить не буду :)

victuan 06.03.2015 17:49

23-Чучундер >Мне нужно в КЛАДР для последующего формирования алкогольных деклараций в ФСРАР.

101 06.03.2015 19:17

(28) с этого нада начинать , забирай с сайта алко в формате ексель ... там можна ;)))

101 06.03.2015 19:21

+ если ты действительно про то, что я думаю - даже не пытайся оттуда забрать напрямую ... это не ресурс это ппц , проще пересохранить программно ...

101 06.03.2015 19:23

+ про проверку контрагентов - если опять же про то что я думаю то ето еще с проклаба ...

DeiMos 07.03.2015 14:51

Не лучше ли начать с вопроса ЗАЧЕМ?

DeiMos 07.03.2015 14:55

О, сколько я горя и ошибок трудных претерпел, пока не научился всем клиентам задавать вопрос: ЗАЧЕМ?

101 07.03.2015 14:58

ггггггггггггыыыыыыыыыыыыыы

perpetum 07.03.2015 19:08

[quote=VZ;38250717] 26-perpetum &gt; Ага ;) Слона-то я и не приметил... Полученный файл раскрывается и в Chrome, и в IE. Вываливается куча инфы, в т.ч., конечно, и адрес. Но не в формате КЛАДР, а в отдельных полях. Ну, и КПП... Регион задавать в адресной строке смысла никакого нет. Парсить не буду :) [/quote]
Валера, а я пошукал по углам и ничего более доступного не увидел, потому распарсил диким образом, как мог... по технологии 0-nico20 > - спасибо, мил человек! :-)
Попробуйте - интерфейс интуитивно прост и понятен.
Файлик [b]ProverkaKontry_maf.rar[/b] в пределах 10 дней будет доступен:
[url]http://hdd.tomsk.ru/file/qljffpiv[/url]

perpetum 07.03.2015 19:18

35-perpetum >+ Технология проста - у существующего в справочнике базы 7.7 Контрагента должен быть ИНН, по которому делается запрос по технологии [b]0-nico20 >[/b], затем парсится адрес и, если визуально в сообщении адресной строки не видно проблем, выбираем кнопку записатьАдрес.
Кроме этого, есть возможность массовой проверки контрагентов по запросу на интервале дат выборки документов с контрагентами.

perpetum 07.03.2015 22:10

36-perpetum >Заметил описку в парсинге - вместо оператора Сред(), был задействован оператор Прав(), на удивление, он только иногда давал не нужные значения, поправил и решил дописать до обслуживания в цикле по выборке контрагентов, отработавших в документах выборки по интервалу дат. Запустил в цикле (тестирую) и с наслаждением наблюдаю, как шустро заполняются Адреса Контрагентов из запросов в систему Контур... [b]и вдруг..., пошли пустые адреса[/b] - они, естественно, не пишутся...
- Всполошился..., смотрю, а в файле [b]otvet32.htm[/b] записи результата запроса к Контуру сообщение: - [b]слишком много запросов к серверу[/b], не хотите ли подключиться за плату? - Вот те на..., халява внезапно оборвалась...
Исправленный файл, для работы в цикле по контрагентам файлик здесь:
[url]http://hdd.tomsk.ru/file/mycxnind[/url]
И вот думаю - как теперь быть с проверкой через Контур? На какое время они могут затыкать запросы на мой IP ? - Едва успел отладить и теперь что ? :-(

perpetum 07.03.2015 23:45

37-perpetum >+ Запостил ещё сюда:
[url]http://forum.infostart.ru/forum24/topic126433/message1315119/?result=reply#message1315119[/url]

Чучундер 08.03.2015 00:37

35-perpetum > я уже стянул с ИСа


Текущее время: 15:21. Часовой пояс GMT +3.