Имя: Пароль:
1C
1С v8
Очистить и перезаполнить Таб.Часть Документа
0 Popkorm
 
15.05.12
10:35
Чет не очишается Таб.Часть,и тем самым новые данные не загружает:

       Выборка = Документы.ОприходованиеТоваров.Выбрать((ДатаНачало), (ДатаКонец));
       Пока Выборка.Следующий() Цикл
           Если Выборка.Организация = СпрОрганизация Тогда
                Выборка.ПолучитьОбъект();
                НоваяТЗ = Выборка.Товары.Выгрузить();
                Для Каждого СтрТаб Из НоваяТЗ Цикл
                   Если ЗначениеЗаполнено(СтрТаб.Сумма) Тогда
                        Если СтрТаб.СуммаНУ <= 0 Тогда
                             СтрТаб.СуммаНУ = СтрТаб.Сумма;
                         КонецЕсли;
                   КонецЕсли;    
               КонецЦикла;
               Выборка.ПолучитьОбъект().Товары.Очистить();                
               Выборка.ПолучитьОбъект().Товары.Загрузить(НоваяТЗ);
               Попытка
                   Выборка.ПолучитьОбъект().Записать(РежимЗаписиДокумента.Проведение);
               Исключение
                   Выборка.ПолучитьОбъект().Записать();
               КонецПопытки;
               
           КонецЕсли;
       КонецЦикла;
1 Maxus43
 
15.05.12
10:36
Док = Выборка.ПолучитьОбъект();

и с ним и работай, чо 50 раз ПолучитьОбъект() пишеш
2 Alex S D
 
15.05.12
10:36
может ты вначале 1 раз объект получишь? а не будешь в каждой строчке это делать?
3 luckyluke
 
15.05.12
10:37
(0) как на счет того, чтобы после того как получил объект и очистил его куда-то запомнить, а потом заполнить и записать?
4 golden-pack
 
15.05.12
10:37
б*** это же основа. Ссылка и объект.
5 х86
 
15.05.12
10:37
ПолучитьОбъект() ты каждый раз получаешь новый объект
6 salvator
 
15.05.12
10:38
Выборка = Документы.ОприходованиеТоваров.Выбрать((ДатаНачало), (ДатаКонец));
       Пока Выборка.Следующий() Цикл
           Если Выборка.Организация = СпрОрганизация Тогда
                Док = Выборка.ПолучитьОбъект();
                НоваяТЗ = Док.Товары.Выгрузить();
                Для Каждого СтрТаб Из НоваяТЗ Цикл
                    Если ЗначениеЗаполнено(СтрТаб.Сумма) Тогда
                        Если СтрТаб.СуммаНУ <= 0 Тогда
                             СтрТаб.СуммаНУ = СтрТаб.Сумма;
                         КонецЕсли;
                    КонецЕсли;    
               КонецЦикла;
               Док.Товары.Очистить();                
               Док.Товары.Загрузить(НоваяТЗ);
               Попытка
                   Док.Записать(РежимЗаписиДокумента.Проведение);
               Исключение
                   Док.Записать();
               КонецПопытки;
               
           КонецЕсли;
       КонецЦикла;
7 Maxus43
 
15.05.12
10:39
(0) ты не из франча кстати? а то фееричный код тоже пишут:
Объект.Записать()
Объект.Ссылка.ПолучитьОбъект()
8 Popkorm
 
15.05.12
10:40
Да действительно,спасибо
9 luckyluke
 
15.05.12
10:41
(6) тогда уж:

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

               Попытка
                   Док.Записать(РежимЗаписиДокумента.Проведение);
               Исключение
                   Сообщить(ИнформацияОбОшибке().Описание)
               КонецПопытки;
               
           КонецЕсли;
       КонецЦикла;
10 Popkorm
 
15.05.12
10:42
(7)нет,не франч,просто 7.7 перенашу в 8-ку,и мозги 7.7+8.2 уже в перемешку