Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
05 авг 2021, 20:37

Интеграция с веб-сервисами

Автор Нияз Ахмадуллин, 03 окт 2020, 19:22

0 Пользователей и 1 гость просматривают эту тему.

Нияз Ахмадуллин

Задание:
Усовершенствуйте алгоритм получения курсов валют: если валюта,
загруженная с веб-сервиса, не найдена в базе данных, то она должна
создаваться. В документ "Установка курсов валют" также должна попасть
запись о курсе только что созданной валюты.
Создайте константу и функциональную опцию. Если константа
"Создавать валюты автоматически" выставлена в "Истина", то
ненайденные валюты создаются при загрузке курсов. Если "Ложь" -
пропускаются.


&НаСервере
Процедура     ЗагрузитьКурсыВалют()

Соединение = WSСсылки.WSСсылка1.СоздатьWSПрокси("http://web.cbr.ru/","DailyInfo","DailyInfoSoap";);
   
ТипWSПарметра = Соединение.ФабрикаXDTO.Пакеты.Получить("http://web.cbr.ru/";).Получить("GetCursOnDate");
   СегодняшняяДата = Соединение.ФабрикаXDTO.Создать(ТипWSПарметра);
   СегодняшняяДата.On_date = ТекущаяДата();
   
   КурсыВалют = Соединение.GetCursOnDate(СегодняшняяДата);
   
   
   НовыйДок = Документы.УстановкаКурсаВалют.СоздатьДокумент();
   НовыйДок.Дата = ТекущаяДата();
   
   Для Каждого Элемент Из КурсыВалют.GetCursOnDateResult.diffgram.ValuteData.ValuteCursOnDate Цикл
      
      НайденнаяВалюта = Справочники.Валюты.НайтиПоКоду(Элемент.Vcode);
      
         НВ = Справочники.Валюты.СоздатьЭлемент(Элемент.Vname);
      
      если ЗначениеЗаполнено(НайденнаяВалюта) Тогда
          НоваяСтрока = НовыйДок.Курсы.Добавить();
          НоваяСтрока.Валюта = НайденнаяВалюта;
          НоваяСтрока.Курс = Элемент.Vcurs;
      иначе
          НоваяСтрока = НовыйДок.Курсы.Добавить();
          НоваяСтрока.Валюта = НВ;
          НоваяСтрока.Курс = Элемент.Vcurs;
      КонецЕсли;         
   
   КонецЦикла;
   
   
   НовыйДок.Записать();
   
   Сообщить("Курс валют загружен. Создан документ:" + НовыйДок.Ссылка);
   
   
   
КонецПроцедуры   

antoneus

НайденнаяВалюта = Справочники.Валюты.НайтиПоКоду(Элемент.Vcode);
Если ЗначениеЗаполнено(НайденнаяВалюта) Тогда
    НоваяСтрока = НовыйДок.Курсы.Добавить();
    НоваяСтрока.Курс = Элемент.Vcurs;
    НоваяСтрока.Валюта = НайденнаяВалюта;
ИначеЕсли Константы.СоздаватьВалютыАвтоматически.Получить() Тогда
    НВ = Справочники.Валюты.СоздатьЭлемент();
    НВ.Код = Элемент.Vcode;
    НВ.Наименование = Элемент.Vname;
    НВ.Записать();
    НоваяСтрока = НовыйДок.Курсы.Добавить();
    НоваяСтрока.Курс = Элемент.Vcurs;
    НоваяСтрока.Валюта = НВ.Ссылка;
КонецЕсли;

Нияз Ахмадуллин

antoneus, большое спасибо. Все работает.
Два дня домал голову с этим

Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск