Имя: Пароль:
1C
1С v8
Нумерация табличной части при отборе
,
0 HellenaR
 
12.10.14
12:54
Здравствуйте! Нужен ваш совет.
Есть форма, на ней - табличная часть, туда выгружается результат запроса. Строчки пронумерованы. При установке отбора нумерация не пересчитывается, то есть, например:
было
1 аб
2 в
3 аб
4 г
Отбор по аб, результат
1 аб
3 аб
Как лучше сделать, чтобы номера становились 1,2 ?
В след.коммент сейчас кину код, как сделала, и проблемы.
1 Рэйв
 
12.10.14
12:55
(0)Ты уж определись. Тебе по значению отбор или по строкам.
2 HellenaR
 
12.10.14
12:56
Процедура ОбновлениеОтображения()
СтрИсходная =  ЭлементыФормы.СписокР.ТекущаяСтрока;        
Счетчик = 0;
Для Каждого Строка Из ТЧ Цикл
   ЭлементыФормы.СписокР.ТекущаяСтрока = Строка;
   Если Строка = ЭлементыФормы.СписокР.ТекущаяСтрока Тогда
      Счетчик = Счетчик + 1;
      ЭлементыФормы.СписокР.ТекущиеДанные.НСтроки=Счетчик;  
   КонецЕсли;    
КонецЦикла;
Для Каждого Строка Из ТЧ_РТУ Цикл
  Если Строка = СтрИсходная Тогда
    ЭлементыФормы.СписокРеализации.ТекущаяСтрока = СтрИсходная;

   КонецЕсли;    
КонецЦикла;

КонецПроцедуры

Этот код пересчитывает номера при любом действии на таб.часть: установка курсора и т.п., и работает при большом количестве строк ну очень долго.
Более красивое решение есть?
3 HellenaR
 
12.10.14
12:57
(1) Отбор по какому-либо реквизиту строки. Например, по контрагенту.
4 HellenaR
 
12.10.14
12:59
(2)
Опечатки
Для Каждого Строка Из ТЧ Цикл
  Если Строка = СтрИсходная Тогда
    ЭлементыФормы.СписокР.ТекущаяСтрока = СтрИсходная;

   КонецЕсли;    
КонецЦикла;

Этот кусок кода возвращает курсор на исходную строчку :)
5 Рэйв
 
12.10.14
13:00
(2)Код смешной конечно:-)
1.>>СтрИсходная =  ЭлементыФормы.СписокР.ТекущаяСтрока;
СтрИсходная =  ЭлементыФормы.СписокР.ТекущиеДанные;

2.Для Каждого Строка ...
Строка - зарезервированно.

3. Вам бы просто подучиться:-).
6 Рэйв
 
12.10.14
13:01
И все это только потому, что фотка есть:-)
7 HellenaR
 
12.10.14
13:03
(5) спасибо за советы подучиться! Хотелось бы почитать советы по теме топика
8 France
 
12.10.14
13:53
(7) по теме чел в 1 написал.. и, что даст номер строки после отбора? Правильно - ничего.
9 alle68
 
12.10.14
14:26
(2) У ТП есть метод "ПроверитьСтроку(<Строка>)".
А событие я бы поменял.
10 HellenaR
 
12.10.14
14:49
Всем спасибо, придумала вариант в стиле женской логики, но работает быстро, и вроде без косяков
2 + 2 = 3.9999999999999999999999999999999...