Имя: Пароль:
1C
 
Обработка отобранных строк табличной части
0 IKSparrow
 
22.12.10
16:18
Табличная часть на форме содержит определённые строки. Пользователь применяет к табличной части отбор (через правую кнопку мышки), например "Отбор по значению в текущей колонке". Как мне получить отобранные значения и затем обработать их? Какой раздел в ЖКК покурить?
1 Defender aka LINN
 
22.12.10
16:19
(0) Покури базу знаний
2 Defender aka LINN
 
22.12.10
16:20
+(1) т.е. Книгу Знаний. Понавыдумывали названий... :)
3 Mort
 
22.12.10
16:21
Заставь пользователя выделять строки которые нужно обработать.
4 IKSparrow
 
22.12.10
16:21
(3) многатыщьстрок выделить? уже смишно.
5 IKSparrow
 
22.12.10
16:22
(3) а на что тогда эта ваша 1С...
6 Mort
 
22.12.10
16:22
Когда юзер жмет кнопку обработать ТЧ он обычно не задумывается, что установлен какой-то отбор. Ограничивать обработку тем что на экране как-то нелогично. Пусть сам укажет что надо обработать, и тут отбор + Ctrl+A ему в помощь.
7 IKSparrow
 
22.12.10
16:24
(6) А... Хм... Тогда, дело говоришь! Спасибо!
8 IKSparrow
 
22.12.10
16:27
"Если понадобилось перебрать строки, вошедшие в отбор, то это можно сделать, только заново перебрав все строки и проверив условие отбора для каждой строки. Перебрать строки табличного поля, которые сейчас на экране - невозможно." из Святой Книги Знаний.
Думал, что всё-таки получится перебрать то, что на экране.
9 73
 
22.12.10
16:32
10 Mort
 
22.12.10
16:33
Или можно элемент отбора вытащить на морду и рядом кнопку, тогда юзер интуитивно догонит, что обрабатываться будут именно отобранные строки.
(8) Там устаревшие данные, легче построителем запроса по ТЗ.
11 73
 
22.12.10
16:37
(9)+
Для ТЧ:
//Построителем
Построитель = Новый ПостроительЗапроса;
Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабличнаяЧасть);
//Здесь отбор если нужно
Для Каждого ЭлементОтбора из ЭлементыФормы.ТабличнаяЧасть.ОтборСтрок Цикл
ЗаполнитьЗначенияСвойств(Построитель.Отбор.Добавить(ЭлементОтбора.Имя), ЭлементОтбора);
КонецЦикла;
   
Резульат = Построитель.Результат; //отобранные строки типа РезульатаЗапроса
12 IKSparrow
 
22.12.10
16:43
Всем спасибо, помогло!
13 Сергей Д
 
22.12.10
17:17
Делал такую штуку. Есть список, на список наложен отбор. Надо выделить все строки списка, удовлетворяющие отбору:
Процедура УстановитьПометкуВыделенияСтрок(Пометка)
   Для Каждого Заказ Из Заказы Цикл
       Если ЭлементыФормы.Заказы.ПроверитьСтроку(Заказ) Тогда
           Заказ.Обработать=Пометка;
       КонецЕсли;
   КонецЦикла;
КонецПроцедуры
Программист всегда исправляет последнюю ошибку.