Это моя первая публикация, критика принимается
Обработка запускается как внешняя. Указывается период загрузки и в списки определяются нужные валюты. если при запуску появится сообщение "Не удалось обнаружить компоненту V7Plus.dll!", нужно добавить в папку базы или в папку с платформой "V7Plus.dll" и "V7Plus.als".
Никогда не работал с 1с7.7, а тут пришлось. Долго искал нужную информацию, решил поделиться
Загрузка курсов валют с сайта bank.gov.ua( Национальный Банк Украины). Тестировал на платформе 1с7.7(7.70.027) конфигурация "Бухгалтерский учет" для Украины (7.70.202)
При решении этой задачи возникла проблема, "V7HttpReader" не работает с https, поэтому использовал объект: "Msxml2.ServerXMLHTTP.6.0"
Соединение = СоздатьОбъект("Msxml2.ServerXMLHTTP.6.0"); //AddIn.V7HttpReader
Адрес ="https://bank.gov.ua/NBUStatService/v1/statdirectory/exchange?date="+ДатаВалюты;
Соединение.open("GET",Адрес,0);
Соединение.send();
если Соединение.status = 200 тогда
Стр = Соединение.ResponseXML();
КонецЕсли;
в результате был получен xml(можна результат получить в текстовом формате "Стр = Соединение.ResponseText()")
Дальше считал xml, для этого нужно чтобы была установлена внешняя компонента "V7Plus.dll".Если данная компонента не установлена, нужно закинуть файлы "V7Plus.dll" и "V7Plus.als" в папку с базой или в папку с платформой.
Анализатора xml получаем результат и помещаем в нужные реквизиты(записывал в таблицу значений):
Анализатор=СоздатьОбъект("AddIn.XMLParser");
XMLДокументПолуч = Анализатор.СоздатьДокумент();
XMLДокументПолуч.Загрузить(Стр);
XMLДокументПолуч.Кодировка = "UTF-8";
ВсеУзлы=XMLДокументПолуч.ВыбратьУзел("exchange");//currency
кол=ВсеУзлы.КоличествоПодчиненных();
Для счВерхУровень =1 по кол цикл
ВыборкаРеквезитов = ВсеУзлы.ПолучитьПодчиненныйПоНомеру(счВерхУровень);
ТаблицаЗначений.НоваяСтрока();
ТаблицаЗначений.ДатаКурсу = ТекПериодКурса;
Для сч =1 по ВыборкаРеквезитов.КоличествоПодчиненных() цикл
НоваяСтрока = ВыборкаРеквезитов.ПолучитьПодчиненныйПоНомеру(сч);
Если НоваяСтрока.Наименование = "r030" тогда
ТаблицаЗначений.КодВалюты = НоваяСтрока.Значение;
иначеесли НоваяСтрока.Наименование = "rate" тогда
ТаблицаЗначений.Курс = НоваяСтрока.Значение;
КонецЕсли;
конеццикла;
конеццикла;
Для корректной работы должны быть указаны корректные коды валют. Перерасчет до кратности в справочнику Валюты.