|   |   | 
| 
 | v7: Загрузка курсов с НБРБ | ☑ | ||
|---|---|---|---|---|
| 0
    
        Alex_ Alexsin_2020 16.11.20✎ 16:17 | 
        Всем привет!
 Возможно Каму понадобится написал либу для 7-ки так как НБРБ теперь работает с протоколом HTTPS я не помнил как работать с данным протоколом в 7-ке и дабы не переписывать код обработки я написал аналогичную либу | |||
| 1
    
        Alex_ Alexsin_2020 16.11.20✎ 16:19 | 
        alex-cms.by/nbrb/НБРБ HTTPS.zip
 Библиотека для загрузки курсов Валют по протоколу HTTPS с НБРБ Для регистрации библиотеки обязательно установить .Net FrameWork 4.5, запустить от имени администратора файл reg.bat. в 1с 7.7 старый код заменить на: НБРБ =СоздатьОбъект("AddIn.НБРБ"); ответ = НБРБ.КурсыВалютВXML("https://www.nbrb.by/Services/XmlExRates.aspx?ondate="+ДатаДляФайла,ФайлКурсов); ответ = "Удачно (Если выполнено удачно)" / "НеУдачно (Если выполнено с ошибками)" далее работать как со старой DLL | |||
| 2
    
        Alex_ Alexsin_2020 16.11.20✎ 16:20 | 
        найдете ошибки либо будут пожелания пишите буду делать/исправлять )     | |||
| 3
    
        Alex_ Alexsin_2020 16.11.20✎ 16:22 | 
        это Net библиотека поэтому регится не regsvr32 а  RegAsm     | |||
| 4
    
        Alex_ Alexsin_2020 16.11.20✎ 16:23 | 
        можно работать с этой обработкой как на 1С 7 так и на 1С 8 (правда для 8-ке не знаю нужно ли она или нет ) :-)     | |||
| 5
    
        Alex_ Alexsin_2020 16.11.20✎ 16:23 | 
        разрядность x86 (x32)     | |||
| 6
    
        Alex_ Alexsin_2020 16.11.20✎ 16:41 | 
        иногда при регистрации ругается (Не может найти сборку)
 пропишите полный путь до длл c:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe c:\DLL\WorkNBRB.dll /codebase @pause | |||
| 7
    
        acht 16.11.20✎ 16:48 | 
        Чувак. Судя по потрохам твоей dll ты пытался написать внешнюю компоненту 1С по стандартам 1С на c#. Это гиблое занятие, чувак, оно так не работает. Выброси оттуда все, чувак, оставь только свой
 public string КурсыВалютВXML(string URL, string Path) { try { string requestUriString = URL; ServicePointManager.SecurityProtocol = (SecurityProtocolType) 3072; WebRequest webRequest = WebRequest.Create(requestUriString); webRequest.Credentials = CredentialCache.DefaultCredentials; WebResponse response = webRequest.GetResponse(); StreamReader streamReader = new StreamReader(response.GetResponseStream()); string end = streamReader.ReadToEnd(); StreamWriter streamWriter = new StreamWriter(Path); streamWriter.WriteLine(end); streamWriter.Close(); streamReader.Close(); response.Close(); return "Удачно"; } catch { return "Ошибка - " + URL + " - " + Path; } } Добавь к нему атрибут [COMVisible] и будет ровно тоже самое. | |||
| 8
    
        Alex_ Alexsin_2020 16.11.20✎ 16:53 | 
        (7) да мне нужно было что бы работало оно работает курсы загружает )
 закинул сюда если нужно юзайте нет не юзайте ) | |||
| 9
    
        acht 16.11.20✎ 16:55 | 
        (8) Грязные носки дома, небось, также разбрасываешь?     | |||
| 10
    
        Alex_ Alexsin_2020 16.11.20✎ 16:58 | 
        (9) неее ))
 просто нужно было либо изменить код в 1с 7 но мне было лень я нашел либу для 1С 7 и добавил тупо в нее функцию ) зарегил поменял две строчки в обработке и все работает ) | |||
| 11
    
        Alex_ Alexsin_2020 16.11.20✎ 16:59 | 
        но щас сделаю новую )     | |||
| 12
    
        big 16.11.20✎ 19:10 | 
        А что мешает пользовать уже известные инструменты - WinHTTP, curl и т.п?     | |||
| 13
    
        Alex_ Alexsin_2020 16.11.20✎ 20:33 | 
        (7) Готово (Та-же ссылка)     | |||
| 14
    
        Alex_ Alexsin_2020 16.11.20✎ 20:34 | 
        (12) я ж писал что в 7 не помню как с этим работать
 да и по сути делал так что бы не менять код который юзают в РБ | |||
