Новости для бухгалтера, бухучет, налогообложение, отчетность, ФСБУ, прослеживаемость и маркировка, 1С:Бухгалтерия

Вход или Регистрация

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[Прочее]

7.7 Програмная реализация передачи фокуса между элементами формы

Dmitry6400
читатель
офлайн
Дата регистрации: 23.09.2009
Сообщений: 13
Пост №1
 
25.09.2009 14:47

"есть задача:<br>предположим, что на форме есть 3 кнопки: - Кнопка1, Кнопка2, Кнопка3. нужно чтобы после нажатия пользователем Кнопки1 и выполнения каких-то действий фокус перешел на Кнопку2. После нажатия Кнопки2 фокус перешел на Кнопку3, после нажатия Кнопки3 обратно на Кнопку1.<br><br>В виде кода это будет примерно так:<br><br>Процедура ПоКнопке1()<br> ...<br> Сообщить("Выполнены команды Кнопки1");<br> //Здесь нужно прописать команду перевода фокуса на кнопку2<br> ...<br>КонецПроцедуры<br><br>Процедура ПоКнопке2()<br> ...<br> Сообщить("Выполнены команды Кнопки2");<br> //Здесь нужно прописать команду перевода фокуса на кнопку3<br> ...<br>КонецПроцедуры<br><br>Процедура ПоКнопке3()<br> ...<br> Сообщить("Выполнены команды Кнопки3");<br> //Здесь нужно прописать команду перевода фокуса на кнопку1<br> ...<br>КонецПроцедуры<br><br>Речь конечно идет не только о кнопках, а вообще обо всех элементах формы, просто с кнопками нагляднее. <br><br>В других языках программирования есть специальные команды, например SetFocus в VisualBasic<br>В крайнем случае это можно сделать послав комбинацию "горячих клавиш" через команду SendKeys, которые эмулируют нажатие пользователем например комбинации "Alt+Подчеркнутая буква".<br><br>В 1С я не нашел аналогов этим командам. Такое ощущение, что програмно переустановить фокус в форме невозможно?<br><br>Может кто сталкивался. Помогите пожалуйста!"

zak555 (398843952)
читатель
офлайн
Дата регистрации: 27.03.2008
Сообщений: 4656
Пост №2
 
25.09.2009 14:54

"попробуй это, не проверял<br><br><br><br><br>Активизировать(<?>,);<br>Синтаксис:<br>Активизировать(<ИмяРеквизита>,<Режим>)<br>Назначение:<br>Активизировать для редактирования поле диалога.<br>Параметры:<br><ИмяРеквизита> - необязательный параметр. Строка с именем поля диалога, которое нужно активизировать. Пустое имя элемента диалога используется для активизации всей формы.<br><Режим> - необязательный параметр. Имеет смысл только для строк списков. Число: 1 - войти в режим редактирования, 0 - не входить. Значение по умолчанию - 1.<br>Замечание:<br>Метод Активизировать может быть вызван из другого (внешнего) модуля, если в нем известен контекст формы, в которой нужно активизировать элемент диалога. Доступ к методу возможен только в контексте Модуля формы."

Dmitry6400
читатель
офлайн
Дата регистрации: 23.09.2009
Сообщений: 13
Пост №3
 
25.09.2009 15:07

Пробовал. Не работает. У меня сложилось впечатление, что команда Активизировать аналогична флажку "Сделать Недоступным" в свойствах элемента диалога.

zak555 (398843952)
читатель
офлайн
Дата регистрации: 27.03.2008
Сообщений: 4656
Пост №4
 
25.09.2009 15:17

кажись, что штатно нельзя или же попробовать поиграться со слоями

BelikovS
читатель
офлайн
Дата регистрации: 05.03.2007
Сообщений: 1701
Пост №5
 
25.09.2009 15:22

"Работает. Вопрос: вы имена кнопкам давали?<br>Элементарный пример. Создаем обработку, кидаем кнопку на форму. В идентификатор пишем "кн1", на закладке дополнительно "ПоКн1()". Аналогично кидаем вторую кнопку (Кн2) и 3-ю (Кн3).<br>В модуле пишем:<br>Процедура ПоКн1 ()<br> Сообщить ("Кн1");<br> Активизировать ("кн2");<br>КонецПроцедуры<br><br>Процедура ПоКн2 ()<br> Сообщить ("Кн2");<br> Активизировать ("кн3");<br>КонецПроцедуры<br><br>Процедура ПоКн3 ()<br> Сообщить ("Кн3");<br> Активизировать ("кн1");<br>КонецПроцедуры<br><br>Запускаем и нажимаем Enter раз 5 :)"

Dmitry6400
читатель
офлайн
Дата регистрации: 23.09.2009
Сообщений: 13
Пост №6
 
25.09.2009 15:28

"Так не пробовал. Обращался через Активизировать(Форма.Кн1); И не работало. Ваш вариант окказался рабочим.<br>Между элементами управления (кнопками, флажками ...) перемещается отлично. Но вот загнать фокус на табличную часть формы Справочник.ДляПодбора мне не удалось.<br>У табличной часть отсутствует идентификатор, который можно забить в команду Активизировать()<br>Попробовал так, как я обращался к спискам - используя Таб-последовательность. В форму перед полем списка устанавливал ЭлементДиалога в Заголовке подчеркивал одну из букв, и для него вызывал комбинацию Alt+ПодчеркнутаяБуква. Поскольку фокус на элемент диалога установить нельзя, то фокус перескакивал на следующий элемент Таб-последовательности, то есть в нужный мне список. В данном случае я тоже перед табличной частью установил элемент диалога, попытался из кнопки передать фокус на этот элемент. Но фокус как был на кнопке, так там и остался.<br><br>Помогайте, что я не так делаю"

zak555 (398843952)
читатель
офлайн
Дата регистрации: 27.03.2008
Сообщений: 4656
Пост №7
 
25.09.2009 15:30

"> Работает. Вопрос: вы имена кнопкам давали?<br>> Элементарный пример. Создаем обработку, кидаем кнопку на форму. В идентификатор пишем "кн1", на закладке дополнительно "ПоКн1()". Аналогично кидаем вторую кнопку (Кн2) и 3-ю (Кн3).<br>> В модуле пишем:<br>> Процедура ПоКн1 ()<br>> Сообщить ("Кн1");<br>> Активизировать ("кн2");<br>> КонецПроцедуры<br>> <br>> Процедура ПоКн2 ()<br>> Сообщить ("Кн2");<br>> Активизировать ("кн3");<br>> КонецПроцедуры<br>> <br>> Процедура ПоКн3 ()<br>> Сообщить ("Кн3");<br>> Активизировать ("кн1");<br>> КонецПроцедуры<br>> <br>> Запускаем и нажимаем Enter раз 5 :)<br><br><br><br>точно - ща проверил, действительно так!"

BelikovS
читатель
офлайн
Дата регистрации: 05.03.2007
Сообщений: 1701
Пост №8
 
25.09.2009 15:45

"На тему возврата к строке справочника после нажатия кнопки (в форме списка или подбора):<br>Активизировать (Форма.ТекущаяКолонка(), 0);"

zak555 (398843952)
читатель
офлайн
Дата регистрации: 27.03.2008
Сообщений: 4656
Пост №9
 
25.09.2009 15:52

"> На тему возврата к строке справочника после нажатия кнопки (в форме списка или подбора):<br>> Активизировать (Форма.ТекущаяКолонка(), 0);<br><br>это вопрос или утверждение?"

BelikovS
читатель
офлайн
Дата регистрации: 05.03.2007
Сообщений: 1701
Пост №10
 
25.09.2009 16:04

> это вопрос или утверждение?<br>Это утверждение. <br>Здесь был вопрос - http://www.buh.ru/forum/thread.jsp?id=481462<br>Собственно с этой задачи началась тема :), только из далека (с другого конца)<br>

Показывать по 10 20 40 сообщений

Читают тему:

Быстрый переход
Для технических специалистов
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Новый порядок применения ККТ (онлайн кассы с передачей сведений в ФНС)
  • Интернет-конференция: Оформление командировок по новым правилам
  • МАРКИРОВКА
  • ЕГАИС
  • Учет, налогообложение, автоматизация