Имя: Пароль:
1C
 
Как изменить значение измерения записей регистра сведений.
0 simol
 
26.09.06
10:24
Есть регистр сведений имеющий 4 измерения. Мне надо в записях регистра сведений значения первого измерения равные ЗНАЧЕНИЕ1 заменить на ЗНАЧЕНИЕ2. Регистр непериодический.
Как это лучше сделать кроме удалить строки со ЗНАЧЕНИЕМ1 и записать новые со ЗНАЧЕНИЕ2?
1 ZolotarevAA
 
26.09.06
10:39
(0) Ничего не удалять. Просто заменить значения.
2 Рассада
 
26.09.06
10:46
НаборЗаписей = РегистрыСведений.Рр.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Изм1.Установить(Значение1);
НаборЗаписей.Прочитать();
Для Каждого Запись Из НаборЗаписей Цикл
//меняем значение измерения записи
КонецЦикла;
НаборЗаписей.Записать();
3 simol
 
26.09.06
12:40
(2)Я добавил строку
НаборЗаписей.Отбор.Изм1.Использовать = Истина;

Но при записи ошибка. Мне кажется в том, что отбор какраз по тому измерению, которое я меняю и при записи измерение наверно не соответсвует отбору.
4 Рассада
 
26.09.06
13:51
Наверное, тогда могу предложить только менять в цикле.
5 simol
 
26.09.06
14:52
Сделал так

           НаборЗаписей = РегистрыСведений.КомплектующиеНоменклатуры.СоздатьНаборЗаписей();
           НаборЗаписей.Отбор.Номенклатура.Значение = ПоНоменклатуре.Номенклатура;
           НаборЗаписей.Отбор.Номенклатура.Использование = Истина;
           НаборЗаписей.Прочитать();
           НовыйНабор = РегистрыСведений.КомплектующиеНоменклатуры.СоздатьНаборЗаписей();
           НовыйНабор.Отбор.Номенклатура.Значение = Комплект.Ссылка;
           НовыйНабор.Отбор.Номенклатура.Использование = Истина;
           НовыйНабор.Загрузить(НаборЗаписей.Выгрузить());
           НаборЗаписей.Очистить();
           Для каждого Запись Из НовыйНабор Цикл
               Запись.Номенклатура = Комплект.Ссылка;
           КонецЦикла;
           НовыйНабор.Записать();
           НаборЗаписей.Записать();
6 simol
 
26.09.06
14:54
Так лучше:

           НаборЗаписей = РегистрыСведений.КомплектующиеНоменклатуры.СоздатьНаборЗаписей();
           НаборЗаписей.Отбор.Номенклатура.Значение = ПоНоменклатуре.Номенклатура;
           НаборЗаписей.Отбор.Номенклатура.Использование = Истина;
           НаборЗаписей.Прочитать();
           НовыйНабор = РегистрыСведений.КомплектующиеНоменклатуры.СоздатьНаборЗаписей();
           НовыйНабор.Отбор.Номенклатура.Значение = Комплект.Ссылка;
           НовыйНабор.Отбор.Номенклатура.Использование = Истина;
           ВременнаяТаблица = НаборЗаписей.Выгрузить();
           ВременнаяТаблица.ЗаполнитьЗначения(Комплект.Ссылка, "Номенклатура");
           НовыйНабор.Загрузить(Загрузить);
           НаборЗаписей.Очистить();
           НовыйНабор.Записать();
           НаборЗаписей.Записать();
7 simol
 
26.09.06
15:12
+(6)
          ...НовыйНабор.Загрузить(ВременнаяТаблица);...
Ошибка? Это не ошибка, это системная функция.