| 15
    
        Alex_ Alexsin_2020 16.11.20✎ 20:42 | 
        (12) прошлая библиотека тупо качала XML в указанный файл 
 затем в обработке он разбирался я что бы не писать нового в обработке тупо сделал библу которая делает то-же и в обработке заменил две строчки | |||
| 16
    
        Alex_ Alexsin_2020 16.11.20✎ 20:45 | 
        чуть позже выложу библу расширяющую синтаксис до 1с 8
 подключив ее можно будет пользоваться всеми прелестями синтаксиса 1С 8 | |||
| 17
    
        Alex_ Alexsin_2020 16.11.20✎ 20:51 | 
        (16) когда найду решение юзать ее без 
 РасширениеСинтаксиса = СоздатьОбъект("AddIn.РасширениеСинтаксиса"); МояТаблица = РасширениеСинтаксиса.Новый ТаблицаЗначений; а должно быть что то типа Using "AddIn.РасширениеСинтаксиса" и далее Тупо МояТаблица = Новый ТаблицаЗначений; как это сделать на 1С 7 пока не нашел :-( | |||
| 18
    
        Menahem 05.12.20✎ 19:44 | 
        Добрый всем!
 Предлагаю альтернативный способ решения проблемы используя WinHttp.WinHttpRequest.5.1 Было: Соединение = СоздатьОбъект("Addin.V7HttpReader"); //с https не работает Соединение.Получить("https://www.nbrb.by/Services/XmlExRates.aspx?ondate="+СтрД, Текст, 2); Рабочий вариант: Соединение = СоздатьОбъект("WinHttp.WinHttpRequest.5.1"); Соединение.Open("get","https://www.nbrb.by/services/xmlexrates.aspx?ondate="+СтрД, 0); //Открывает HTTP-соединение с HTTP-ресурсом Соединение.Send(); //Отправляет HTTP-запрос на HTTP-сервер Текст=Соединение.ResponseText(); //Получает тело объекта ответа в виде текста | |||
| 19
    
        big 05.12.20✎ 21:15 | 
        (18) Продолжайте наблюдение, кэп! )))     | |||
| 20
    
        maksoni 05.12.20✎ 21:18 | 
        Menahem !!! для Server 2008 Обязательно нужно воспользоваться советом slavik 
 slavik27 14 16.06.20 19:24 спасибо это работающий и одновременно не работающий метод к примеру для win 2008 serv, нам оказалось этого недостаточно нужно скачать KB обновление самой компоненты winhttp (библиотеки wininet.dll которая используется в winhttp) ссылка для обновлений c сайта microsoft http://www.catalog.update.microsoft.com/search.aspx?q=kb3140245 и далее еще запустить фикс - делает тоже что описано в этой статье, только автоматом https://support.microsoft.com/en-us/help/3140245/update-to-enable-tls-1-1-and-tls-1-2-as-default-secure-protocols-in-wi там много буков - но где-то по середине текста кнопка Download, по которой скачивается файл MicrosoftEasyFix51044.msi после всего этого перезагружаем сервер и будет счастье! | |||
| 21
    
        Menahem 05.12.20✎ 21:38 | 
        (20) Большое спасибо. Учтем!     | |||
| 22
    
        Alex_ Alexsin_2020 29.03.21✎ 16:27 | 
        (18) нууу воот всю малину обломали (
 :-) думал прославлюсь как писатель года ))))))))))) | |||
| 23
    
        Amazing 29.04.21✎ 13:21 | 
        Всем добрый день!
 Может кто-нибудь знает и подскажет как исправить ошибку при загрузке курсов с НБ РБ - msxml3.dll: The system cannot locate the resource specified. Заранее спасибо! | |||
| 24
    
        big 29.04.21✎ 13:30 | 
        (23) Если это происходит при загрузке с помощью внешней компоненты V7Plus, значит на компьютере присутствует (зарегистрирован) парсер XML отличный от версии 3. Это родовой глюк данной компоненты, победить можно либо полным вычищением msxml не 3-й версии, либо загружать другими инструментами.     | |||
| 25
    
        victuan1 30.04.21✎ 05:44 | 
        (23) У вас была установлена какая-то дополнительная программа, которая заменила версии библиотек.
 Чтобы их восстановить: 1) Разрегистрируйте msxml4 с помощью утилиты regdllview-32 (см. вложение) - в списке dll ищете (Ctrl+F) msxml4, затем правой кнопкой мыши на ней и выбираете команду Unregister Selected Files. 2) Затем снова правой кнопкой мыши по этому же файлу и выбираете команду Delete All Entries For Selected Files. Если этого файла уже нет, то данный пункт выполнять не нужно. 3) Затем запустите RegXMLDLL.bat Желательно выполнять действия от имени Администратора. https://disk.yandex.ru/d/6n5XEeHQ3Y9asT | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |