Попытка
Соединение = СоздатьОбъект("Addin.V7HttpReader") ;
Соединение.КоличествоПопытокАвторизации = 3;
Исключение
Сообщить("Не удалось создать объект Addin.V7HttpReader!");
Возврат;
КонецПопытки;
Если ПустаяСтрока(КаталогДанных)=-0 Тогда
КаталогДанных = КаталогВременныхФайлов();
КонецЕсли;
Попытка
Ресурс="https://www.nalog.ru/html/sites/www.new.nalog.ru/docs/sprav/TNVED.7z";
Соединение.ПолучитьКакФайл(Ресурс,КаталогДанных+"TNVED.7z");
Исключение
Сообщить("Неудачная попытка соединения.");
Сообщить(Соединение.СтрокаСостоянияОтвета) ;
Возврат;
КонецПопытки;
Если ФС.СуществуетФайл(КаталогДанных+"TNVED.7z")=0 Тогда
Сообщить("Не удалось получить ответ с сайта. Проверьте интернет соединение.");
Возврат;
КонецЕсли;
(8) Ну у меня же не динамическая страница. А просто зашифрованный определенным сертификатом протокол. Что такое HTTPS
Первое, что делает браузер при установке соединения по протоколу HTTPS, это проверку подлинности сертификата, и только в случае успешного ответа начинается обмен данными.
Интересно, а 8.3 умеет работать с этим протоколом и есть ли примеры?
Ну как я понял, судя по тому, что сервис "1с:Отчетность" для 7.7 Бухгалтерии предоставляется через программу посредник "1С:Налогоплательщик 7.7", то с защищенных протоком v7plus работать не умеет. А если ли другие внешние библиотеки для 7.7, которые умеют?
Сегодня столкнулся с такой же ситуацией на 1С v7.7 (обновление курсов валют с сайта www.nbrb.by, который раньше работал по HTTP, перестало работать, поскольку сайт стал работать только по https)
В качестве костыля заиспользовал stunnel, установив его на комп с 1C-кой и добавив в его конфигурационный файл строчки вида
В самой конфигурации 1C в исходниках модуля исправил строчку с
HTTPСервис.ПолучитьКакФайл
, заменив в URL www.nbrb.by на 127.0.0.1:11080 (это локальный адрес компа, где запускается 1C).
Принцип действия stunnel - он слушает локальный порт (в данном случае - 11080); при подключении на него клиента (который не умеет работать с защищёнными соединениями) сам соединяется с целевым сайтом (в данном случае - www.nbrb.by) по SSL-протоколу, проверяет сертификаты и т.д. и шифрует трафик между приложением (1С) и сайтом.
verifyChain = no
я поставил вполне осознанно, для ускорения подключения (вообще по-хорошему сертификаты нужно проверять :) ).
Единственный технический нюанс: get-запрос идёт уже по защищённому соединению, и в get-запросе, кроме всего прочего, указывается имя хоста (в данном случае - в виде строчки "Host:www.nbrb.by") - это нужно для веб-серверов, на которых одновременно хостится несколько сайтов на одном IP. Так вот, если серверу не всё равно, что именно ему отправляют в поле "Host:" get-запроса, то вышеприведённая схема работать не будет (целевому серверу в строчке Host будет вместо www.nbrb.by отправлено 127.0.0.1). В этом случае придётся подменять DNS, в C:\Windows\system32\drivers\etc\hosts прописав строчку
www.nbrb.by 127.0.0.1
но в этом случае в конфигурации stunnel нужно указать стандартный порт 80 в строчке accept, а в строчке connect - IP-адрес (а не имя!) нужного сайта (ну или имя, но НЕ совпадающее с www.nbrb.by, поскольку система после модификации файла hosts будет всегда возвращать для этого имени адрес 127.0.0.1). Строчка с конфигурацией в этом случае будут выглядеть так:
accept = 127.0.0.1:80
connect = nbrb.by:443
(в случае, если IP-адрес www.nbrb.by совпадает с IP-адресом nbrb.by)
или
connect = 212.98.162.9:443
(IP-адрес можно узнать с помощью команды ping или nslookup - но он может измениться через какое-то время, так что это нужно иметь ввиду)
и тогда ВСЕ приложения (не только 1C), которые будут пытаться лезть на www.nbrb.by по http-протоколу, будут попадать в stunnel, который будет заворачивать их на настоящий сайт уже по https-протоколу.
Ну и да, при этом на локальном компе не должно быть других программ, слушающих порт 80 (но зато в самой конфигурации 1C в этом случае вообще ничего менять не нужно).
...Объяснил сложновато и разжёванно, но, может, кому-то пригодится :)
Сегодня столкнулся с такой же ситуацией на 1С v7.7 (обновление курсов валют с сайта www.nbrb.by, который раньше работал по HTTP, перестало работать, поскольку сайт стал работать только по https)
Дружище, благодаря этому посту решил ту же проблему. Респект!