|
Обход табличной части документа с выбранной строки | ☑ | ||
|---|---|---|---|---|
|
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) система разрешает отметить только одну строку
|
| Форум | Правила | Описание | Секции | Поиск |