Имя: Пароль:
1C
1С v8
Как изменить измерение в записи регистра сведений?
0 Механик
 
24.12.20
09:20
Споткнулся на элементарном вроде бы моменте, но не получается изменить значение измерения в непериодическом регистре сведений, вот кусок кода


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

Выходит ошибка, что "Запись не верна! Значение поля не соответствует установленному отбору".
1 ДенисЧ
 
24.12.20
09:21
Меняй через менеджер
2 Механик
 
24.12.20
09:22
(1) Как именно?
3 Малыш Джон
 
24.12.20
09:24
(1) менеджер запишет тупо новую запись, старая то никуда не денется
(0) создавай новый набор записей с отбором по новому измерению, перегоняй данные из старого набора в новый с учетом нового измерения, новый записывай, старый очищай и тоже записывай
4 ДенисЧ
 
24.12.20
09:25
(3) А что, сначала удалить старую запрещает свежее поставновление ВЦСПС?
5 Малыш Джон
 
24.12.20
09:26
(4) извини, с утра телепатический блок барахлит) не прочитал истинное значение слов из (1)  :)
6 Михаил Козлов
 
24.12.20
09:37
Мне кажется, можно установить отбор только по номенклатуре, а потом изменить Назначение, там где нужно. Размер набора разве что побольше.
7 Kassern
 
24.12.20
09:44
(0) Нельзя изменять измерение в регистре, по которому сделан отбор. Чтобы решить данную проблему, можете либо очистить отобранную запись, а потом менеджером создать новую (правильную), либо создать ТЗ с верными записями и загрузить в набор, либо, как советуют в (6) отобрать по номенклатуре, в цикле найти Выборка.Назначение и изменить на ТекНазначение (только вот, если значений +100500 для номенклатуры, то это не самый оптимальный способ...)