Как подсчитать количество строк в табличном поле, после того так применили фильтр?

1. AleksZet 29.05.12 14:37 Сейчас в теме
Люди помогите!!! Возникла такая ситуация есть табличная часть, к ней применили произвольный фильтр(отбор) и мне необходимо программно подсчитать сколько получилось строк. Можно конечно через меню "вывести список" где выгружает всю табличную часть в текстовый документ, но это не устраивает.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. demarine 29.05.12 14:44 Сейчас в теме
можно через:
КоличествоСтрок = ТвояТабЧасть.Количество();
3. Ягг 497 29.05.12 15:02 Сейчас в теме
(2), (1) могу ошибаться, но ТвояТабЧасть.Количество() всегда возвращает количество всех строк в табличной части не зависимо от фильтров (по крайней мере так было раньше, кажется из-за того, что фильтры применяются не к "табличной части", а к "табличному полю" отражающую табличную часть).

Мне кажется если у нас "ТаблПоле" это "табличное поле" связаное с Табличной частью "ТвояТабЧасть" то посчитать строки можнопри помощи метода ПроверитьСтроку у табличнго поля т.е. так:

КолСтр = 0;
Для каждого строкаТ из ТвояТабЧасть цикл
  КолСтр  = КолСтр + ТаблПоле.ПроверитьСтроку(строкаТ )
КонецЦикла;


Если ошибаюсь - поправте :)
user1619761; Nicholas; Merkalov; Gravern; rendalina; adhocprog; Spartan; AleksZet; +8 Ответить
7. AleksZet 30.05.12 08:28 Сейчас в теме
(3) Ягг, ТвояТабЧасть.Количество() эта конструкция да возвращает первоначальное количество строк.. Но у меня усложняется тем, что табличная часть формируется из запроса.. сперва выбирается отбор для запроса, где эти данные заполняют табличную часть и потом уже в табличной части применяют стандартные фильтры (отборы).. и конструкция ТвояТабЧасть.Количество() уже не выводит это количество..

КолСтр = 0;
Для каждого строкаТ из ТвояТабЧасть цикл
КолСтр = КолСтр + ТаблПоле.ПроверитьСтроку(строкаТ)
КонецЦикла;

В этой конструкции, я не до конца понял, что означает здесь "ТаблПоле"?
8. Ягг 497 30.05.12 08:38 Сейчас в теме
(7) AleksZet, ТаблПоле - это элемент формы связанный с таблияной частью

ТаблПоле = ЭлементыФормы.ТвояТабЧасть; // скорее всего так она называется

Кстати, я такое далал на обчной форме. Может быть не справедливо для управляемой.
user1619761; AleksZet; +2 Ответить
10. AleksZet 30.05.12 09:08 Сейчас в теме
(8) Ягг, Спасибо большое! ))) Сработало!!!
12. Nicholas 898 22.03.22 15:48 Сейчас в теме
(3)
КолСтр = 0;
Для каждого строкаТ из ТвояТабЧасть цикл
КолСтр = КолСтр + ТаблПоле.ПроверитьСтроку(строкаТ )
КонецЦикла;(


Так не будет работать. Нужно сделать так:
КолСтр = КолСтр + ТаблПоле.ПроверитьСтроку(строкаТ.ПолучитьИдентификатор())
4. AnryMc 849 29.05.12 15:08 Сейчас в теме
Добавить невидимую колонку. В неё всегда писать "1". Итог по колонке.
RustIG; SalavatRem; +2 Ответить
13. RustIG 1726 23.11.22 18:17 Сейчас в теме
(4) Для строк 100 тыс - 200 тыс мне кажется самый приемлемый результат, как вы и написали - добавил колонку, при выводе делаю невидимой ячейку:
 
Процедура ТекРезультатПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
	ОформлениеСтроки.Ячейки.КолСтрок.Видимость = Ложь;
КонецПроцедуры
5. cool.vlad4 2 29.05.12 15:22 Сейчас в теме
эх, я отстал от 1С-ки, всех новшеств сейчас не знаю, но может так?
ПостроительОтчета = Новый ПостроительОтчета;
ПостроительОтчета.ИсточникДанных=Новый ОписаниеИсточникаДанных(ЭлементыФормы.Список.Значение);
Сообщить(ПостроительОтчета.Результат.Выбрать().Количество());

способ, конечно не очень (медленный)
adhocprog; JohnyDeath; SalavatRem; +3 Ответить
9. AleksZet 30.05.12 08:48 Сейчас в теме
(5) cool.vlad4, Да этот метод работает, Но у меня усложняется тем, что табличная часть формируется из запроса.. сперва выбирается отбор для запроса, где эти данные заполняют табличную часть и потом уже в табличной части применяют стандартные фильтры (отборы)...
6. necropunk 9 29.05.12 15:55 Сейчас в теме
Через построитель видел реализацию в одной конфе, работало, да.
11. solutioncp24 139 16.01.19 13:29 Сейчас в теме
Построитель = Новый ПостроительОтчета;
Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(Список);
числоЭлементов = ПостроительОтчетов.Результат.Выбрать().Количество();   


Здесь Список это переменная типа СправочникСписок или ДокументыСписок
Оставьте свое сообщение

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