УФ. проверить полеформы

1. tvm 10.06.19 11:54 Сейчас в теме
После выходных плохо думается что-то...
Дано: форма на которой лежит таб. часть справочника, в котором есть поле с типом "Дата". Нужно в момент перехода с этого поля, проверять ввели что-то или нет. Повесил событие "ПриИзменении", кроме как Элемент.ТекстРедактирования проверить нечего. Но если дата пустая то содержится строка вида " . . ". Не хотелось бы конечно сравнивать в явном виде. Как еще можно проверить? Проверить хочу именно в момент схода, а не приокончанииредактирования
+
Найденные решения
8. antz 10.06.19 12:40 Сейчас в теме
(5) А почему не обратиться к Элементы.ИмяТЧНаФорме.ТекущиеДанные? Используйте событие ПриИзменении всей табличной части.
+
9. dhurricane 10.06.19 12:40 Сейчас в теме
(5) Почему в обработчике события "ПриИзменении" Вы не обращаетесь непосредственно к значению?
Если Не ЗначениеЗаполнено(Элементы.Таблица.ТекущиеДанные.РеквизитДаты) Тогда
   // тут код
КонецЕсли;
+
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. dhurricane 10.06.19 12:05 Сейчас в теме
(1) Если Вам необходимо выполнять проверку именно при переходе на другой элемент формы, то используйте обработчик события "ОкончаниеВводаТекста". Здесь будет еще не установлено новое значение реквизита, то параметр "Текст" будет содержать строковое представление вводимых данных.

Ну а если исключить столь строгое ограничение момента проверки реквизита, то подскажите, по каким именно причинам не получилось использовать событие "ПриИзменении"? Что подразумевается под фразой "...кроме как Элемент.ТекстРедактирования проверить нечего"?
+
5. tvm 10.06.19 12:27 Сейчас в теме
(2) (3) и "ОкончаниеВводаТекста" и "ПриИзменении" в Элемент.ТекстРедактирования возвращает значение вида " . . ". Как определить что это пустая дата не прибегая к явному сравнению вида
Если  Элемент.ТекстРедактирования =  " . . " Тогда
          //тут код
КонецЕсли;

Никаких других данных(значений) нигде не содержится
(4) ПриОкончанииРедактирования не хочу использовать- колонок много
+
6. Isa816 64 10.06.19 12:36 Сейчас в теме
(5) Если не хочется извращаться с текстом то можно так же при окончании ввода текста получить текущую строку и обратиться напрямую к дате
Элементы.ТабЧасть.ТекущиеДанные.ДатаФормы
Если уж совсем извращаться то можно сделать ЗначениеЗаполнено(СокрЛП(СтрЗаменить(Элемент.ТекстРедактирования,".","")));
+
8. antz 10.06.19 12:40 Сейчас в теме
(5) А почему не обратиться к Элементы.ИмяТЧНаФорме.ТекущиеДанные? Используйте событие ПриИзменении всей табличной части.
+
10. tvm 10.06.19 12:45 Сейчас в теме
(8) (9) точно! зациклился что при создании процедуры подставляется
ПриИзменении(Элемент)
+
9. dhurricane 10.06.19 12:40 Сейчас в теме
(5) Почему в обработчике события "ПриИзменении" Вы не обращаетесь непосредственно к значению?
Если Не ЗначениеЗаполнено(Элементы.Таблица.ТекущиеДанные.РеквизитДаты) Тогда
   // тут код
КонецЕсли;
+
3. alex-l19041 8 10.06.19 12:07 Сейчас в теме
(1) анализируете
Элемент.ТекстРедактирования
- чтобы "поймать" ввод каждого символа ? Для чего? может проверять значение с типом "Дата" на заполненность ?
+
7. singlych 10.06.19 12:39 Сейчас в теме
(1)
проверить нечего

как нечего, а значение в текущей строке?
+
4. Isa816 64 10.06.19 12:07 Сейчас в теме
Вот накидал по быстрому обработку. Можно повесить событие при окончании редактирования и получать доступ сразу к элементу.
Прикрепленные файлы:
ВнешняяОбработка3.epf
+
11. tvm 10.06.19 12:52 Сейчас в теме
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот