Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Загрузка курсов с НБРБ

v7: Загрузка курсов с НБРБ
Я
   Alex_Alexsin_2020
 
16.11.20 - 16:17
Всем привет!

Возможно Каму понадобится написал либу для 7-ки

так как НБРБ теперь работает с протоколом HTTPS я не помнил как работать с данным протоколом в 7-ке

и дабы не переписывать код обработки я написал аналогичную либу
   Alex_Alexsin_2020
 
1 - 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
   Alex_Alexsin_2020
 
2 - 16.11.20 - 16:20
найдете ошибки либо будут пожелания пишите буду делать/исправлять )
   Alex_Alexsin_2020
 
3 - 16.11.20 - 16:22
это Net библиотека поэтому регится не regsvr32 а  RegAsm
   Alex_Alexsin_2020
 
4 - 16.11.20 - 16:23
можно работать с этой обработкой как на 1С 7 так и на 1С 8 (правда для 8-ке не знаю нужно ли она или нет ) :-)
   Alex_Alexsin_2020
 
5 - 16.11.20 - 16:23
разрядность x86 (x32)
   Alex_Alexsin_2020
 
6 - 16.11.20 - 16:41
иногда при регистрации ругается (Не может найти сборку)

пропишите полный путь до длл

c:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe c:\DLL\WorkNBRB.dll /codebase
@pause
   acht
 
7 - 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] и будет ровно тоже самое.
   Alex_Alexsin_2020
 
8 - 16.11.20 - 16:53
(7) да мне нужно было что бы работало оно работает курсы загружает )

закинул сюда если нужно юзайте нет не юзайте )
   acht
 
9 - 16.11.20 - 16:55
(8) Грязные носки дома, небось, также разбрасываешь?
   Alex_Alexsin_2020
 
10 - 16.11.20 - 16:58
(9) неее ))
просто нужно было либо изменить код в 1с 7

но мне было лень я нашел либу для 1С 7 и добавил тупо в нее функцию )

зарегил поменял две строчки в обработке и все работает )
   Alex_Alexsin_2020
 
11 - 16.11.20 - 16:59
но щас сделаю новую )
   big
 
12 - 16.11.20 - 19:10
А что мешает пользовать уже известные инструменты - WinHTTP, curl и т.п?
   Alex_Alexsin_2020
 
13 - 16.11.20 - 20:33
(7) Готово (Та-же ссылка)
   Alex_Alexsin_2020
 
14 - 16.11.20 - 20:34
(12) я ж писал что в 7 не помню как с этим работать

да и по сути делал так что бы не менять код который юзают в РБ
   Alex_Alexsin_2020
 
15 - 16.11.20 - 20:42
(12) прошлая библиотека тупо качала XML в указанный файл

затем в обработке он разбирался 

я что бы не писать нового в обработке тупо сделал библу которая делает то-же

и в обработке заменил две строчки
   Alex_Alexsin_2020
 
16 - 16.11.20 - 20:45
чуть позже выложу библу расширяющую синтаксис до 1с 8

подключив ее можно будет пользоваться всеми прелестями синтаксиса 1С 8
   Alex_Alexsin_2020
 
17 - 16.11.20 - 20:51
(16) когда найду решение юзать ее без
РасширениеСинтаксиса = СоздатьОбъект("AddIn.РасширениеСинтаксиса"); 

МояТаблица = РасширениеСинтаксиса.Новый ТаблицаЗначений;

а должно быть что то типа

Using "AddIn.РасширениеСинтаксиса" 

и далее 

Тупо 
МояТаблица = Новый ТаблицаЗначений;

как это сделать на 1С 7 пока не нашел :-(

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.