Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: поле ввода вернуть старое значение
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
onsamuy
обычная форма, обычный елемент управления "поле ввода", тип число, без кнопок.
суть в том что при изменении проводится проверка, какая неважно, нужно если проверка не прошла, возвратить значение поля ввода до изменения.
logist
Событие поля -> ОкончаниеВводаТекста.
Если необходимая проверка не прошла тогда "СтандартнаяОбработка = Ложь", только в таком случае будет выдано сообщение, что-то типа "введенный текст не верный - повторить ввод/отмена"
onsamuy
Пробовал. Странно то, что "СтандартнаяОбработка = Ложь" очищает поле ввода, но не возвращает предыдущее значение...
logist
Что-то делаете не так, у меня возвращает.
&НаКлиенте
Процедура ПолеВводаОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка)
    Если ЗначениеЗаполнено(ПолеВвода) Тогда
        Если Число(Текст) <> 123 Тогда
            СтандартнаяОбработка = Ложь;
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)
    ПолеВвода = 55;
КонецПроцедуры
Zaval
Так не получится. Если окончен ввод в поле - его значение изменено, старое значение в поле затерто.
Если док не новый - то прежнее значение можно прочитать из БД, там оно изменится только после записи документа.
А можно все сделать в самой форме.
В модуль формы добавить переменную СтароеЗначениеХХХ.
К полю подцепить ,,,НачалоВыбора() и в нем сохранять текущее значение в СтароеЗначениеХХХ.
Потом хоть в ПриИзменении() или еще где проверять значение, если не нравится - восстановить из переменной.
logist
Цитата(Zaval @ 26.08.11, 16:15) необходимо зарегистрироваться для просмотра ссылки
Так не получится. Если окончен ввод в поле - его значение изменено, старое значение в поле затерто.

Почему?
Так как я написал после окончания ввода вызывается проверка, если новое значение не удовлетворяет условию, то выдается сообщение и при отказе ввода возвращается старое значение. Я ж не просто написал код, а проверил как он работает. Исходил из того что это поле, а не реквизит (в топике не сказано что это реквизит).

И НачалоВыбора не сработает если вводить сразу в поле (в топике указано что поле без кнопок).
Zaval
Вот и открылся секрет точности ответов smile.gif
А я все по памяти...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.