8.х Курсы валют

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем VIPOS, 4 сен 2015.

  1. TopicStarter Overlay
    VIPOS
    Offline

    VIPOS Опытный в 1С

    Регистрация:
    12 сен 2012
    Сообщения:
    565
    Симпатии:
    1
    Баллы:
    29
    Есть такой вот кустарный код для заполнения курсов валют со своего хмл файла, точнее группы файлов, но почему-то в регистр попадпет только последняя запись, а все оставльные затерлись.
    В чем проблема, подскажите пожалуйста
    Код:
    ока ЭлементыФормы.НачалоПериода.Значение <= ЭлементыФормы.КонецПериода.Значение Цикл
        XML = Новый ЧтениеXML;
        XML.ОткрытьФайл("d:\kurs\kurs-"+Формат(ЭлементыФормы.НачалоПериода.Значение,"ДФ=dd-MM-yyyy")+".xml");
            Валюта = "";
            Курс="";
        Пока XML.Прочитать() Цикл
           
            Если XML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
            ИмяУзла = XML.Имя;
       
            Пока XML.ПрочитатьАтрибут() Цикл
                ТипУзла = XML.ТипУзла;
               
                Имя =XML.Имя;
                Значение = XML.Значение;
                Сообщить(ТипУзла+" "+Имя+" "+Значение);
            КонецЦикла;
        ИначеЕсли XML.ТипУзла = ТипУзлаXML.Текст Тогда
            Если Валюта="" ТОгда
                Валюта= XML.Значение
            Иначе
                Курс = Число(XML.Значение);
                Вал = Справочники.Валюты;
                ЭлементССылка =Вал.НайтиПоНаименованию(Валюта);
                Если Не ЭлементССылка.Пустая() Тогда
                НаборЗаписей = РегистрыСведений.КурсыВалют.СоздатьНаборЗаписей();
    //            НаборЗаписей.Отбор.Валюта=ЭлементССылка;
    //            НаборЗаписей.Отбор.Период = ЭлементыФормы.НачалоПериода.Значение;
                НовЗапись = НаборЗаписей.Добавить();
                НовЗапись.Валюта = ЭлементССылка;
                НовЗапись.Период = ЭлементыФормы.НачалоПериода.Значение;
                НовЗапись.Курс = Курс;
                НовЗапись.Кратность = 1;
                   
                КонецЕсли;
                Валюта="";
            КонецЕсли;   
           
        ИначеЕсли  XML.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда
           
            КонецЕсли;
           
        КонецЦикла;   
        НаборЗаписей.Записать(Истина);
    
        ЭлементыФормы.НачалоПериода.Значение = ЭлементыФормы.НачалоПериода.Значение +60*60*24;
           
        КонецЦикла;
       
    КонецПроцедуры
    
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    Проблема в том, что заполнение регистра происходит с помощью набора записей.
  3. TopicStarter Overlay
    VIPOS
    Offline

    VIPOS Опытный в 1С

    Регистрация:
    12 сен 2012
    Сообщения:
    565
    Симпатии:
    1
    Баллы:
    29
    да делал по примеру все, имею ввиду заполнение
  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    Ну так необходимо таки адаптировать код под реалии....
  5. TopicStarter Overlay
    VIPOS
    Offline

    VIPOS Опытный в 1С

    Регистрация:
    12 сен 2012
    Сообщения:
    565
    Симпатии:
    1
    Баллы:
    29
    спасибо разобрался, вынес забор из цикла
  6. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    Если продолжить использовать НаборЗаписей, то следующее выполнение кода затрет существующие записи в регистре.
  7. TopicStarter Overlay
    VIPOS
    Offline

    VIPOS Опытный в 1С

    Регистрация:
    12 сен 2012
    Сообщения:
    565
    Симпатии:
    1
    Баллы:
    29
    что тогда использовать вместо набора? информацию я и так затер.
    теперь вливаю все курсы с 10 года
    --- Объединение сообщений, 4 сен 2015 ---
    менеджер записи?
  8. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    ага, менеджер записи
  9. TopicStarter Overlay
    VIPOS
    Offline

    VIPOS Опытный в 1С

    Регистрация:
    12 сен 2012
    Сообщения:
    565
    Симпатии:
    1
    Баллы:
    29
    наткнулся сейчас на пример, просто долго не имел дел с 1с
    теперь приходится вспоминать.
    Наша сеть просто не подклюсена к инету, поэтому пришлось писать скрипт на java который получает все курсы с цб рф и сохраняет их на флэху (всэ это на компе с инетом), а потом своей обработкой грузить в 1с

Поделиться этой страницей