|
Динамический список на форме и элемент ввода | ☑ | ||
---|---|---|---|---|
0
Dmitriy_76
25.12.13
✎
14:04
|
Есть динамический список с произвольным запросом с условием.
что то типа Выбрать Спр.Ссылка Из Справочник.Номенклатура КАК Спр Где Спр.Наименование Подобно (&МойПараметр) и реквизит формы с типом строка. Подключил к форме ПодключитьОбработчикОжидания, который вызывает процедуру которая передает в запрос параметр (текст в реквизите формы). Все работает НО.. текст в элементе формы очищается...и список снова выводится полный. как победить данную проблему ? или ЧЯДНТ |
|||
1
katc
25.12.13
✎
14:10
|
отключи обработчик ожидания и передавай параметр при изменении поля, заодно при очистке поля или не заполненом значении может не передавать новый пустой параметр
|
|||
2
WildSery
25.12.13
✎
14:10
|
Где проблема-то?
Что должно произойти при очистке элемента, если не полный список? |
|||
3
Dmitriy_76
25.12.13
✎
14:15
|
соори. не так выразился.
ПОЛЕ ввода очищается САМО!!! не по просьбе пользователя |
|||
4
Dmitriy_76
25.12.13
✎
14:16
|
сейчас попробовал через обработчик поля АвтоПодбор.
все равно само очищается |
|||
5
WildSery
25.12.13
✎
14:18
|
Либо где-то очищаете реквизит формы, либо это чудо.
Наверное, в 17й строке. |
|||
6
Dmitriy_76
25.12.13
✎
14:19
|
не очистки нет. значит ЧУДО :)
|
|||
7
WildSery
25.12.13
✎
14:21
|
(6) Думаю, самое время привести код. Поскольку у меня почему-то не очищается.
|
|||
8
Dmitriy_76
25.12.13
✎
14:27
|
&НаКлиенте
Процедура Реквизит2АвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; Реквизит1.Параметры.УстановитьЗначениеПараметра("Наименование","%"+Текст+"%"); КонецПроцедуры &НаКлиенте Процедура ПриОткрытии(Отказ) Реквизит1.Параметры.УстановитьЗначениеПараметра("Наименование","%"); КонецПроцедуры сам запрос ВЫБРАТЬ Номенклатура.Наименование, Номенклатура.Артикул ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ Номенклатура.Наименование ПОДОБНО &Наименование реквизит1 - динамический список реквизит2 - строка |
|||
9
Dmitriy_76
25.12.13
✎
14:35
|
(7) не очищается если использовать при изменении....
а мне надо чтоб фокус оставался в нем..и данные можно было дальше писать |
|||
10
Dmitriy_76
25.12.13
✎
14:35
|
остается видимо крайняя мера.. через обычную таблицу значений...
или есть варианты как с ДС победить? |
|||
11
Dmitriy_76
25.12.13
✎
14:52
|
(7) ну как отрабатывает данный код?
|
|||
12
Fedor-1971
25.12.13
✎
15:00
|
(9) Что мешает в обработке события ПриИзменении()установить фокус опять на данный реквизит формы?
Что-то типа: ЭтаФорма.ТекущийЭлемент=ЭлементыФормы.Реквизит2, с поля можно сойти через ТАВ, но при изменении оно будет активироваться снова |
|||
13
Dmitriy_76
25.12.13
✎
15:03
|
(12) обработчик при изменении() отрабатывает только при окончании ввода текста (нажатие ентер, потеря фокуса.....)
а мне нужно чтоб пр и каждом изменении отображалось |
|||
14
Fedor-1971
25.12.13
✎
15:15
|
попробуй заново создать чистую форму, поскольку форма только с полем и ДС работает.
|
|||
15
Fedor-1971
25.12.13
✎
15:16
|
(14)+ версия 8.2.18.61
|
|||
16
WildSery
25.12.13
✎
15:16
|
(8) "СтандартнаяОбработка = Ложь" не означает, что подбор не будет выполняться.
Я сейчас далеко от 1С, не проверю, но рекомендую попробовать заполнять ДанныеВыбора.Добавить(Текст) |
|||
17
Dmitriy_76
25.12.13
✎
15:25
|
(16) не сработало..
в ДанныеВыбора сейчас неопределено ... Написал ДанныеВыбора=Новый СписокЗначений; ДанныеВыбора.Добавить(Текст); все равно очищает поле ввода |
|||
18
Dmitriy_76
25.12.13
✎
15:26
|
(14) абсолютно новая чистая форма. нарисовал с нуля.
|
|||
19
WildSery
25.12.13
✎
15:48
|
(18) Повторил ваш код из (8). Поле не очищается.
Одно но - УФ запускается в обычном приложении в режиме совместимости. Сейчас попробую в управляемом. |
|||
20
Dmitriy_76
25.12.13
✎
15:52
|
(19) интерес именно в УФ. спасибо за проявленный интерес.
кстати сделал таблицу значений вместо ДС.. та же фигня |
|||
21
WildSery
25.12.13
✎
15:55
|
(20) А в управляемом режиме очищается. Похоже, это какая-то "багофича" от 1С.
|
|||
22
Dmitriy_76
25.12.13
✎
16:10
|
мдя.....
есть какие варианты как сделать по другому ? |
|||
23
Dmitriy_76
25.12.13
✎
16:35
|
сделал так. не коширно. но пока вариантов больше не вижу.
Добавил второе поле ввода, куда и складываю промежуточное / окончательное значение что пользователь наводил..некий буфер на первое поле повешал кнопку очистки, в обработчик очистки прописал очистку второго поля... |
|||
24
WildSery
25.12.13
✎
16:42
|
(22) В свойствах поля ввода для Реквизит2 установите ОбновлениеТекстаРедактирования = Не использовать
|
|||
25
Dmitriy_76
25.12.13
✎
16:58
|
(24) СУПЕР!!!! спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |