Имя: Пароль:
1C
1С v8
Удаление строчки из таблицы значений
0 Readbook
 
25.04.13
15:28
Задача - пройтись по таблице значений и выкинуть оттуда ненужные строки. Но почему-то после работы цикла, строчки не удаляются...

   Для Каждого Строка из ТЗ цикл
       ТекКоличествоРазмеры1 = Цел(Строка.ЯчейкаШирина/Строка.ЕдиницаХраненияШирина)*Цел(Строка.ЯчейкаГлубина/Строка.ЕдиницаХраненияГлубина);
       ТекКоличествоРазмеры2 = Цел(Строка.ЯчейкаШирина/Строка.ЕдиницаХраненияГлубина)*Цел(Строка.ЯчейкаГлубина/Строка.ЕдиницаХраненияШирина);
       к= Макс(ТекКоличествоРазмеры1*Цел(Строка.ЯчейкаВысота/Строка.ЕдиницаХраненияВысота),ТекКоличествоРазмеры2*Цел(Строка.ЯчейкаВысота/Строка.ЕдиницаХраненияВысота));
       Если к<=Строка.количество   Тогда
           ТЗ.Удалить(Строка);
       Иначе
           Строка.Вместимость= к;
           // Сообщить(Строка(Строка.количество)+"  "+Строка(Строка.номенклатура)+"   "+Строка(Строка.Вместимость));
       КонецЕсли;
   КонецЦикла;
   Для Каждого стр из ТЗ цикл
       Сообщить(Строка(стр.количество)+"  "+Строка(стр.номенклатура)+"   "+Строка(стр.Вместимость));
   КонецЦикла;
1 Фокусник
 
25.04.13
15:29
(0)
1. Строки для удаления - в массив, перебор массива - удаление строк из ТЗ
2. Перебор строк "с конца"
2 Readbook
 
25.04.13
15:41
(1) Спасибо, сработало, не знал о такой особенности.
3 Фокусник
 
25.04.13
15:47
(2) Строку удалил - выборка сбилась
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший