Перейти к содержимому


Услуги программиста 1С
Профессиональные программисты 1С.
Весь комплекс услуг сопровождения 1С.

Курсы 1С
Бухгалтерам, менеджерам
и программистам.
Бесплатно!
Живое индивидуальное обучение по 1С.

Порядок обхода


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 12

#1   Иорь_К

Иорь_К

      Рядовой

    • Пользователи
    • Сообщений: 10
    • Регистрация: 17-October 10
    • Откуда:Киев , Киев , Украина

Отправлено 18 October 2010 - 00:16

Уважаемые коллеги,

мне нужно решить след. задачу:

- Действия пользователя - вводит значения в элемент диалога <Поле Ввода> на форме обработки и нажимает клавишу <Ввод>

- Мне нужно сделать так, чтобы после выполнения процедуры, привязанной к данному элементу, поле очистилось и стало снова активным и доступным для ввода след. команды. То есть что бы после нажатия клав. Ввод пользователю не нужно было мышкой щелкать на этом поле для того, чтобы начать вводить новую команду в это же поле

Подскажите как лучше это сделать

ЗАРАНЕЕ БЛАГОДАРЕН ЗА ЛЮБЫЕ ИДЕИ И СОВЕТЫ!

  • 0

#2   Kazimar

Kazimar

      Подполковник

    • Пользователи
    • PipPipPipPipPip
    • Сообщений: 136
    • Регистрация: 04-February 09
    • Откуда: , ,

Отправлено 18 October 2010 - 09:05

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

#3   Иорь_К

Иорь_К

      Рядовой

    • Пользователи
    • Сообщений: 10
    • Регистрация: 17-October 10
    • Откуда:Киев , Киев , Украина

Отправлено 18 October 2010 - 09:29

Ув. Kazimir,

спасибо что откликнулись. Я попробовал, но система выдала ошибку

В данной формуле не может быть вызвана эта процедура(функция)

Вы писали, что Метод может быть вызван из другого Модуля. А у меня работа происходит внутри одного модуля. Может в этом причина?

ЗАРАНЕЕ БЛАГОДАРЕН!

  • 0

#4   Kazimar

Kazimar

      Подполковник

    • Пользователи
    • PipPipPipPipPip
    • Сообщений: 136
    • Регистрация: 04-February 09
    • Откуда: , ,

Отправлено 18 October 2010 - 09:32

напиши код
  • 0

#5   Иорь_К

Иорь_К

      Рядовой

    • Пользователи
    • Сообщений: 10
    • Регистрация: 17-October 10
    • Откуда:Киев , Киев , Украина

Отправлено 18 October 2010 - 09:46

Процедура ОтправитьКомандуВГалилео_ОБЩАЯ()

//КомандаВГалилео - переменная уровня модуля
//ОтветГалилео_окно - элемент диалога типа ПолеВвода
//ОтправитьКомандуВГалилео - процедура
//КомандаВГалилеоОбычная - поле которое нужно активировать

ОтветГалилео="";
ОтправитьКомандуВГалилео(КомандаВГалилео,ОтветГалилео);
ОтветГалилео_окно = ОтветГалилео;
Активизировать("КомандаВГалилеоОбычная");

КонецПроцедуры

  • 0

#6   Kazimar

Kazimar

      Подполковник

    • Пользователи
    • PipPipPipPipPip
    • Сообщений: 136
    • Регистрация: 04-February 09
    • Откуда: , ,

Отправлено 18 October 2010 - 09:53

Зделай еще на форме такую штуку. У всех реквизитах установи галочку "Пропускать при вводе". Получится что в обходе якобы один реквизит. Тогда можеш не использовать метод "Активизировать"
  • 0

#7   Иорь_К

Иорь_К

      Рядовой

    • Пользователи
    • Сообщений: 10
    • Регистрация: 17-October 10
    • Откуда:Киев , Киев , Украина

Отправлено 18 October 2010 - 10:06

Реквизитов на форме около 300 штук. Поэтому это зделать не так просто.

Достаточно ли провести указанные манипуляции только с элементами на той же закладке что и элемент о котором идет речь?

  • 0

#8   Kazimar

Kazimar

      Подполковник

    • Пользователи
    • PipPipPipPipPip
    • Сообщений: 136
    • Регистрация: 04-February 09
    • Откуда: , ,

Отправлено 18 October 2010 - 10:27

пробуй, не проверял
  • 0

#9   Иорь_К

Иорь_К

      Рядовой

    • Пользователи
    • Сообщений: 10
    • Регистрация: 17-October 10
    • Откуда:Киев , Киев , Украина

Отправлено 18 October 2010 - 10:36

А по поводу причины возникновения ранее указанной ошибки есть идеи?
  • 0

#10   Иорь_К

Иорь_К

      Рядовой

    • Пользователи
    • Сообщений: 10
    • Регистрация: 17-October 10
    • Откуда:Киев , Киев , Украина

Отправлено 18 October 2010 - 10:47

Ув. PLUS,

я не совсем понял - вы могли бы подробнее.
ЗАРАНЕЕ БЛАГОДАРЕН!

  • 0

#11   Иорь_К

Иорь_К

      Рядовой

    • Пользователи
    • Сообщений: 10
    • Регистрация: 17-October 10
    • Откуда:Киев , Киев , Украина

Отправлено 18 October 2010 - 11:12

Последоватьльность должна быть след:

1 - после ввода команды в поле ввода юзер нажимает кнопку ВВОД
2 - выполняется процедура
3 - поле ввода очищается
4 - курсор снова попадает в это поле

  • 0

#12   Kazimar

Kazimar

      Подполковник

    • Пользователи
    • PipPipPipPipPip
    • Сообщений: 136
    • Регистрация: 04-February 09
    • Откуда: , ,

Отправлено 18 October 2010 - 11:33

plus biggrin
  • 0

#13   takefive

takefive

      Подполковник

    • Пользователи
    • PipPipPipPipPip
    • Сообщений: 125
    • Регистрация: 16-November 07
    • Откуда:Днепропетровск

Отправлено 21 October 2010 - 12:52

Переставить курсор можно из другой обработки передав в нее контекст...
Code
Процедура Обработать()//Срабатывает формула в реквизите диалога
   //Обработаем
   Сообщить("Обработка значения: " + МойРеквизит);
   //Очистим   
   МойРеквизит = "";
   //Вернем курсор в поле. Откроем внешнюю обработку Курсор.ert
   //которая находится в одном каталоге с этой обработкой.
   //Она поставит курсор на место (МойРеквизит)
   Имя = "";
   Каталог = "";
   РасположениеФайла(Каталог,Имя);
   ОткрытьФормуМодально("Отчет",Контекст,Каталог + "\Курсор.ert");
КонецПроцедуры

т.с. перестановщик курсора...
Code
Процедура ПриОткрытии()
   //Получили контекст источника
   Источник = Форма.Параметр;
   //Установили курсор
   Источник.Активизировать("МойРеквизит");
   //Эту форму не открываем
   СтатусВозврата(0);
КонецПроцедуры

p.s. Можно попробовать передать контекст в гл. модуль - мне просто не хотелось крошить конфигурацию. Попробуйте, через гл. модуль будет наверное более правильно
  • 0



Похожие темы

  Название темы Автор Статистика Последнее сообщение



Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных