Имя: Пароль:
1C
1С v8
Изменить измерение регистра сведений
0 Momus
 
13.12.19
10:33
Есть независимый периодический регистр сведений. Нужно массово изменить измерение регистра за определенный период. Делал через запрос с изменением по одной записи в цикле через набор записей. Поскольку записей достаточно много, изменение идет очень медленно. Есть ли какой-то другой способ изменить ИЗМЕРЕНИЕ регистра с отбором по ПЕРИОДУ?
Делал вот так:
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл

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

        Для каждого Стр Из Набор.Отбор Цикл
            Стр.Установить(Выборка[Стр.Имя]);
        КонецЦикла;
        
        Набор.Прочитать();
                
        ВТ = Набор.Выгрузить();
        ВТ.ЗаполнитьЗначения(Выборка.НовыйПользователь, "Пользователь");
                        
        НовыйНабор = РегистрыСведений.ИмяРегистра.СоздатьНаборЗаписей();
        НовыйНабор.Отбор.Пользователь.Установить(Выборка.НовыйПользователь);  
        НовыйНабор.Загрузить(ВТ);
        
        Набор.Очистить();
        НовыйНабор.Записать();
        Набор.Записать();
    КонецЦикла;
1 hhhh
 
13.12.19
10:38
(0) сделай в транзакции, по 1000 наборов
2 Александр Б
 
13.12.19
10:49
(0) Вообще, для работы с отдельными записями в 100 раз удобнее использовать менеджер записи, вместо набора. Это на будущее.
3 lodger
 
13.12.19
10:58
это надо делать в запросе.
@Набор.Прочитать();
@ВТ = Набор.Выгрузить();

в цикле по выборке только СоздатьНаборЗаписей() Установить() Загрузить(добавить() в цикле по подвыборке) Записать()
4 Momus
 
13.12.19
11:42
Пока переделывал с учетом всех рекомендация нашел очень грубую ошибку:
при установлении отбора в НовомОтборе я установил его лишь по одному измерению.
Вот что значит лепить набор записей там, где не следует). Изначально я планировал изменить записи в три строчки с использованием набора записей, но для регистра сведений отбор по периоду возможен только на "равно".
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn