Программное выделение всех строк в табличном поле (эмуляция Ctrl+A)
Написал Валецкий Станислав   
28.05.2010
Недавно столкнулся с проблемой программного выделения всех строк в списке справочника. Справочник был настроен для множественного выбора строк, и нажатие на форме комбинации клавиш Ctrl+A замечательно выделяло все строки. Но как можно было выделить все строки программно, было изначально некоторой загадкой. Но решение все же нашлось, и оказалось довольно простым. У табличного поля есть коллекция выделенных строк, поэтому основная задача свелась к заполнению этой коллекции строками списка. Просто перебрать все строки списка справочника нельзя. На помощь пришел построитель, благодаря которому задача решилась быстро. Вот что получилось в итоге:
 
//Создаем построитель          
Построитель = Новый ПостроительОтчета;   
//через источник данных построителя обращаемся к данным списка справочника    
//в таблицу данных попадают только отобранные данные, как мы их видим на экране     
Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(СправочникСписок);      
Выборка = Построитель.Результат.Выбрать();      
Пока Выборка.Следующий() Цикл   
     //перебираем результат построителя и заполняем выделенные строки           
     Элементыформы.СправочникСписок.ВыделенныеСтроки.Добавить(Выборка.Ссылка);                
Конеццикла;

Аналогично можно выделить все строки и в табличном поле "ДокументСписок".