|   |   | 
| 
 | Как откатить присвоение значения в поле ввода УП | ☑ | ||
|---|---|---|---|---|
| 0
    
        iva77ru 10.07.14✎ 11:34 | 
        Пожалуйста, помогите разобраться?
 На УП есть поле ввода связано с данными справочника контраген. Нужно по окончанию ввода/выбора нового значения задать вопрос и либо откатить присвоение нового значения либо нет. &НаКлиенте Процедура КонтрагентПриИзменении(Элемент) Режим = РежимДиалогаВопрос.ДаНет; Ответ = Неопределено; ПоказатьВопрос(Новый ОписаниеОповещения("КонтрагентПриИзмененииЗавершение", ЭтотОбъект), "Выполнить перерасчет по ценам выбранного контрагента: "+ Объект.Контрагент + "?", Режим, 0); КонецПроцедуры &НаКлиенте Процедура КонтрагентПриИзмененииЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт Ответ = РезультатВопроса; Если Ответ = КодВозвратаДиалога.Нет Тогда Возврат; КонецЕсли; КонецПроцедуры Если ответить нет, то все равно остается новое выьранное значение. | |||
| 1
    
        Господин ПЖ 10.07.14✎ 11:36 | 
        КонтрагентПриИзменении
 уже поздно пить баржоми... | |||
| 2
    
        Maxus43 10.07.14✎ 11:38 | 
        ОбработкаВыбора, или другие подходящие     | |||
| 3
    
        iva77ru 10.07.14✎ 11:46 | 
        Обработка выбора или подобное не подходит, т.к. нужно использовать не модальный вызов для вопроса и, следовательно, нет остановки в процедуре, а в др. процедуре уже нет возможности установить ложь для отмены ввода.     | |||
| 4
    
        Maxus43 10.07.14✎ 11:48 | 
        (3) ПриОткрытии пихай в реквизит формы "СтароеЗначение", а в (0) оттуда устанавливай обратно, если ответ отрицательный     | |||
| 5
    
        Enders 10.07.14✎ 11:49 | 
        Запомни прошлое значение поля (ПриОткрытии, ПриАктивизации,НачалоВыбора), и при ответе "нет". Верни его.
 В чем сложность? | |||
| 6
    
        mikecool 10.07.14✎ 11:49 | 
        смотреть передизменением - запоминаем
 смотреть приизменении - анализ и откат или принятие | |||
| 7
    
        iva77ru 10.07.14✎ 11:59 | 
        Интефейс Такси.
 Нажимаем на стрелочку в правом углу поля ввода.Видим список выбора. Выбираем что-то новенькое и не одна из доступных процедур не срабатывает для отлова ранее установленного значения. Проверял: НачалоВыбораИзСписка() НачалоВыбора() | |||
| 8
    
        Enders 10.07.14✎ 12:06 | 
        (7) Ну вроде как было предложено больше процедур для запоминания старого значения...     | |||
| 9
    
        mikecool 10.07.14✎ 12:10 | 
        (7) проверяй все процедуры
 я когда не могу точно предположить - какой конкретно обработчик сработает, добавляю все, ставлю точки останова и смотрю где выстрелит | |||
| 10
    
        mistеr 10.07.14✎ 12:51 | 
        (7) Что, прям нигде значение не получить?     | |||
| 11
    
        iva77ru 10.07.14✎ 13:02 | 
        Для текущего случая подходит:
 АвтоПодбор() для фиксации значения до изменения. СП: возникает при активизации поля ввода, для которого выключен быстрый выбор, мышью. | |||
| 12
    
        iva77ru 10.07.14✎ 13:07 | 
        Правильно нужно задействавать все обработчики:
 НачалоВыбораИзСписка() НачалоВыбора() АвтоПодбор() Чтобы учесть все варианты ввода. То есть при замене модальных вызовов на не модальные нужно еще и дописывать кучу лишнего кода. Спасибо, разработчикам платформы. | |||
| 13
    
        Enders 10.07.14✎ 17:07 | 
        (12) Ну или обойтись процедурой "ПриОткрытии", кто как хочет так и извращается. При чем тут разработчики?)     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |