Имя: Пароль:
1C
1С v8
После редактирования строки ТЧ документа данные не изменяются
0 vie_za
 
03.12.12
13:54
БП 1.6


Для Каждого Стр ИЗ тзДокументыПоступленияТУ Цикл
       
       ДокПоступление                                                        =Стр.ПоступлениеТУ;
               
       ДокПоступление.ПолучитьОбъект().Товары[Стр.НомерСтроки].Цена        =Стр.НоваяЦена;
       ДокПоступление.ПолучитьОбъект().Товары[Стр.НомерСтроки].Сумма        =Стр.НоваяСумма;
       ДокПоступление.ПолучитьОбъект().Товары[Стр.НомерСтроки].СуммаНДС    =Стр.НоваяСумма - Стр.НоваяСумма/1.18;
       //ДокПоступление.ПолучитьОбъект().Товары[Стр.НомерСтроки].Всего        =Стр.НоваяСумма;
       
       Сум_НДС=ДокПоступление.ПолучитьОбъект().Товары.Итог("СуммаНДС");
       
       Попытка
           ДокПоступление.ПолучитьОбъект().Записать(РежимЗаписиДокумента.Проведение);
       Исключение
           Текст = "ru = ""Невозможно провести документ."";"
                   + " en = ""Document needs reposting.""";
           Предупреждение(НСтр(Текст));
       КонецПопытки;    
       
       
       прервать;
   КонецЦикла;    


Документ перепроводится....
Вроде все правильно,но данные в строке не изменяются
1 Cube
 
03.12.12
13:57
(0) Расстрелять!
2 Cube
 
03.12.12
13:57
(0) "Вроде все правильно"
Самоуверенный...
3 palpetrovich
 
03.12.12
13:58
(1) причем 2 раза :)
4 hhhh
 
03.12.12
14:10
(0) получаешь первый объект. В него пишешь цену.
   получаешь второй объект. В него пишешь сумму.
   получаешь третий объект. В него пишешь НДС.
   получаешь четвертый объект. В него ничего не пишешь.
   и наконец получаешь пятый, решающий объект. В нем абсолютно ничего не меняешь и обратно записываешь в том же виде.

   может объяснишь, зачем так много объектов и где ты их там складируешь?
5 palpetrovich
 
03.12.12
14:27
(4) если учесть еще и цикл по тз, то там все намоного хуже :)
6 palpetrovich
 
03.12.12
14:34
(0) пробуй так
НовыйОбъект = ДокПоступление.ПолучитьОбъект();
Для Каждого Стр ИЗ тзДокументыПоступленияТУ Цикл
   НоваяСтрока = НовыйОбъект.Товары.Добавить();
   ЗаполнитьЗначенияСвойств(НоваяСтрока, Стр);
   НоваяСтрока.СуммаНДС = Стр.НоваяСумма - Стр.НоваяСумма/1.18; // гы
   // + все несовпадающие поля
КонецЦикла;    
Попытка
   НовыйОбъект.Записать(РежимЗаписиДокумента.Проведение);
Исключение
   сообщить("  " + ОписаниеОшибки(), СтатусСообщения.Внимание);
КонецПопытки;
7 Жан Пердежон
 
03.12.12
14:36
за такой код надо бить
8 hhhh
 
03.12.12
14:39
(6) ПолучитьОбъект() всё-таки внутри цикла надо.
9 vie_za
 
03.12.12
14:41
Да,понял ошибку.
Всем спасибо.
10 MrStomak
 
03.12.12
14:42
Ваще ад!!!
11 palpetrovich
 
03.12.12
14:56
(8) ага, ндосмотрел "=Стр.ПоступлениеТУ;"
(9) это радует :)
12 palpetrovich
 
03.12.12
14:57
+11, хотя если там много доков, то (6) прийдется править сильнее чем просто "перенести в цикл"
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс