Имя: Пароль:
1C
 
УФ - как посчитать количество строк в отборе?
0 mikecool
 
04.02.11
14:00
Есть таблица в УФ, отбор в ней настраивается через условное оформление формы.
Надо посчитать количество отображаемых строк
Как это сделать?
1 RomaH
 
naïve
04.02.11
14:07
знаю только один вариант - воспроизвести таблицу и отбор в запросе (или еще где) и посчитать

есть ли другие варианты?
2 mikecool
 
04.02.11
14:13
(1) я уже склонился к такому варианту )
3 Roman_83
 
04.02.11
14:52
а что за источник у таблицы, если обходить строки источника
и пытаться текущей строке элемента формы присвоить каждый раз эти строку, то присвоение пройдет только для тех строк которые отображены в таблице
4 Roman_83
 
04.02.11
15:10
Счетчик = 0;
Для Каждого Строка Из Источник Цикл
  ЭлементыФормы.Таблица.ТекущаяСтрока = Строка;
  Если Строка = ЭлементыФормы.Таблица.ТекущаяСтрока Тогда
     Счетчик = Счетчик + 1;
  КонецЕсли;    
КонецЦикла;
5 mikecool
 
04.02.11
15:12
(4) гы, прикольно ))
6 mikecool
 
04.02.11
15:13
спс за вариант
7 RomaH
 
naïve
04.02.11
15:20
(4) а визуально это как? обновляться форма не успевает?
8 5 Элемент
 
04.02.11
15:49
Интересно а зачем считать количество отображаемых строк.
А если размер формы поменяется или размер ЭУ?
9 Roman_83
 
04.02.11
15:50
Нормально это выглядит, правда курсор будет после этого алгоритма установлен на последнююю строку, но это мелочи жизни, запоминайте тек.строку до выполнения кода. А вообще вопрос актуален, вот, например, мне надо отметить строки источника (у них есть реквизит "Пометка"), причем отмечать только те стоки которые отображены в элементе формы.
10 Roman_83
 
04.02.11
15:54
(8) насколько я понимаю речь идет не о тех строках, которые видит пользователь физически а о тех которые соответствуют отбору установленному в элементе управления
11 Roman_83
 
04.02.11
15:59
12 RomaH
 
naïve
07.02.11
09:00
не знаю следуетли новую тему создавать ...
в развитие темы:
на форме динамический список, вывожу пользователю количество найденых записей

   Запрос = Новый Запрос;
   Запрос.Текст = СписокПациентов.ТекстЗапроса;
   
   Для Каждого ПараметрСписка Из СписокПациентов.Параметры.Элементы Цикл
       
       Если ПараметрСписка.Использование Тогда
           Запрос.УстановитьПараметр(ПараметрСписка.Параметр,ПараметрСписка.Значение);
       КонецЕсли;
   
   КонецЦикла;
   
   КоличествоОтобраныхЗаписей = Запрос.Выполнить().Выбрать().Количество();


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