Имя: Пароль:
1C
1С v8
Enter не отрабатывает
0 Быдло замкадное
 
19.09.17
10:00
Привет, помогите с управляемой формой.
Сделал форму в которой вводится количество, там собственно 1 поле количество.
При открытии заполняю его числом, делаю его активным.
Но клавиша Enter не срабатывает (обработчик события обработка выбора не срабатывает).
Срабатывает только если изменить количество и нажать Enter.
Как обойти что бы Enter сразу работал?
8.3.10.2561 в режиме совместимости 8.2
1 Быдло замкадное
 
19.09.17
10:03
кстати при ВвестиЧисло() Enter отрабатывал.

Но мне нужна форма посложнее
2 vicof
 
19.09.17
10:04
Расширение поля формы для поля ввода (Form field extension for a text box)
ОбработкаВыбора (ChoiceProcessing)
Синтаксис:

ОбработкаВыбора(<ВыбранноеЗначение>, <СтандартнаяОбработка>)
...
Вызывается после осуществления выбора, но до помещения выбранного значения в элемент управления.
3 Быдло замкадное
 
19.09.17
10:08
(2) я так и делаю, оно не срабатывает.

&НаКлиенте
Процедура ВведенноеКоличествоОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
    
    Закрыть(ВыбранноеЗначение);
    
КонецПроцедуры
4 Lexey_
 
19.09.17
10:10
(3) потому, что Вызывается после осуществления выбора, но до помещения выбранного значения в элемент управления.
5 Быдло замкадное
 
19.09.17
10:11
(4) я вобще ничего не выбираю. Мне клавишу Enter надо отловить.
Что изменить то? Хватит СП цитировать)
6 Быдло замкадное
 
19.09.17
10:12
(4) если я значение по умолчанию меняю на свое число то Энтер работает.
Не понимаю что сделать что бы он сразу работал
7 Lexey_
 
19.09.17
10:12
(5) "я вобще ничего не выбираю", поэтому и не срабатывает, потому, что (4)
8 vicof
 
19.09.17
10:12
(5) А если включить извилину? Если ты ничего не выбираешь, откуда возьмется обработка выбора?
9 Быдло замкадное
 
19.09.17
10:15
(8)Что сделать что бы Enter срабатывал? Значение то там есть
10 dezss
 
19.09.17
10:18
ВнешнееСобытие на форме, например.
11 vicof
 
19.09.17
10:18
Намекаю. Какое событие происходит при помещении выбранного значения в элемент управления?
12 Вафель
 
19.09.17
10:18
тебе нужно что б ентер по полю ввода закрыл форму?
13 Вафель
 
19.09.17
10:19
Юзай Ктрл+Энтер
14 Быдло замкадное
 
19.09.17
10:20
(11) значение подставляется при создании на сервере. Отлавливать мне нужно именно нажатие энтер.

(13) это на ТСД происходит там именно энтер нажимается
15 Вафель
 
19.09.17
10:22
Тогда событие ПриИзменении
16 vicof
 
19.09.17
10:23
После 100 постов выяснится, что клавиши на тсд экранные, а нажимает инвалид культей, и не по ТСД, а в телевизор.
17 Быдло замкадное
 
19.09.17
10:30
(15) тоже не срабатывает.
(16) тестирую я на компе. Но КОнтр Энтер им предлагать не вариант.
18 Вафель
 
19.09.17
10:43
пусть еск нажимают - при закрытии обрабатывай
19 Филиал-msk
 
19.09.17
10:44
(5) > Хватит СП цитировать)
Нет уж терпи.

Расширение поля формы для поля ввода (Form field extension for a text box)
ОкончаниеВводаТекста (TextEditEnd)

Синтаксис:
ОкончаниеВводаТекста(<Текст>, <ДанныеВыбора>, <ПараметрыПолученияДанных>, <СтандартнаяОбработка>)

Параметры:

<Текст>
Тип: Строка.
Строка текста, введенная в поле ввода.

<ДанныеВыбора>
Тип: СписокЗначений.
Параметр заполняется списком значений для последующего выбора одного из них и размещения его в поле ввода. Пометки элементов этого списка значений могут использоваться для отметки значений, соответствующих помеченным на удаление объектам. В том случае, если пользователь выберет одно из помеченных значений, система выдаст стандартное предупреждение о выборе помеченного на удаление объекта.

Список может содержать как конкретное значение, так и структуру, в которой может быть указана следующая информация (по именам ключей в структуре):
Значение (Value) - собственно значение;
ПометкаУдаления (DeletionMark) - пометка удаления;
Предупреждение (Warning) - текст предупреждения, которое будет показано при выборе элемента из списка значений.

