Имя: Пароль:
1C
1C 7.7
v7: Как активизировать таблицу после поиска в ней?
0 dchumak
 
06.06.12
09:43
Добрый день.

На внешней обработке есть таблица значений "ТаблЗнач". Рядом есть кнопка "Найти". При нажатии этой кнопки, происходит контекстный поиск в другой таблице, найденные значения (товар и клиент) возвращаются через глобальные переменные. После этого, идет перебор строк этой таблицы ТаблЗнач, и если строка совпадает с найденными значениями, то фокусируемся на этой строке.

Вот программный код:

Процедура ПоискВТоварах()                                  
   Перем СтрокаАптек;
   // обнуляем переменные, в которые передадутся найденный товар и аптека
   НайденныйТовар = "";
   НайденнаяАптека = "";
   СтрокаАптек = СокрЛП(поАпт1) +";"+ СокрЛП(поАпт2) +";"+ СокрЛП(поАпт3) +";"+ СокрЛП(поАпт4) +";"+ СокрЛП(поАпт5);
   ОткрытьФормуМодально("Отчет", СтрокаАптек, "F:\Внешние обработки\_Dev\ПоискТовараВЗаказе.ert");
   // ищем товар в таблице
   Для НомСтроки = 1 По ТаблЗнач.КоличествоСтрок() Цикл
       ТаблЗначАптека = СокрЛП(ТаблЗнач.ПолучитьЗначение(НомСтроки, "Аптека"));
       ТаблЗначТовар = СокрЛП(ТаблЗнач.ПолучитьЗначение(НомСтроки, "Товар"));
       Если (ТаблЗначАптека = НайденнаяАптека) И (ТаблЗначТовар = НайденныйТовар) Тогда    
           ТаблЗнач.ТекущаяСтрока(НомСтроки);  
           ТаблЗнач.ТекущаяКолонка("Наименование");
           Прервать;
       КонецЕсли;    
   КонецЦикла;
КонецПроцедуры

Фокусирование на строке отрабатывает нормально. Но, фокус на саму ТаблЗнач не ставится - т.е. фокус остается на кнопке "Поиск", которую нажимали последней и если нажимать кнопки со стрелками, то курсор "бегает" по элементам формы, а не по столбцам/строкам таблицы ТаблЗнач. Как ее активизировать, чтобы фокус стоял на ее строке, а не на элементе формы?
1 1Сергей
 
06.06.12
09:46
Активизировать(<?>,);
Activate(<?>,);
Синтаксис:
Активизировать(<ИмяРеквизита>,<Режим>)
Назначение:
Активизировать для редактирования поле диалога.
Параметры:
<ИмяРеквизита> - необязательный параметр. Строка с именем поля диалога, которое нужно активизировать. Пустое имя элемента диалога используется для активизации всей формы.
<Режим> -  необязательный параметр. Имеет смысл только для строк списков. Число: 1 - войти в режим редактирования, 0 - не входить. Значение по умолчанию - 1.
Замечание:
Метод  Активизировать может быть вызван из другого (внешнего) модуля, если в нем известен контекст формы, в которой нужно активизировать элемент диалога. Доступ к методу возможен только в контексте Модуля формы.
2 dchumak
 
06.06.12
10:18
Метод Активизировать не помогает.
Пробовали уже.
Все равно, после завершения процедуры, фокус стоит на кнопке "Поиск", которую нажали, чтобы запустить процедуру поиска.
P.S. Частично решили проблему, назначив кнопке "Поиск" быструю клавишу. Теперь при нажатии этой быстрой клавиши фокус на кнопку не устанавливается, а остается в таблице и все работает нормально.
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс