Приветствую.

Дано: табличная часть обработки с флажками.

Необходимо: обходить всю тч и, когда, набирается 100 строк, отмеченных флажками по условию, выполнять какое-то действие. После этого действия сбрасывать отмеченные флажки и, продолжая обход тч, отмечать новые флажки. И т.д., пока не пройдем всю тч.

Подскажите, как лучше реализовать?

P.S. Выгружать в тз, а там по массивам разбивать и т.п. - не предлагать.
---
перефразируй вопрос.
как я понял тебе надо для каждой строки проверять некое условие и отмечать ее флажком, если условие выполнено.
когда набирается 100 строк - выполнять какое-то действие
далее сбрасывать установленные флажки и продолжить обход ТЧ.

задача звучит слишком просто и слишком странно, поэтому я сомневаюсь, что понял правильно.

```1c
    Процедура ОбойтиТЧ()

    Фалжков = 0;
    Индекс = 0;
    Для каждого СтрокаТЧ из Объект.ТабличнаяЧасть Цикл
    Если ЗначениеЗаполнено(СтрокаТЧ.Данные) Тогда
    СтрокаТЧ.Флажек = Истина;
    Флажков = Флажков + 1;
    КонецЕсли;
    Если Флажков = 100 Тогда
    ВыполнитьДействия();
    СброситьФлажки(Индекс);
    Флажков = 0;
    КонецЕсли;
    Индекс = Индекс + 1;
    КонецЦикла;

    КонецПроцедуры

    Процедура ВыполнитьДействия()
    //
    КонецПроцедуры

    Процедура СброситьФлажки(ВГраница)
    Для Индекс = 0 по ВГраница Цикл
    СтрокаТЧ = Объект.ТабличнаяЧасть[Индекс];
    СтрокаТЧ.Флажек = Ложь;
    КонецЦикла;
    КонецПроцедуры
```
---
обычные формы ?
---
перефразируй вопрос.
как я понял тебе надо для каждой строки проверять некое условие и отмечать ее флажком, если условие выполнено.
когда набирается 100 строк - выполнять какое-то действие
далее сбрасывать установленные флажки и продолжить обход ТЧ.

задача звучит слишком просто и слишком странно, поэтому я сомневаюсь, что понял правильно.

```1c
    Процедура ОбойтиТЧ()

    Фалжков = 0;
    Индекс = 0;
    Для каждого СтрокаТЧ из Объект.ТабличнаяЧасть Цикл
    Если ЗначениеЗаполнено(СтрокаТЧ.Данные) Тогда
    СтрокаТЧ.Флажек = Истина;
    Флажков = Флажков + 1;
    КонецЕсли;
    Если Флажков = 100 Тогда
    ВыполнитьДействия();
    СброситьФлажки(Индекс);
    Флажков = 0;
    КонецЕсли;
    Индекс = Индекс + 1;
    КонецЦикла;

    КонецПроцедуры

    Процедура ВыполнитьДействия()
    //
    КонецПроцедуры

    Процедура СброситьФлажки(ВГраница)
    Для Индекс = 0 по ВГраница Цикл
    СтрокаТЧ = Объект.ТабличнаяЧасть[Индекс];
    СтрокаТЧ.Флажек = Ложь;
    КонецЦикла;
    КонецПроцедуры
```
---
(8) Спасибо за помощь.
Для интересующихся: нужно это, чтобы минимальными затратами синхронизировать данные из обычных форм с веб-сервисом, который кушает только по 100 элементов максимум.
С решением сам затупил немного, забыв про индексы.
---
После того, как наберётся 100 флажков, необходимо сбрасывать счётчик количества флажков, или же сами установленные флажки сбрасывать? т.е. в конечном итоге должна получиться ТЧ без флажков, или же наоборот отмеченная флажками по условию в результате наших действий?
---
так понимаю, человек хочет отслеживать ход выполнения. Сделано - флажок поставлен, 100 флажков - сброс, идем дальше, табличка на экране продвигается...
---
Бежишь в цикле по ТЧ, проверяешь флажки, строки с флажками помещаешь в массив и увеличиваешь счетчик. Когда счетчик = 100, то пробегая по массиву снимаешь флажки, обнуляешь счетчик и выполняешь действие свое.
---
Снимать флажки вообще можно в самом конце по всей ТЧ. Все равно они все в итоге будут сняты.
---
```1c
    Если ТЧ.НайтиСтроки(Новый Структура("Флажок", Истина)).Количество() = 100 Тогда
```