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 19 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 9 10.06.19 12:07 Сейчас в теме
(1) анализируете
Элемент.ТекстРедактирования
- чтобы "поймать" ввод каждого символа ? Для чего? может проверять значение с типом "Дата" на заполненность ?
7. singlych 10.06.19 12:39 Сейчас в теме
(1)
проверить нечего

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

Вакансии

Программист 1С
Бобров
зарплата от 100 000 руб. до 150 000 руб.
Временный (на проект)

Студент (стажер) 1С
Нижний Новгород
зарплата от 25 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 120 000 руб.
Полный день

Программист 1С
Нижний Новгород
зарплата до 100 000 руб.
Полный день

Программист 1С
Новосибирск
зарплата от 80 000 руб.
Полный день