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

Быстрая запись в регистр сведений

Автор pyrkin_vanya, 20 окт 2014, 09:28

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

LexaK

Если вам известны все поля  записи регистра , то читать его не обязательно, надо использовать следующую схему


Процедура ОбработатьРегистр(ВашаТЗ)

    //ОДИН раз создаем набор записей
    НаборВыгрузкиНаСайт = РегистрыСведений.ИсторияВыгрузкиНаСайт.СоздатьНаборЗаписей();

    Для каждого лкСтр Из ВашаТЗ Цикл
        //устанавливаем отбор, по нему происходит перезапись, здесь может быть несколько полей
        НаборВыгрузкиНаСайт.Отбор.ДокументДляВыгрузки.Установить(лкСтр.Ссылка);
       
        //создаем запись и заполняем у нее все поля
        лкРег = НаборВыгрузкиНаСайт.Добавить();
        лкРег.ДокументДляВыгрузки     = лкСтр.Ссылка;
        лкРег.ДатаВыгрузкиНаСайт      = СерверныеФункции.ТекущаяДатаНаСервере();
        лкРег.ВыгруженНаСайт          = Истина;
//и т.д. по другим полям

        Попытка
           НаборВыгрузкиНаСайт.Записать(Истина);
        Исключение
          ЗаписьЖурналаРегистрации("РегистрацияДокументаДляВыгрузкиНаСайт",     УровеньЖурналаРегистрации.Ошибка, , , "Ошибка ... " + Ссылка);
        КонецПопытки;

        //чистим, то что уже записали
        НаборВыгрузкиНаСайт.Очистить();

    КонецЦикла;

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


попробуйте такой вариант, операций чтения нет, набор записей создается ОДИН раз, пишите в регистр только те записи которые изменились(надо изменить)
если помогло нажмите: Спасибо!

pyrkin_vanya

Цитата: LexaK от 20 окт 2014, 12:18
Если вам известны все поля  записи регистра , то читать его не обязательно, надо использовать следующую схему


Процедура ОбработатьРегистр(ВашаТЗ)

    //ОДИН раз создаем набор записей
    НаборВыгрузкиНаСайт = РегистрыСведений.ИсторияВыгрузкиНаСайт.СоздатьНаборЗаписей();

    Для каждого лкСтр Из ВашаТЗ Цикл
        //устанавливаем отбор, по нему происходит перезапись, здесь может быть несколько полей
        НаборВыгрузкиНаСайт.Отбор.ДокументДляВыгрузки.Установить(лкСтр.Ссылка);
       
        //создаем запись и заполняем у нее все поля
        лкРег = НаборВыгрузкиНаСайт.Добавить();
        лкРег.ДокументДляВыгрузки     = лкСтр.Ссылка;
        лкРег.ДатаВыгрузкиНаСайт      = СерверныеФункции.ТекущаяДатаНаСервере();
        лкРег.ВыгруженНаСайт          = Истина;
//и т.д. по другим полям

        Попытка
           НаборВыгрузкиНаСайт.Записать(Истина);
        Исключение
          ЗаписьЖурналаРегистрации("РегистрацияДокументаДляВыгрузкиНаСайт",     УровеньЖурналаРегистрации.Ошибка, , , "Ошибка ... " + Ссылка);
        КонецПопытки;

        //чистим, то что уже записали
        НаборВыгрузкиНаСайт.Очистить();

    КонецЦикла;

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


попробуйте такой вариант, операций чтения нет, набор записей создается ОДИН раз, пишите в регистр только те записи которые изменились(надо изменить)

Попробую через пару часов. Спасибо за помощь.

Теги:

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

Рейтинг@Mail.ru

Поиск