Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Установить курсор на ТЗ

v7: Установить курсор на ТЗ
Я
   evgpinsk_
 
21.04.19 - 14:16
Гугл выдаёт много тем, но почемуто  не получается.
Есть ТЗ на форме документа. По нажатию кнопки нужна установить курсор на ТЗ (т.е. перенести его с кнопки на ТЗ)

ТЗ.ТекущаяСтрока(НужнаяСтрока) - активирует курсор, но фокус остаётся на кнопке
также и
ТЗ.ПолучитьСтрокуПоНомеру(НужнаяСтрока);

Как перенести фокус на таблицу значений ?
 
 
   Sserj
 
1 - 21.04.19 - 15:23
Ну наверно поможет Активизировать()
   evgpinsk_
 
2 - 21.04.19 - 15:29
(1) Нет, это работает для полей диалога. Для ТЗ - нет
   HawkEye
 
3 - 21.04.19 - 17:05
(2) какого эффекта то хочешь добиться то?

так-то и ТекущаяСтрока и Активизировать - работает....
   Злопчинский
 
4 - 21.04.19 - 17:48
(2) работает и для ТЗ
другое дело что Активизировать не во всяком контексте может выполняться и тогда с ложным закртием формы придетс
   vcv
 
5 - 21.04.19 - 18:25
На сколько помнится, активизировать надо не ТЗ, а колонку ТЗ по наименованию.
   evgpinsk_
 
6 - 21.04.19 - 22:22
(3) Нажимаю кнопку, и далее для ускорения процесса фокус должен перейти на ТЗ, чтобы клавиатурой мог перемещаться по ТЗ
   MAG
 
7 - 21.04.19 - 22:38
Активизировать("ТЗ");
Форма.Обновить();
   evgpinsk_
 
8 - 21.04.19 - 22:42
(7) Нет, не проходит. Фокус остаётся на кнопк
   Сияющий в темноте
 
9 - 22.04.19 - 00:35
активизировать строку т.з.со входом в режим редактирования,тогда точно кнопка неактивной станет.
   Злопчинский
 
10 - 22.04.19 - 00:42
(8) ищи где криво.
работает однозначно. я постоянно использую.
возможно ТЗ - стоит флаг "недоступно"
   HawkEye
 
11 - 22.04.19 - 09:10
(6) после кнопки у меня не получилось, после редактирования ПоляВвода - можно, надо настроить порядок обхода так, чтобы ТЗ стояла после ПоляВводы ))
   evgpinsk_
 
12 - 22.04.19 - 10:17
(11) Т.е по клавише энтер после ПоляВвода? Так какой смысл в коде, если без всякого когда по энтер (или таб) переходит на следующий объект
   HawkEye
 
13 - 22.04.19 - 10:24
(12) никакого, ты разве не знаешь, что лучший код - не написанный код? ))))
   evgpinsk_
 
14 - 22.04.19 - 10:26
(13) А код нужен ).
   HawkEye
 
15 - 22.04.19 - 10:31
(14) ни разу не слышал такой постановки задачи ))))
   evgpinsk_
 
16 - 22.04.19 - 10:35
(15) Стараюсь максимально оптимизировать процессы. Лишний клик мышкой, когда их нужно сделать 100 раз - существенно
   1Сергей
 
17 - 22.04.19 - 10:41
Нет ли на форме текстового поля с функцией, в которой возможно меняется фокус?
   HawkEye
 
18 - 22.04.19 - 10:54
(16) так порядок обхода как раз для того и сделан, чтобы не кликать лишний раз )))
   evgpinsk_
 
19 - 22.04.19 - 10:57
(18) После нажатия Таб или энтер. А щёлкая по кнопке мышкой или клавой, переход фокуса системой не предусмотрен
   Salimbek
 
20 - 22.04.19 - 11:00
   uno-group
 
21 - 22.04.19 - 11:16
Перем НеЗакрывать;
//*******************************************

Процедура ПриЗакрытии()
    Если НеЗакрывать=1 Тогда
        Активизировать("ТЗ");
        НеЗакрывать=0;
        СтатусВозврата(0);
        Возврат;
    КонецЕсли;
КонецПроцедуры
//*******************************************

Процедура Сформировать()
    НеЗакрывать=1;
    Форма.Закрыть(0);
КонецПроцедуры
//*******************************************

Процедура ПриОткрытии()
    Тз.НоваяКолонка("Кво");
    Тз.НоваяСтрока();
    Тз.Кво=1;
    Тз.НоваяСтрока();
    Тз.Кво=2;
    НеЗакрывать=0;
КонецПроцедуры
//*******************************************

Работает 100%
   evgpinsk_
 
22 - 22.04.19 - 12:28
(17) Да, скорее всего здесь нужно покапать. (21) На тестовой форме работает, на нужной нет - на ней несколько ТЗ и при обновлении поля ввода происходит перерисовка второй ТЗ.
Это скорее всего и мешает
   Ёпрст
 
23 - 22.04.19 - 13:00
(22) перерисовывать нужно не всегда, а только при необходимых условиях.
Фокус ввода можно поместить куда угодно и когда угодно. Хоть штатно, хоть формексом
   evgpinsk_
 
24 - 22.04.19 - 13:27
(23) Пока нет времени разобраться, но на требуемом документе фокус не перемещается. Тот же код на пустом внешнем отчёте работает
   uno-group
 
25 - 22.04.19 - 13:40
(24) вставь в правильное место форма.закрыть(0) и будет счастье. Пройтись отладчиком и найти это место 5 минут времени.
   uno-group
 
26 - 22.04.19 - 13:41
какое обновление поля ввода при нажатии кнопки. код в студию.
   evgpinsk_
 
27 - 22.04.19 - 14:11
Да, ошибся с названием таблицы в строке
Активизировать("ТаблицаТоваров");

код (21) заработал
   evgpinsk_
 
28 - 22.04.19 - 14:16
Т.е. заработало только через фиктивное закрытие формы
   evgpinsk_
 
29 - 22.04.19 - 14:18
(23) Только через закрытие формы заработало. Штатно:
Активизировать("ТаблицаТоваров");
после нажатия по кнопке - не работает
   Ёпрст
 
30 - 22.04.19 - 14:26
(28) ты не поверишь, но ложное закрытие формы - это штатный метод.
 
 Рекламное место пустует
   evgpinsk_
 
31 - 22.04.19 - 14:34
(30) Активизировать() - тоже штатное, которое должно работать и без закрытия.
Так? )
   uno-group
 
32 - 23.04.19 - 12:21
Читай синтаксический помощник, он не может быть вызван где угодно.
"Метод  Активизировать может быть вызван из другого (внешнего) модуля, если в нем известен контекст формы, в которой нужно активизировать элемент диалога. Доступ к методу возможен только в контексте Модуля формы. "


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.