На днях заказчик захотел странного. А именно контроля заполнения сразу же при смене поля. Причем, если текущее поле не заполнено, то нельзя было перейти к заполнению других. Поскольку событий, возникающих при смене текущего элемента формы на данный момент в 1С нет, пришлось искать обходной путь.
В итоге получилось простое решение с использованием обработчика ожидания.
И конечно же, сама тестовая обработка.
В итоге получилось простое решение с использованием обработчика ожидания.
&НаКлиенте Процедура ПриОткрытии(Отказ) НеобязательныеЭлементы.Добавить("Комментарий"); ТекЭлемент = ТекущийЭлемент.Имя; ПодключитьОбработчикОжидания("ПроверитьТЭ", 0.1, Истина); КонецПроцедуры &НаКлиенте Процедура ПроверитьТЭ() ПроверкаЗначенияЭлемента = НеобязательныеЭлементы.НайтиПоЗначению(ТекЭлемент) = Неопределено; Переход = НЕ ТекЭлемент = ТекущийЭлемент.Имя; Если Переход Тогда Если ПроверкаЗначенияЭлемента И НЕ ЗначениеЗаполнено(Объект[ТекЭлемент]) Тогда ТекущийЭлемент = Элементы[ТекЭлемент]; Иначе ТекЭлемент = ТекущийЭлемент.Имя; КонецЕсли; КонецЕсли; ПодключитьОбработчикОжидания("ПроверитьТЭ", 0.1, Истина); КонецПроцедуры // ПроверитьТЭ()
И конечно же, сама тестовая обработка.
Не совсем понятно, что делает эта функция, и где ее можно применить?
ОтветитьУдалить