Курсы выбранных валют на дату
Учетные задачи - Банковские операции
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
При помощи данной обработки мы будем решать такую задачу - необходимо получить курсы валют из списка выбранных валют, отобразить полученный результат в табличной части обработки и результат выгрузить в регистр сведений "Курсы валют".
1. Получаем массив значений выбранных курсов валют
//добавляем валюты из списка значений в массив
МассивВалют = Новый Массив;
МассивВалют = Валюта.ВыгрузитьЗначения();
2. Указываем сервер получения данных и адрес
// Сервер
Сервер = "www.cbr.ru";
// Курсы всех валют на дату
Адрес = "/scripts/XML_daily.asp?date_req=" + Формат(Дата, "ДФ=dd/MM/yyyy");
3. Создаем ПостроительDom
// Построение объектной модели XML-документа
ПостроительDOM = Новый ПостроительDOM;
ДокументDOM = ПостроительDOM.Прочитать(ЧтениеXML);
4. При помощи построителя читаем данные из XML (перебираем узлы). Полученные данные записываем в регистр сведений "Курсы валют".
Для Каждого УказаннаяВалюта из МассивВалют Цикл
Если УказаннаяВалюта.Наименование = Наименование Тогда
ТЗСтрока = Таблица.Добавить();
ТЗСтрока.Наименование = Наименование;
ТЗСтрока.НаименованиеВалюты = НаименованиеВалюты;
ТЗСтрока.Курс = Курс;
ТЗСтрока.Код = Код;
ТЗСтрока.Кратность = Кратность;
//Запись полученных данных в справочник "Валюты" (если нет такой валюты)
НоваяВалюта = Справочники.Валюты.НайтиПоНаименованию(Наименование);
Если НоваяВалюта.Пустая() Тогда
НоваяВалюта = Справочники.Валюты.СоздатьЭлемент();
НоваяВалюта.Наименование = Наименование;
НоваяВалюта.Код = Код;
НоваяВалюта.НаименованиеПолное = НаименованиеВалюты;
НоваяВалюта.Записать();
Сообщения.ДобавитьСтроку("В справочник ""Валюты"" добавлен новый элемент - " + НаименованиеВалюты);
КонецЕсли;
//Запись полученных данных в регистр Сведений "КурсыВалют"
НоваяЗаписьРегистра = НаборЗаписей.Добавить();
НоваяЗаписьРегистра.Период = НужнаяДата;
НоваяЗаписьРегистра.Валюта = УказаннаяВалюта.Ссылка;
НоваяЗаписьРегистра.Курс = Курс;
НоваяЗаписьРегистра.Кратность = Кратность;
КонецЕсли;
КонецЦикла;
Проверено на следующих конфигурациях и релизах:
- Управление торговлей, редакция 11, релизы 11.5.18.37
Вступайте в нашу телеграмм-группу Инфостарт