|   |   | 
| 
 | Динамический список на форме и элемент ввода | ☑ | ||
|---|---|---|---|---|
| 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) СУПЕР!!!! спасибо     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |