Добрый день! Написал простой код но что то не простое происходит )
Табл = Объект.Запасы;
Таблица = Табл.Выгрузить();
Для Каждого Строка Из Таблица Цикл
Если Строка.Количество<>Строка.КоличествоДоИзменения Тогда
Продолжить
Иначе
Таблица.Удалить(Строка);
КонецЕсли;
КонецЦикла;
Табл.Очистить();
Табл.Загрузить(Таблица);
Приходится нажимать на кнопку пару раз чтобы все очистилось. При нажатии удаляет все верно но не все. В чем может быть дело ?
Табл = Объект.Запасы;
Таблица = Табл.Выгрузить();
Для Каждого Строка Из Таблица Цикл
Если Строка.Количество<>Строка.КоличествоДоИзменения Тогда
Продолжить
Иначе
Таблица.Удалить(Строка);
КонецЕсли;
КонецЦикла;
Табл.Очистить();
Табл.Загрузить(Таблица);
Приходится нажимать на кнопку пару раз чтобы все очистилось. При нажатии удаляет все верно но не все. В чем может быть дело ?
По теме из базы знаний
- Универсальный конструктор отчетов (Новейший отчет) для 1C 7.7
- Удаление регламентированной отчетности
- Универсальный конструктор отчетов СКД (управляемые формы, тонкий клиент)
- Удаление номенклатуры из спецификаций, удаление строк спецификации из документов. 1С:Бухгалтерия 3.0
- Пример разработки регламентированного отчета
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Есть более изящные решения.
Раз.
Для сч = -ТЗ.Количество() + 1 По 0 Цикл
Если ТЗ[-сч].Номер % 2 = 0 Тогда // ваше условие для удаления
ТЗ.Удалить(-сч);
КонецЕсли;
КонецЦикла;
Два. (мой любимый)
сч = ТЗ.Количество();
Пока сч>0 Цикл
сч = сч - 1;
Если ТЗ[сч].Номер % 2 = 0 Тогда // ваше условие для удаления
ТЗ.Удалить(сч);
КонецЕсли;
КонецЦикла;
Три.
сч = 0;
Пока сч<ТЗ.Количество() Цикл
Если ТЗ[сч].Номер %2 = 0 Тогда // ваше условие для удаления
ТЗ.Удалить(сч);
сч = сч - 1;
КонецЕсли;
сч = сч + 1;
КонецЦикла;
Во всех этих решениях самое главное, как видно, проверка и удаление происходит с конца коллекции.
Хватит? :)
Раз.
Для сч = -ТЗ.Количество() + 1 По 0 Цикл
Если ТЗ[-сч].Номер % 2 = 0 Тогда // ваше условие для удаления
ТЗ.Удалить(-сч);
КонецЕсли;
КонецЦикла;
Два. (мой любимый)
сч = ТЗ.Количество();
Пока сч>0 Цикл
сч = сч - 1;
Если ТЗ[сч].Номер % 2 = 0 Тогда // ваше условие для удаления
ТЗ.Удалить(сч);
КонецЕсли;
КонецЦикла;
Три.
сч = 0;
Пока сч<ТЗ.Количество() Цикл
Если ТЗ[сч].Номер %2 = 0 Тогда // ваше условие для удаления
ТЗ.Удалить(сч);
сч = сч - 1;
КонецЕсли;
сч = сч + 1;
КонецЦикла;
Во всех этих решениях самое главное, как видно, проверка и удаление происходит с конца коллекции.
Хватит? :)
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот