![]() |
![]() |
![]() |
|
УФ - Окончание ввода текста - че-то не догоняю про примитивные типы данных | ☑ | ||
---|---|---|---|---|
0
RomaH
naïve
17.10.12
✎
08:28
|
Делаю "автозаполнение" текстового поля на основе ранее введенных значений
&НаКлиенте Процедура ПереднийОтрезокГлазаВекиОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) ДанныеВыбора = ОкончаниеВводаТекстаОсмотрСпециалиста(СтандартнаяОбработка,Текст,"ДанныеОсмотраОфтальмолога","ПереднийОтрезокГлазаВеки"); КонецПроцедуры СП: <СтандартнаяОбработка> Тип: Булево. В данный параметр передается признак выполнения стандартной (системной) обработки события. Если в теле процедуры-обработчика установить данному параметру значение Ложь, стандартная обработка события производиться не будет. Параметр позволяет отменить стандартное заполнение системой ДанныеВыбора. При этом все действия (отображение списка, предупреждения) выполняются системой на основе возвращенного значения параметра <ДанныеВыбора> независимо от значения параметра <СтандартнаяОбработка>. Для типов Число, Строка, Дата, если установить данному параметру значение Истина, то выполняется стандартное присвоение значения на основе введенного текста, без использования значения параметра <ДанныеВыбора>. В противном случае поле ввода обрабатывает получаемый в <ДанныеВыбора> список значений аналогично другим типам. Значение по умолчанию: Истина ввожу "н" нажимаю ввод в данные выбора возвращается список из двух элементов "норма" "нормально" в поле остается "н" че-то я СП не правильно понял - вроде как должно список показать или как сделать ввод произвольного текста но с возможностью выбора из ранеее введенных? |
|||
1
Cartman
17.10.12
✎
08:32
|
Правильно ДанныеВыбора тип текст, а ты ему пытаешься присвоить тип СписокЗначений. 1с тебя посылает
Попробуй: ДанныеВыбора = ОкончаниеВводаТекстаОсмотрСпециалиста(СтандартнаяОбработка,Текст,"ДанныеОсмотраОфтальмолога","ПереднийОтрезокГлазаВеки")[0].значение; |
|||
2
RomaH
naïve
17.10.12
✎
08:39
|
(1) никуда не посылает - если СтандартнаяОбработка = Ложь
то все ок - дает список выбора НО - мне нужна возможность вводить ПРОИЗВОЛЬНЫЙ текст похоже я СП все-же не верно понял - просто добавляю введенный текст последней строкой в ДанныеВыбора |
|||
3
Defender aka LINN
17.10.12
✎
08:49
|
(2) "если СтандартнаяОбработка = Ложь то все ок - дает список выбора
НО - мне нужна возможность вводить ПРОИЗВОЛЬНЫЙ текст" Долго думал над этой фразой и так и не уловил - это что с чем соединяется? |
|||
4
RomaH
naïve
17.10.12
✎
09:12
|
в списке выбора "Норма" и "Нормально"
ввожу в поле "нет" - прога ругается на не верное значение |
|||
5
Defender aka LINN
17.10.12
✎
09:38
|
(4) Ну логично, да.
|
|||
6
Reset
17.10.12
✎
10:09
|
&НаКлиенте
Процедура Реквизит1ОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) ДанныеВыбора=Новый СписокЗначений; ДанныеВыбора.Добавить(Текст); ДанныеВыбора.Добавить(Текст+"1"); ДанныеВыбора.Добавить(Текст+"2"); СтандартнаяОбработка=ложь; КонецПроцедуры Ввожу "н" и нажимаю enter, предлагает "н","н1","н2". Донабираю "ет", нажимаю Enter. Предлагает "нет","нет1","нет2". Ничего не ругается и все логично вроде. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |