Имя: Пароль:
1C
1С v8
Как редактировать регистр накопления ?
0 never_be
 
03.10.13
14:27
Кое что добавил в регистр накопления но не хочу перепроводить все документы чтоб принялись изменения, а хочу обработкой подправить старые данные, пишу так понимая что не правильно но чтоб показать что мне надо:

    Запрос = Новый Запрос();
    Запрос.Текст = "ВЫБРАТЬ
                   |    СкладОфисы.Номенклатура,
                   |    СкладОфисы.Количество,
                   |    СкладОфисы.Стоимость
                   |ИЗ
                   |    РегистрНакопления.СкладОфисы КАК СкладОфисы";
                  
    Результат = Запрос.Выполнить().Выбрать();
    
    Кол = 0;
    
    Пока Результат.Следующий() Цикл
        
        Кол = Кол + 1;
        Результат.Стоимость = Результат.Номенклатура.Цена * Результат.Количество;
        Сообщить(Кол);
        
    КонецЦикла;

Как их можно подправить ?
1 Мыш
 
03.10.13
14:31
Набор записывать. Обязательно и только отбор по регистратору.
2 MadHead
 
03.10.13
14:31
создать набор записей
установить отбор по регистратору
прочитать движения
изменить данные
записать набор записей
3 never_be
 
03.10.13
14:32
(2) А пример пожалуйста ?
4 Flyd-s
 
03.10.13
14:36
Выбираешь документы-регистраторы.
Далее


Пока Результат.Следующий() Цикл
        
        Кол = Кол + 1;
        ДокОбъект = Результат.Регистратор.СоздатьОбъект();
        ДвиженияСкладОфисы = ДокОбъект.Движения.СкладОфисы;
        Для каждого ТекСтрока Из ДвиженияСкладОфисы
           ТекСтрока.Стоимость =  ТекСтрока.Номенклатура.Цена * ТекСтрока.Количество;
        КонецЦикла
        ДвиженияСкладОфисы.Записать();
        Сообщить(Кол);
        
    КонецЦикла;
5 never_be
 
03.10.13
14:39
(4) Спасибо !
6 never_be
 
03.10.13
14:44
Только вместо:

ДокОбъект = Результат.Регистратор.СоздатьОбъект();

Надо:

ДокОбъект = Результат.Регистратор.ПолучитьОбъект();
7 never_be
 
03.10.13
14:49
Эм, только после такой обработки нет ни одного движения :)
8 never_be
 
03.10.13
14:49
Пока Результат.Следующий() Цикл
        
        Кол = Кол + 1;
        ДокОбъект = Результат.Регистратор.ПолучитьОбъект();
        ДвиженияСкладОфисы = ДокОбъект.Движения.СкладОфисы;
        
        Для каждого ТекСтрока Из ДвиженияСкладОфисы Цикл
           ТекСтрока.Стоимость =  ТекСтрока.Номенклатура.Цена * ТекСтрока.Количество;
        КонецЦикла;
      
        ДвиженияСкладОфисы.Записать();
        Сообщить(Кол);
        
    КонецЦикла;
9 Мыш
 
03.10.13
14:58
Дарю. Не надо благодарить.

Набор = РегистрыНакопления.СкладОфисы.СоздатьНаборЗаписей();
Набор.Отбор.Установить(ДокументРегистратор);
Набор.Прочитать();
Для Каждого Запись Из Набор Цикл
Запись.ЧтоТо = Нечто;
КонецЦикла;
Набор.Записать();
10 never_be
 
03.10.13
15:05
(9) Метод объекта не обнаружен (Установить)
11 Шапокляк
 
03.10.13
15:06
(9) тады уж Набор.Отбор.Регистратор.Установить(ДокументРегистратор);
12 Мыш
 
03.10.13
15:24
Простите меня, люди. Писал по памяти, она дырявая.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший