![]() |
[quote=perpetum;38260630]И вот думаю - как теперь быть с проверкой через Контур? На какое время они могут затыкать запросы на мой IP ? - Едва успел отладить и теперь что ? :-( [/quote] - Хм... - всё чики-пуки - ночь прошла и сервер Контур-Фокус открыл халявный доступ. Значит, потихоньку можно шуршать...:-) |
41-perpetum > Хм. У меня на "семерошной" базе нет контриков с одним ИНН и разными КПП. По идее, ответный файл должен несколько страниц выдать, не? А так парсинг идет нормально, Win7x64 кушает за милую душу. |
(42) он формат на ... не тот берет |
Прошерстив некое множество запросов, убедился, что сервис Контур-Фокус содержит много старой инфы, не соответствующей адресному классификатору. Кроме того, все запросы по ИНН идут на головное предприятие (по месту КПП налоговой головной организации), а филиалы игнорируются... Так что пока сервис Контур-Фокус далёк от электронной поддержки без оглядки ... и когда данные будут причесаны - должно быть, когда рак на горе свистнет... Однако, по тому, что получается - и то ладно, с известной оглядкой можно прикручивать к базе бухгалтеру. Найденные в процессе тестирования ошибки, поправил, прилагаю исправленную версию файла ProverkaKontry_maf_po_vsem_vers2.rar - Пробуйте и как-то семафорьте о результатах. :-) Запостил сюда: [url]http://forum.infostart.ru/forum24/topic126433/message1315263/?result=reply#message1315263[/url] |
оно и 1С в типовых конфах 8шных пишет, что это тестовый сервис. то есть в нём всякая фигня :-) |
Ну вот, нашёл для себя забаву... :-) Добавил интерфейс - кнопку на форму "ЗадатьВопросСистемеКонтур" - [u]по пути запросов[/u]. - То есть, можно задать системе Контур в поле ИНН любой вопрос, на который система попытается ответить. - Можно задавать вопросы по именам юридических\физических лиц, по первым символам и так далее - всё, что вам захочется узнать..., и вы получите много интересного! - просто шалел, играя запросами в этом окне... - Отсюда понятна система запросов, какие бы можно было задать контуру - потренируйтесь и можно прикручивать свой функционал - очень поучительно! Файлик - ProverkaKontry_maf_po_vsem_vers3.rar - прилагаю. Запостил сюда: [url]http://forum.infostart.ru/forum24/topic126433/message1315379/?result=reply#message1315379[/url] |
штрафы за нарушение ПДД пририсуй, будет интереснее :-) |
за рекламу инфоста ... можно и по шее ;)) |
48-101 > да ниниадо никуда ходить И здесь по шее можно получить |
Если тупо взять сервис как источник адресной информации по иннкпп То либо принимаем это как правду Либо нет Какойто промежуточный вариант только добавляет работы по сравнению с текущей ситуацией И вообще Ответ сервиса должен быть подписан какойлибо эцп что гарантировало правильность инфы для разборок в случае казусов Если этого нет так и будут работать по старинке вбивая все вручную и запрашивая у клиента выписки с егрюл неустаревшие |
[quote=Зелёный тролль;38272831] штрафы за нарушение ПДД пририсуй, будет интереснее :-) [/quote][quote=101;38272844] за рекламу инфоста ... можно и по шее ;)) [/quote][quote=Чучундер;38274750] 48-101 > да ниниадо никуда ходить И здесь по шее можно получить [/quote] - Ребята, вы о чём? - Тема началась с того, что начат режим тестирования налоговой электронного сервиса по электронным сч-фактурам, а потому нам нужно систему запросов потестить и задуматься, как нам причесать наши данные в базе. Кому, какое дело до рекламы? - обсуждаем, делаем! Несомненно, возможности электронного сервиса впечатляют, однако сразу и видно, что налоговая должна сама причесать свою базу данных и дать возможность получать адресную инфу точную - по ИНН и КПП, в стандарте налогового кладра. Сейчас Контур-Фокус по КПП не отрабатывает... - стало быть, прикрутит вывод в запрос, при одинаковых ИНН, список КПП на выбор. В ряде случаев, можно построить запросы и сейчас. Скажем, по имени фирмы и отследить все выпавшие, с подходящим ИНН и КПП. Конечно, бухгалтеру, в случае массового психоза - адреса не заполнены (некогда), КПП занесли в спешке, неправильно, контры - сотни и тысячи, инфу надо пригладить.. - такой сервис был бы существенной палочкой-выручалочкой. Однако и в тестовом - ещё сыром режиме - можно привыкать к работе в поле требуемого сервиса. Потому - начинаем и привыкаем, а дальше, несомненно, отладится. :-) Ну и [u]спасибо продвинутым участникам, давшим примеры запросов[/u]. - До начала обсуждения в теме, я, например, в этих вопросах, был абсолютно равен нулю... :-) |
[quote=perpetum;38272711]Файлик - ProverkaKontry_maf_po_vsem_vers3.rar - прилагаю. Запостил сюда: [url]http://forum.infostart.ru/forum24/to...message1315379[/url][/quote] Парсинг адреса в формат КЛАДР не работает никак. Примеры результатов: 1, ИНН=2455029173 ... Адрес=,655670,Хакасия респ,Алтайский р-н,,,Подсинее с,,Березовая ул,1 (в данном случае в адресе лишние запятые) или 1, ИНН=2455029173 ... Адрес=,662162,Красноярский край,,Ачинск г,,мкр 9-Й,,Код налогового органа: 2443, (в данном случае в конце адреса мусор) :-( |
для второго примера ИНН был такой: 1, ИНН=2443028915 |
(51) мне за тя написать ? ЗЫ пиндец какойта ... |
... матерится не буду но... ЗЫ тема не начиналась... |
Проверка клиента по ЕГРН по соответсвующей ссылке - в ОЧЕНЬ тестовом режиме. Из 6 ИПшников - все значатся как недействующие Значится имеет смысл проверять по другим данным. Первоисточник - налоговые реестры. по egrul.nalog.ru - по этим же 6 Ипшникам - правильная инфа (нашел у одного ошибку в КПП - что еще раз подтверждает мой тезис о том, что все, что менеджеры/бухгалтеры делают ручками - все это криво потенциально, и верить этому - нельзя. При парсинге с ЕГРЮЛ - о действительности клиента надо смотреть хитро/умно - особенно если проверять не просто стсотяние клиента на сейчас, а о состоянии клдиенат на момент совершеняи сделок.. Например: [url]http://screencast.com/t/ejPIZbrtCcz[/url] - здесь клиент с 1005 до 2006 - был ИП, с 2006 по 2009 не был ИП, а потом стал снова... А вот здесь - какой ОГРНИП у клиента - без стакана не разберешься... [url]http://screencast.com/t/GCEdyTQpTD[/url] |
я не вижу смысла в этих запросах. ибо ИФНС даже не может предоставить данные о р/счетах контрагента. хотя бы юриков, не говоря уж о ИПшниках. |
потом, в таком вот виде, как и в типовых 1Сконфах сделано - оно мало кому надо. если уже проверять актуальность информации, то для всех контрагентов с действующими договорами/выставленными счетами/долгами в БД разом и по всем выводить инфу о (не)соответствии. и делать это ежедневно - мол изменились такие-то реквизиты/состав учредителей/гендиректор/расчетный счет у такой-то организации. и, следовательно, многие из этих реквизитов в 1Ске надо делать периодическими. |
[quote=victuan;38275090] Цитата: Сообщение от perpetum Файлик - ProverkaKontry_maf_po_vsem_vers3.rar - прилагаю. Запостил сюда: [url]http://forum.infostart.ru/forum24/to...message1315379[/url] Парсинг адреса в формат КЛАДР не работает никак. Примеры результатов: 1, ИНН=2455029173 ... Адрес=,655670,Хакасия респ,Алтайский р-н,,,Подсинее с,,Березовая ул,1 (в данном случае в адресе лишние запятые) или 1, ИНН=2455029173 ... Адрес=,662162,Красноярский край,,Ачинск г,,мкр 9-Й,,Код налогового органа: 2443, (в данном случае в конце адреса мусор) :-( [/quote][quote=victuan;38275094] для второго примера ИНН был такой: 1, ИНН=2443028915 [/quote] - Полностью переписал обработку, вставил обращение к кладровским сокращениям объектов Типа: Область, район, город, деревня, улица. Переписал логику и тестировал, по тому, что у меня было в запасе. Добавил возможность настроек при чтении запроса из файла. Файл новой версии ProverkaKontry_maf_po_vsem_vers4.rar - прилагаю. - Пишите о проблемах, порешаем. Запостил сюда: [url]http://forum.infostart.ru/forum24/topic126433/message1316628/?result=reply#message1316628[/url] P.S. - Переписывал дважды... - умудрился готовую работу затереть записью поверх старым файлом... Рековери не помогло..., восстанавливал по памяти и дописывал уже с учетом прошлого опыта... :-) |
59-perpetum > "[em]Переписывал дважды... - умудрился готовую работу затереть[/em]" - сказал бы, получил свою копию :)) |
58-Зелёный тролль > именно так и делать перед выпиской каждой накладной |
[quote=VZ;38296252] 59-perpetum > "Переписывал дважды... - умудрился готовую работу затереть" - сказал бы, получил свою копию :)) [/quote] - Валера, Спасибо! - Считай - сказал - не откажусь - у меня уже было несколько случаев трагизма до слёз... - на NTFS, но, видать, хорошая мысля - всегда опосля... :-) |
59-perpetum > постави приблуду ромикса в патч одноэса Она автоматом при сохранении внешней обработки делает бэкап существующей Меня пару раз спасала И в шедулере поставить автоочистку бэкапной базы по длительности месяц |
Так-с... Теперь, стало быть, "о птичках"... :-) Так как в процессе тестирования убедился в необходимости запроса к Контур-Фокус прямо из поля ВыбКонтрагент,то дописал интерфейс ЗадатьВопросСистемеКонтур, по условию - Есть только имя, нет ИНН - страница контура откроется с запросом по имени Компании, иначе - по ИНН Компании, иначе - пустое поле контрагента - как и раньше. Мне понравилась такая модификация, поскольку она позволяет быстро найти нужного контрагента в выпадающем списке, внести ИНН и уже по нему - заполнить адресные данные кнопкой СформироватьПоКонтре и ЗаписатьАдрес. Прикладываю версию ProverkaKontry_maf_po_vsem_vers5.rar - пробуйте. :-) Собственно - там же: [url]http://forum.infostart.ru/forum24/topic126433/message1316628/?result=edit#message1316628[/url] |
Продолжение. Нашёлся ещё вариант представления данных по юр-лицам для реквизита "Дом", добавил в логику обработки. Обнаружилось попутно, почему не обрабатываются Физ-лица - у физ-лиц и налоговых служб - другой формат представления данных. Этот формат по структуре адреса ближе к стандарту кладра, но... - структура и используемые операторы совсем другие. Если для обычных юр-лиц начало модуля реквизитов содержит оператор "<dl>", то для физ-лиц используется оператор "<li" и нет оператора "<dl>" Пока обработка настраивается для юр-лиц и потихоньку будет писаться, надеюсь, модуль для физ-лиц. Исправленная версия файла ProverkaKontry_maf_po_vsem_vers6.rar прилагается: [url]http://forum.infostart.ru/forum24/topic126433/message1316828/?result=edit#message1316828[/url] |
- Проблемма. Решил сделать текстовый запрос к Контур-Фокус, чтобы затем исследовать выборку, но в сохраненном файле ответ со строкой в виде абракадабры и сообщение - не найдено. Полагаю, необходимо строку в запросе перевести из кодировки "windows-1251" в "utf-8". Как это сделать в 1С ? - дайте совет, кто знает. |
Султонбек на вскидку предлагает попробовать : 1. сохранить текст запроса в текстовый файл с нужной кодировкой, и потом оттуда извлечь в переменную 1С 2. из 1С запустить внешний файл скрипта с нужной кодировкой сам он уже давно не кодирует профессионально но руки-то - помнят |
Вот блок запроса: Наименование=""; Если ВвестиСтроку(Наименование,"Введите своё наименование для поиска",100) = 1 Тогда //получили строку наименование к запросу //Далее нашёл у Смахарба код: Стрим = СоздатьОбъект("Adodb.Stream"); Стрим.Type = 2; Стрим.Mode= 3; Стрим.charset="utf-8"; Стрим.Open(); Стрим.WriteText(""+Наименование); Стрим.SaveToFile("c:\utf-8.txt",2); Стрим.Close(); // теперь читаю файл в кодировке utf-8 Текст_=СоздатьОбъект("Текст"); Текст_.Открыть("c:\utf-8.txt"); Наименование=Текст_.ПолучитьСтроку(1); //вроде бы строка должна быть в коде utf-8 //подставляю в строку запроса: СтрокаHTTPЗапроса="https://focus.kontur.ru/search?query="+Наименование+"&state=081077917"; КонецЕсли" //Теперь запрос: хHTTP = СоздатьОбъект("WinHttp.WinHttpRequest.5.1"); хHTTP.open ("GET", СтрокаHTTPЗапроса,0); хHTTP.send(); ТекстHTTPОтвета = хHTTP.responsetext(); Текст.ДобавитьСтроку(СтрЗаменить(ТекстHTTPОтвета,"utf-8","windows-1251")); //это уже для читаемости в винде Текст.Записать(Каталогпользователя() + "otvet32.htm"); // пробую открыть сохраненный файл - в поле запроса - абракадабра... - что не так? |
67-Синегурочка > - :-) - не видел твоего сообщения - делал, как ты и предсказывала... :-) Вот что получилось в ответе с сервера: Ничего не найдено по запросу «Ð¿Â»Ñ?Ð ÑР°Сâ?¬Ð Ñ?Ð Ð?Р° Ð Ð?СÐ?РµРÑРµРÐ?Ð Ñ?» - и всё выглядит нормально, читабельно, за исключением абракадабры. А набирал "машина времени" - она и должна была видна на месте абракадабры. |
Вот архив Султонбековских давнишних экспериментов по перекодировке (если разберешься, он сам уже ничего не помнит) тут несколько вариантов, пробуй 'юникод стал отображаться русским: html = "тут я получил текст в кодировке utf-8" CreateFile(html) html = OpenFile() Function OpenFile() Dim FSO, TextStream Set FSO = CreateObject("Scripting.FileSystemObject") Set TextStream = FSO.OpenTextFile(".\htmlcode.htm", 1, False, -1) OpenFile = TextStream.ReadAll TextStream.Close End Function Sub CreateFile(Text) Dim fso, tf Set fso = CreateObject("Scripting.FileSystemObject") Set tf = fso.CreateTextFile(".\htmlcode.htm", True, True) ' Вставка новой строки, без переноса. tf.Write (Text) ' Закрытие файла. tf.Close End Sub '============================================== 'Для досявой кодировки будет, наверное, "ibm866". 'Все доступные кодировки можно подсмотреть в HKEY_CLASSES_ROOT\Mime\Database\Charset function convert(txt, srcCharset, dstCharset) set stream = createobject("ADODB.Stream") with stream .Type = 2 : .Mode = 3 : .Charset = srcCharset .Open .WriteText txt, 0 .Position = 0 .Charset = dstCharset : convert = .ReadText end with end function ' ----------------------------------------------------------------- res = convert("бНОПНЯ", "KOI8-R", "windows-1251") msgbox res '============================================== 'Функция convert_cyr_string принимает строку в кодировке src и возвращает в кодировке dst. 'src и dst могу принимать следующие значения: "d", "w", "u" - 866, 1251 и UTF соответственно. function convert_cyr_string(str,src,dst) src = lcase(src) dst = lcase(dst) dim Fsrc, Fdst, ArrFdos, ArrFwin, ArrFutf, d, Simv, n ArrFdos = split("128;129;130;131;132;133;134;135;136;137;138;139;140;141;142;143;144;145;146;147;148;149;150;151;152;153;154;155;156;157;158;159;160;161;162;163;164;165;166;167;168;169;170;171;172;173;174;175;224;225;226;227;228;229;230;231;232;233;234;235;236;237;238;239;240;241",";") ArrFwin = split("192;193;194;195;196;197;198;199;200;201;202;203;204;205;206;207;208;209;210;211;212;213;214;215;216;217;218;219;220;221;222;223;224;225;226;227;228;229;230;231;232;233;234;235;236;237;238;239;240;241;242;243;244;245;246;247;248;249;250;251;252;253;254;255;168;184",";") ArrFutf = split("208:144;208:145;208:146;208:147;208:148;208:149;208:150;208:151;208:152;208:153;208:154;208:155;208:156;208:157;208:158;208:159;208:160;208:161;208:162;208:163;208:164;208:165;208:166;208:167;208:168;208:169;208:170;208:171;208:172;208:173;208:174;208:175;208:176;208:177;208:178;208:179;208:180;208:181;208:182;208:183;208:184;208:185;208:186;208:187;208:188;208:189;208:190;208:191;209:128;209:129;209:130;209:131;209:132;209:133;209:134;209:135;209:136;209:137;209:138;209:139;209:140;209:141;209:142;209:143;208:129;209:145",";") if (src = "w" and dst = "w") or (src = "d" and dst = "d") or (src = "u" and dst = "u") then convert_cyr_string = str exit function end if if src = "w" then Fsrc = ArrFwin elseif lcase(src) = "d" then Fsrc = ArrFdos elseif lcase(src) = "u" then Fsrc = ArrFutf else convert_cyr_string = "Err: The variable src isn't true" exit function end if if dst = "w" then Fdst = ArrFwin elseif dst = "d" then Fdst = ArrFdos elseif dst = "u" then Fdst = ArrFutf else convert_cyr_string = "Err: The variable dst isn't true" exit function end if Set d = CreateObject("Scripting.Dictionary") for n=0 to ubound(Fsrc) d.Add Fsrc(n), Fdst(n) next if (src = "w" and dst = "d") or (src = "d" and dst = "w") then for n = 1 to len(str) if d.item(cStr(asc(mid(str,n,1)))) <> "" then Simv = Simv & chr(d.item(cStr(asc(mid(str,n,1))))) else Simv = Simv & mid(str,n,1) end if next elseif src = "u" then for n = 1 to len(str) if asc(mid(str,n,1)) = 208 or asc(mid(str,n,1)) = 209 then Simv = Simv & chr(d.Item(cStr(asc(left(mid(str,n,2),1)) & ":" & asc(right(mid(str,n,2),1))))) n = n + 1 else Simv = Simv & mid(str,n,1) end if next elseif dst = "u" then for n = 1 to len(str) if d.item(cStr(asc(mid(str,n,1)))) <> "" Then Simv = Simv & chr(left(d.item(cStr(asc(mid(str,n,1)))),3)) & chr(right(d.item(cStr(asc(mid(str,n,1)))),3)) else Simv = Simv & mid(str,n,1) end if next end if set d = Nothing convert_cyr_string = Simv end function msgbox convert_cyr_string("привет","u","w") '============================================== Set oWShell=CreateObject("WScript.Shell") set FSO=CreateObject("Scripting.FileSystemObject") set file=FSO.CreateTextFile(".\ibscript.vbs") file.WriteLine("Set oWShell=CreateObject(""WScript.Shell"")") file.WriteLine("cliptext=InputBox (""text"",""clipboard"","""")") 'file.WriteLine("oWShell.Run ""cmd /c echo "" & cliptext & "" | clip""") file.WriteLine("Set oWShell=Nothing") file.Close 'Закрываем файл oWShell.Run ".\ibscript.vbs",1,0 WScript.Sleep 500 oWShell.SendKeys("^v") WScript.Sleep 50 'oWShell.SendKeys("^c") 'WScript.Sleep 50 oWShell.SendKeys("{enter**") WScript.Sleep 50 FSO.DeleteFile ".\ibscript.vbs" Set oWShell=Nothing Set FSO=Nothing Set file=Nothing WScript.Quit() |
засунь все это, что выше, в файл .vbs и пробуй, должно получиться |
69-perpetum >+ если наименование в виде чисел (ИНН), то при перекодировке - кусочек абракадабры и исходный набор чисел - ничего не найдено, а если набор чисел без перекодировки, то запрос делается правильно - выдается страничка клиента. Итак, как сделать запрос серверу в кириллице и не пострадать? :-) |
вдогонку - а ты пробовал из 1С запустить внешний файл скрипта (например vbs), получить читабельный результат тоже во внешний файл, а потом этот результат забрать в 1С ? ну и выше гляди, Султонбек говорит, что там точно что-то замечательно отрабатывало перекодировку |
73-Синегурочка > - Спасибо за заботу, но я другим путём победил! :-) - Перекодировки "windows-1251" в "utf-8" оказалось мало - понадобилось преобразовать коды символов "utf-8" в 16-ричный код и сформировать ескейп-последовательность - она и работает в запросе. Стандартных функций под рукой не оказалось, писал в 1С. Кроме того, для фильтра по недописанным областям, республикам, пришлось создать файл Область.txt, в который заложил все наши республики с их краткими расширениями "обл, край, АО, ..." Обычной строкой не удалось завернуть в обработку, поэтому читается из файла. В архив версии ProverkaKontry_maf_po_vsem_vers8.rar вложил краткую инструкцию Прочти.txt". - пробуйте..., делайте предложения, замечания. Файл запостил сюда: [url]http://forum.infostart.ru/forum24/topic126433/message1318440/?result=reply#message1318440[/url] |
74-perpetum > + [b]p.s.[/b] [b][u]Режимы работы.[/u][/b] Если поле [b]ВыбКонтрагент[/b] пустое - доступны запросы без обращения к базе [b]{по ИНН или произвольному тексту, указывающему на Имя предполагаемой для поиска компании или физического лица**[/b]. Если поле [b]ВыбКонтрагент[/b] не пустое - идёт диалог с обращением к базе. Если у контрагента есть [b]ИНН[/b], запрос доступен для обслуживания по реквизитам контрагента кнопкой [b]Сформировать_ПоКонтре[/b], иначе - следует работать по кнопке [b]ЗадатьВопросСистемеКонтур[/b] - в этом случае в список вываливается некое множество компаний с именем вашего контрагента в поле ВыбКонтрагент и уже из этого списка вы можете выбрать подходящие реквизиты, скопипастить [b]ИНН[/b] в базу к контрагенту и затем по кнопке [b]Сформировать_ПоКонтре[/b], занести реквизиты в базу через кнопку [b]ЗаписатьАдрес[/b]. Если запрос сделан по [b]ИНН[/b], ищется соответствующий [b]ИНН[/b] в базе и если [b]ИНН[/b] единственный, то [b]имя компании вставляется в поле ВыбКонтрагент[/b], чтобы иметь возможность сразу переключиться на режим записи в базу. Есть 2 вида кодирования компаний - обычных смертных [b]{юр-лиц**[/b] и [b]{физ-лиц+налоговых+департаментов**[/b]. Сейчас алгоритм отрабатывает формат только для [b]{юр-лиц**[/b], но запросы с выводом ответа на сайт [b]Контур-Фокус[/b] или в файл, можно отрабатывать для любых и использовать файл ответа для домашней настройки по флажку [b]ИзФайла[/b]. |
75-perpetum > + Очередное обновление, и, пожалуй, займусь другими проектами. Теперь исправлена работа по кнопке ЗадатьВопросСистемеКонтур. Оказалось, не на всех браузерах запрос проходит без кракозябров. Пришлось пропустить запрос через ескейп-последовательность, после чего браузеры перестали жаловаться на кракозябры. На форме подправил имена кнопок, страдавших вульгарной небрежностью цейтнота работы над обработкой. В алгоритме обработки провел некоторую систематизацию функций. В комментарии обработки так же помещено ознакомительное описание. Файл новой версии ProverkaKontry_maf_po_vsem_vers9.rar, прилагаю: Не забудьте хорошенько тестировать и сообщить, что у вас было не так! :-) Запостил, как всегда, сюда: [url]http://forum.infostart.ru/forum24/topic126433/message1318567/?result=reply#message1318567[/url] |
Ну что? - Сподобился, сделал публикацию! [url]http://infostart.ru/public/336256/[/url] - прошу не стесняться... - заглядываете..., если что :-) |
77-perpetum > + - ну и всем, кто рядышком был и подсказывал, а кто и ругался - всем спасибо... - я лично - доволен...! :-) |
78-perpetum > Плюсанул! |
[quote=Чучундер;38344432] 78-perpetum > Плюсанул! [/quote]- Спасибо тебе, добрый человек... :-) - Жалко только, написал аннотацию к работе, учел так сказать творческий лик участников, а её, без лишних слов, подло обрубили, обезличили... А там приводил много интересных ссылок, по пути которых пришёл к пониманию, как получить результат. И я не удосужился эти ссылки сохранить в одном месте... - Очень обидно, но буду знать, у нас идеи не ценятся, а нужен результат - оно крутится-вертится, вроде как должно - значит приладим... и всё... |
Текущее время: 18:23. Часовой пояс GMT +3. |