|
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 |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |