Вход | Регистрация
 
Информационные технологии :: Администрирование

Загрузка цен гос. реестра с сайта grls.rosminzdrav.ru

Загрузка цен гос. реестра с сайта grls.rosminzdrav.ru
Я
   John83
 
15.10.21 - 12:28
Жили не тужили, но с пару недель назад перестала работать загрузка цен.
Кто пользуется этим сервисом? Там поменялось чего?
   John83
 
1 - 15.10.21 - 12:29
код загрузки

    Соединение = Новый HTTPСоединение("grls.rosminzdrav.ru");
    
    ТекЗапрос = Новый HTTPЗапрос("pricelims.aspx");
    
    Попытка
        ТекОтвет = Соединение.ОтправитьДляОбработки(ТекЗапрос);     
        ТекСтрока = ТекОтвет.ПолучитьТелоКакСтроку();
    Исключение
        ЗаписьЖурналаРегистрации("Сообщение", УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
    КонецПопытки;
        
    
    ТекИмяФайлаПриемника = ПолучитьИмяВременногоФайла("html");
    
    ТекТекстовыйФайл = Новый ТекстовыйДокумент;
    ТекТекстовыйФайл.УстановитьТекст(ТекСтрока);
    ТекТекстовыйФайл.Записать(ТекИмяФайлаПриемника, КодировкаТекста.ANSI);
    
    ТекЧтениеХТМЛ = Новый ЧтениеHTML;
    ТекЧтениеХТМЛ.ОткрытьФайл(ТекИмяФайлаПриемника);
    
    ТекПостроительDOM = Новый ПостроительDOM;
    ТекДокументHTML = ТекПостроительDOM.Прочитать(ТекЧтениеХТМЛ);
    ТекЭлемент = ТекДокументHTML.ПолучитьЭлементПоИдентификатору("ctl00_plate_tdzip");
    
    ТекЧтениеХТМЛ.Закрыть();
    
    ТекИмяФайлаИсточника = "http://grls.rosminzdrav.ru/" + ТекЭлемент.ПервыйДочерний.Гиперссылка;
    ТекИмяФайлаПриемника = ПолучитьИмяВременногоФайла("zip");
   Garykom
 
2 - 15.10.21 - 12:30
(0) сервис неустойчиво работает
пробуйте несколько раз и в разное время
   John83
 
3 - 15.10.21 - 12:36
(2) посмотрел по журналу, даже не две недели, а месяц как не работает
за это время должно было хоть разок загрузиться-то
   Kassern
 
4 - 15.10.21 - 12:37
(3) ошибка то какая?
   John83
 
5 - 15.10.21 - 12:39
(4) Значение не является значением объектного типа (ПервыйДочерний)
Вот тут
    Попытка
        ТекОтвет = Соединение.ОтправитьДляОбработки(ТекЗапрос);    
        ТекСтрока = ТекОтвет.ПолучитьТелоКакСтроку();

ТекСтрока уже пустая
   Garykom
 
6 - 15.10.21 - 12:41
(5) а это уже как нибудь сами
что там внутри структуры портала поменялось
наймите например программиста чтобы допилил
   Гость из Мариуполя
 
7 - 15.10.21 - 13:23
(3) >>  месяц как не работает

аккурат 17.09.2021 на твоем сайте установили новый сертификат безопасности

и адрес в браузере почему то перебрасывает http:// на https://

?
   John83
 
8 - 19.10.21 - 09:52
(7) и что с этим сертификатом делать? откуда брать? Куда пихать?
Если в коде указать https, то ничего не меняется.
   Kassern
 
9 - 19.10.21 - 09:55
(8) бядааа... Новый ЗащищенноеСоединение() тебе в помощь при подключении
   Гость из Мариуполя
 
10 - 19.10.21 - 12:17
(8) винда какая? Win7? и небось без всех последних (крайних) обновлений?
если да, то та же самая фигня, что и в ветке фнс временно недоступен

решение то же самое - обновить в винде доверенные корневые центры сертификации
только не как там неумеха делает - не файлик pem куда то там подсовывать, а именно - "обновить в системе доверенные корневые центры сертификации"!
   Kassern
 
11 - 19.10.21 - 12:18
(10) у него же вся проблема тут Соединение = Новый HTTPСоединение("grls.rosminzdrav.ru");
Так это не работает с https смотрите (9)
   Гость из Мариуполя
 
12 - 19.10.21 - 12:22
(11) совет в (9) естественно, я ни капельки и не возражаю, это подразумевается. Одно другому не мешает.
но если у него старая винда WIN7, то к этому еще и (10). если нет, то имхо достаточно только совет (9)
   John83
 
13 - 19.10.21 - 17:12
дело чуть продвинулось, вот так помогло
Соединение = Новый HTTPСоединение("grls.rosminzdrav.ru",,,,,, Новый ЗащищенноеСоединениеOpenSSL);
   John83
 
14 - 19.10.21 - 17:13
следующая проблема в том, что тут почему-то файл не хочет качаться
    ТекИмяФайлаИсточника = "https://grls.rosminzdrav.ru/" + ТекЭлемент.ПервыйДочерний.Гиперссылка;
    ТекИмяФайлаПриемника = ПолучитьИмяВременногоФайла("zip");
    
    КопироватьФайл(ТекИмяФайлаИсточника, ТекИмяФайлаПриемника);

адрес получается
https://grls.rosminzdrav.ru/GetLimPrice.ashx?FileGUID=9d0d1e64-504f-4747-b78c-c80b7be3858b&UserReq=4633806
При этом в браузере предлагает сохранить файл, а в 1с ругается "ошибка доступа к файлу"
   John83
 
15 - 19.10.21 - 17:15
если быть точнее
{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(38)}: Ошибка при вызове метода контекста (КопироватьФайл)
    КопироватьФайл(ТекИмяФайлаИсточника, ТекИмяФайлаПриемника);    
по причине:
Ошибка копирования файлов
по причине:
Ошибка доступа к файлу 'https://grls.rosminzdrav.ru/GetLimPrice.ashx?FileGUID=9d0d1e64-504f-4747-b78c-c80b7be3858b&UserReq=5458659'
по причине:
Ошибка работы с Интернет:  Удаленный узел не прошел проверку
   Kassern
 
16 - 19.10.21 - 17:18
(14) а все потому что КопироватьФайл(ТекИмяФайлаИсточника, ТекИмяФайлаПриемника);  работает только для HTTP!
для защищенного соединения вы должны подключиться с помощью ssl, а далее через Соединение.ВызватьМетод(...) получить ответом файл.
   Гость из Мариуполя
 
17 - 19.10.21 - 17:41
(15) >> Ошибка работы с Интернет:  Удаленный узел не прошел проверку
хм..
а можешь показать, что у тебя в IE по такому вот адресу показывается. https://grls.rosminzdrav.ru/help.aspx
Именно в IE.

https://a.radikal.ru/a11/2110/25/eec78b148ffc.png
   John83
 
18 - 19.10.21 - 17:47
(17) да тоже самое и показывает
   John83
 
19 - 19.10.21 - 17:48
(16) вот так вроде получилось
Соединение.Получить(ТекЭлемент.ПервыйДочерний.Гиперссылка, ТекИмяФайлаПриемника);
спасибо!!!
   John83
 
20 - 19.10.21 - 17:48
и всем принявшим участие тоже большое спасибо :)
   Kassern
 
21 - 19.10.21 - 17:50
(19) Получить() это аналог ВызватьМетод("GET",), а ОтправитьДляОбработки() - аналог ВызватьМетод("POST",)


Список тем форума
 
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа.
Фредерик Брукс-младший
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.