<ПараметрыПолученияДанных>
Тип: Структура; Неопределено.
Содержит параметры поиска, которые будут переданы в метод ПолучитьДанныеВыбора.
Структура, в которой обязательно должны содержаться следующие ключи:
СтрокаПоиска (SearchString) - строка, используемая при поиске данных, Неопределено - осуществляется быстрый выбор;
Отбор (Filter) - отбор, используемый при поиске данных;
ВыборГруппИЭлементов (ChoiceFoldersAndItems) - указывается использование групп и элементов (только для иерархических данных); тип ИспользованиеГруппИЭлементов; параметр может отсутствовать;
СпособПоискаСтроки (StringSearchMode) - указывается способ поиска при вводе по строке; тип СпособПоискаСтрокиПриВводеПоСтроке; параметр может отсутствовать;
ПолнотекстовыйПоискПриВводеПоСтроке (FullTextSearchOnInputByString) - указывается необходимость использования полнотекстового поиска при вводе по строке; тип - ПолнотекстовыйПоискПриВводеПоСтроке; параметр может отсутствовать;
РежимПолученияДанныхВыбора (ChoiceDataGettingMode) - указывает режим запуска поиска. Тип РежимПолученияДанныхВыбораПриВводеПоСтроке; параметр может отсутствовать.
Неопределено - для мобильной платформы.

<СтандартнаяОбработка>
Тип: Булево.
В данный параметр передается признак выполнения стандартной (системной) обработки события. Если в теле процедуры-обработчика установить данному параметру значение Ложь, стандартная обработка события производиться не будет.
Параметр позволяет отменить стандартное заполнение системой ДанныеВыбора. При этом все действия (отображение списка, предупреждения) выполняются системой на основе возвращенного значения параметра <ДанныеВыбора> независимо от значения параметра <СтандартнаяОбработка>.
Для типов Число, Строка, Дата, если установить данному параметру значение Истина, то выполняется стандартное присвоение значения на основе введенного текста, без использования значения параметра <ДанныеВыбора>. В противном случае поле ввода обрабатывает получаемый в <ДанныеВыбора> список значений аналогично другим типам.
Значение по умолчанию: Истина.
Описание:

Возникает при формировании значения по отредактированному тексту. Например, в момент перехода на другой элемент управления формы, при закрытии формы и т.д.
Примечание:

В обработчике данного события нельзя использовать серверные методы формы с директивой компиляции &НаСервере.
--------------------------------------------------------------------------------
     Методическая информация
20 Быдло замкадное
 
19.09.17
10:46
(19) тоже не работает.

Что бы было понимание, у меня форма открывается уже заполненная, никакого ввода интерактивного там не происходит в 99% случаев.

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    Если Параметры.Свойство("Количество") Тогда
        
        ЭтаФорма.ВведенноеКоличество = Параметры.Количество;
        
    КонецЕсли;
    
КонецПроцедуры
21 Пес Барбос
 
19.09.17
10:49
"При открытии заполняю его числом... "

Ну а дальше вызывай программно обработчик который срабатывает по Enter.
22 Филиал-msk
 
19.09.17
10:49
(20) Повесь на Enter хоткей. Тут один давеча на стрелки вверх/вниз вешал.
23 Быдло замкадное
 
19.09.17
10:51
(21) мне не сразу надо. Человек должен посмотреть и ознакомиться, затем нажать Энтер.
О я придумал. Сейчас кнопку ОК сделаю, и ее активирую по умолчанию.. При нажатии Энтер она нажмется надеюсь.
24 Вафель
 
19.09.17
10:53
(23) А если число нужно поменять?
25 Пес Барбос
 
19.09.17
10:53
(23) Гениально (а у кнопки поставь видимость в Ложь ))
26 Вафель
 
19.09.17
10:54
(25) невидимые кнопки НЕ нажимаются
27 Быдло замкадное
 
19.09.17
10:54
(24) если поменять то все стандартно хорошо отрабатывает, он меняет число, жмет Энтер и срабатывает обработка выбора.
28 Быдло замкадное
 
19.09.17
10:55
Даааа сработало (23) ура!)
29 Вафель
 
19.09.17
10:57
(27) а как он переходит на ввод количества с кнопки?
30 dezss
 
19.09.17
10:58
(29) а он у него не переходит...если изменилось, то срабатывает обработка выбора)))
31 Быдло замкадное
 
19.09.17
10:58
(29) это единственный минус, если ему надо поменять количество то надо другое поле активировать стилусом. Ну это происходит крайне редко, поэтому я скажу что надо тыкать) Главное основной процесс проходит быстро
32 Вафель
 
19.09.17
11:00
а зачем тогда вообще окно открывать? Может лучше открывать окно по отдельной кнопке?
33 Быдло замкадное
 
19.09.17
11:07
(32) что бы ему на весь экран показать количество) но это уже совсем другая история.... (с)