В начало

Загрузка курсов валют

 

Процедура ЗагрузкаКурсовВалют ()

   Влт = СоздатьОбъект ("Справочникалюты");

   Текст = СоздатьОбъект ("Текст");

   Текстткрыть (ИмяФайла);

   Если ТекстоличествоСтрок () = 0 Тогда

      Сообщить ("Текст пустой!");

      Возврат;

   КонецЕсли;

   Успешно = 1;

   НачатьТранзакцию ();

   Для Ном = 1 по ТекстоличествоСтрок () Цикл

      Стр = ТекстолучитьСтроку (Ном);

      Если СтрДлина (Стр) = 0 Тогда

         Продолжить;

      КонецЕсли;

      Поле=0;

      Пока СтрДлина (Стр) > 0 Цикл

         Поле = Поле + 1;

         Инд = Найти (Стр, "-");

         Если Инд > 0 Тогда

            Если Инд > 3 Тогда

               Стр1 = Сред (Стр, 2, Инд-3);

               // не берем кавычки спереди и сзади, и символ тильды.

            Иначе

               // если значение поля пропущено

               Стр1 = "";

            КонецЕсли;

            Стр=Сред (Стр, Инд + 1);

            // не берем символ тильды

         Иначе

            Стр = Сред (Стр, 2);

            Инд = Найти (Стр, """");

 

            Стр1 = Сред (Стр, 1, Инд-1);

           Стр = "";

         КонецЕсли;

         Если Поле = 1 Тогда

            Код = Стр1;

         ИначеЕсли Поле = 2 Тогда

            Курс = Стр1;

         ИначеЕсли Поле = 3 Тогда

            ДатаКурса = Стр1;

         КонецЕсли;

      КонецЦикла;

      ВлтспользоватьДату (Дата (ДатаКурса));

      ВлтайтиПоКоду (Код);

      Если Влтыбран () > 0 Тогда

         Сообщить (Формат (Ном, "45") + " - загрузка Курса="

              + Формат (Курс, "45") + " от " + ДатаКурса);

         Влтекущ_курс = Число (Курс);

         Влтаписать ();

         Сообщить ("    Загружен!");

      Иначе

         Успешно = 0;

         Сообщить ("В базе данных нет валюты с кодом " + Код);

         Сообщить ("Импорт данных отменён!");

         Прервать;

      КонецЕсли;

      Состояние ("Загружено " + Ном + " строк.");

   КонецЦикла;

   Если Успешно = 1 Тогда

      ЗафиксироватьТранзакцию ();

   Иначе

      ОтменитьТранзакцию ();

   КонецЕсли;

КонецПроцедуры