Как перебрать только выводимые на форму строки табличной части (т.е. то, что видно в таблице формы)

1. Mastershi 27.04.24 09:16 Сейчас в теме
Управляемые формы. Платформа 8.3.24. Бухгалтерия 3.0 ПРОФ.
Имеется форма обработки, которая выводит табличную часть этой обработки. Само собой, в таблице формы можно установить отборы по значению столбца(ов), что отражается над самой таблицей. Можно программно установить свойство ОтборСтрок в элементе формы, что тоже фильтрует изображаемые строки.
Вопрос: как перебрать только те строки табличной части, которые отображаются на форме?
При этом фильтр, отображаемый над таблицей и фильтр по ОтборСтрок - это разные фильтры! И, кстати, побочный вопрос: а где хранится отбор, отображаемый над таблицей?
Найденные решения
5. spacecraft 27.04.24 15:58 Сейчас в теме
(3) зачем проверяете на Неопределено?
Из СП:
Если таблица не отображается на форме, если в таблице нет строк или передана строка, отсутствующая в таблице, то возвращается Неопределено.

Какой из этих случаев проверяете?

Далее. Нужно передавать не Строку ТЧ, а Идентификатор строки. В Таблице формы содержатся идентификаторы строки (в УФ). Их наличие проверяется.
Для каждого Строчка Из Объект.СписокСДИЗ Цикл
        Если Элементы.СписокСДИЗ.ПроверитьСтроку(Строчка.ПолучитьИдентификатор()) Тогда
            Строчка.Выбран = Истина;
        КонецЕсли;
    КонецЦикла;
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Sashares 34 27.04.24 10:45 Сейчас в теме
Элементы.МояТаблица.ПроверитьСтроку(СтрокаТЧ)
3. Mastershi 27.04.24 14:52 Сейчас в теме
(2) Не работает.
	Для каждого Строчка Из Объект.СписокСДИЗ Цикл
		Если Не (Элементы.СписокСДИЗ.ПроверитьСтроку(Строчка) = Неопределено) Тогда
			Строчка.Выбран = Истина;
		КонецЕсли;
	КонецЦикла;
	ОбновитьИзображение();

Фильтров не установлено - должна пометить все, однако не помечает ни одно.
4. Sashares 34 27.04.24 15:20 Сейчас в теме
(3)Под отладчиком остановитесь и посмотрите, что возвращает метод ПроверитьСтроку.
5. spacecraft 27.04.24 15:58 Сейчас в теме
(3) зачем проверяете на Неопределено?
Из СП:
Если таблица не отображается на форме, если в таблице нет строк или передана строка, отсутствующая в таблице, то возвращается Неопределено.

Какой из этих случаев проверяете?

Далее. Нужно передавать не Строку ТЧ, а Идентификатор строки. В Таблице формы содержатся идентификаторы строки (в УФ). Их наличие проверяется.
Для каждого Строчка Из Объект.СписокСДИЗ Цикл
        Если Элементы.СписокСДИЗ.ПроверитьСтроку(Строчка.ПолучитьИдентификатор()) Тогда
            Строчка.Выбран = Истина;
        КонецЕсли;
    КонецЦикла;
6. Mastershi 27.04.24 16:16 Сейчас в теме
(5) Я проверял просто работу метода. Опять же, на Неопределено тоже надо закладываться, раз оно есть. Так прозрачнее, с моей точки зрения.
В прочем, именно с ПолучитьИдентификатор() и работает. Спасибо большое.
И где, всё-таки, хранится фильтр по опции "Расширенный поиск..."?
7. Sashares 34 27.04.24 16:49 Сейчас в теме
(6)
И где, всё-таки, хранится фильтр по опции "Расширенный поиск..."?

Нигде
8. Sashares 34 27.04.24 16:51 Сейчас в теме
(6)
Опять же, на Неопределено тоже надо закладываться, раз оно есть.

Если надо отобрать строки, которые отображаются, то надо проверять на "= Истина", а не с неопределено сравнивать.
9. Mastershi 27.04.24 17:03 Сейчас в теме
(8) Согласен. Повторяю, я просто проверял работу метода.
10. user1880116 27.04.24 17:27 Сейчас в теме
(9)
я просто проверял работу метода
И гордо сообщил нам о том, что он не работает, ага.
11. Mastershi 02.05.24 08:28 Сейчас в теме
(10) так, как написано в помощнике - не работает. ТТак, как написано в половине советов здесь же, на форуме, - тоже. Нужно подкидывать именно идентификатор строки, а не какую-то абстрактную строку... Вот тогда работает. Dixi
12. user1880116 02.05.24 10:20 Сейчас в теме
(11)
ТТак, как написано в половине советов здесь же, на форуме, - тоже

Анекдот №525517:
— Алло, дорогая, только что по радио передали, что один псих едет по встречке… Будь осторожнее!
— Один? Да их тут тысячи!
13. spacecraft 02.05.24 10:47 Сейчас в теме
(11)
так, как написано в помощнике - не работает

Там все есть. Просто не явно.
ТаблицаФормы (FormTable)
ПроверитьСтроку (CheckRow)
Синтаксис:
ПроверитьСтроку(<Строка>)
Параметры:
<Строка> (обязательный)
Тип: Произвольный.
Строка таблицы. Тип параметра зависит от типа редактируемого значения.

ТаблицаФормы (FormTable)
ТекущаяСтрока (CurrentRow)
Использование:
Чтение и запись.
Описание:
Тип: Произвольный.
Идентификатор текущей строки таблицы.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот