|
Обход табличной части документа с выбранной строки |
☑ |
0
buketovav
20.10.20
✎
09:24
|
Добрый день, Уважаемые Форумчане!
Есть документ, есть ТЧ, у каждой из строк ТЧ есть поле типа Булево "Выбрать", как обойти ТЧ со строки (включая ее), у которой установлен флаг в этом поле, а предыдущие не трогать?
Я попробовал сделать обход с обратной стороны, работает, но как-то выглядит не очень красиво, может кто-нибудь подскажет более верный способ решения:
Если ЗначениеЗаполнено(Объект.НоваяСтоимость) Тогда
КоличествоСтрок = Объект.ГрафикПлатежей.Количество();
Для СчетчикЦикла = 1 по КоличествоСтрок Цикл
Объект.ГрафикПлатежей[КоличествоСтрок-СчетчикЦикла].Сумма = Объект.НоваяСтоимость;
Если Объект.ГрафикПлатежей[КоличествоСтрок-СчетчикЦикла].Выбор = Истина Тогда
Объект.ГрафикПлатежей[КоличествоСтрок-СчетчикЦикла].Сумма = Объект.НоваяСтоимость;
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Заранее всем огромное спасибо за помощь и подсказки! Хорошего дня!
|
|
1
Жан Пердежон
20.10.20
✎
11:38
|
а если несколько строк отметить?
|
|
2
SleepyHead
гуру
20.10.20
✎
11:39
|
(0) Обрабатываешь на сервере или клиенте?
На сервер можешь получить все строки с нужным отбором в массив строк, а потом обойти только эти строки
|
|
3
alkorolev
20.10.20
✎
12:07
|
ИдентификаторТекущейСтроки = Элементы.ТвояТЧ.ТекущаяСтрока;
ИндексСтроки = ТвояТЧ.Индекс(ТвояТЧ.НайтиПоИдентификатору(ИдентификаторТекущейСтроки));
Пока ИндексСтроки < ТвояТЧ.Количество() Цикл
ТекСтрока = ТвояТЧ.Получить(ИндексСтроки);
ТекСтрока.Выбрать = Истина; // или что там должно быть?
ИндексСтроки = ИндексСтроки + 1;
КонецЦикла;
|
|
4
alkorolev
20.10.20
✎
12:09
|
если гарантируешь, что строки не могут менять порядок и состав, то 2ая строка необязательна: идентификатор будет соответствовать индексу
|
|
5
alkorolev
20.10.20
✎
12:11
|
(2) массив строк и на клиенте получить можно. Причём здесь сервер?
|
|
6
buketovav
20.10.20
✎
13:23
|
(1) система разрешает отметить только одну строку
|
|