Как на управляемой форме вернуть предыдущее значение по условию

1. Дон Кихот 15.07.22 15:45 Сейчас в теме
Искал как на управляемой форме вернуть предыдущее значение, проверив его на условие, делал в расширении, нашёл такое решение:

&НаКлиенте
Процедура ТС_ПозицияОбработкаВыбораПосле(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
	ЗначениеДляПодстановки = ПроверитьУтверждена(Элемент.ТекстРедактирования, ВыбранноеЗначение); 
	ВыбранноеЗначение = ЗначениеДляПодстановки;
КонецПроцедуры 

&НаСервере
Функция ПроверитьУтверждена(ПредыдущееЗначение, ВыбранноеЗначение)
	Если Не ВыбранноеЗначение.Утверждена Тогда
		ПредыдущееЗначениеЭлемент = Справочники.ШтатноеРасписание.НайтиПоНаименованию(ПредыдущееЗначение);
		Возврат ПредыдущееЗначениеЭлемент;
	КонецЕсли; 
КонецФункции   
Показать


Работает исправно, напишите пожалуйста, можно ли так, и, если такое решение нельзя использовать, напишите по какой причине, просьба писать по существу.
По теме из базы знаний
Найденные решения
6. RustamZz 18.07.22 09:09 Сейчас в теме
(4) Правильных вариантов множество. Самый простой
Прикрепленные файлы:
7. custer 18.07.22 09:24 Сейчас в теме
(1) Может так лучше?
&НаКлиенте
Процедура ТС_ПозицияОбработкаВыбораПосле(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) 
	СтандартнаяОбработка = ПроверитьУтверждена(ВыбранноеЗначение);
КонецПроцедуры 

&НаСервереБезКонтекста
Функция ПроверитьУтверждена(ВыбранноеЗначение)  	
	Возврат ВыбранноеЗначение.Утверждена; 
КонецФункции
Показать


Ну и (6) ответ +
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. RustamZz 15.07.22 16:13 Сейчас в теме
(1) Во время этого события в Реквизите все еще предыдущее значение, его не нужно искать. Ну и человечнее надо быть к пользователем: не показывайте им в выборе, то что не правильно.
3. Дон Кихот 18.07.22 06:09 Сейчас в теме
(2)
Во время этого события в Реквизите все еще предыдущее значение, его не нужно искать.

В какой переменной это предыдущее значение?
5. RustamZz 18.07.22 09:00 Сейчас в теме
(3) У вас ни в вопросе, ни в коде явного указания на реквизит нет, поэтому я не стал его угадывать. Смотреть надо через Объект.
4. Дон Кихот 18.07.22 06:22 Сейчас в теме
(2)
Ну и человечнее надо быть к пользователем: не показывайте им в выборе, то что не правильно.

Если вы знаете, напишите правильное решение, к чему эти интриги?
6. RustamZz 18.07.22 09:09 Сейчас в теме
(4) Правильных вариантов множество. Самый простой
Прикрепленные файлы:
7. custer 18.07.22 09:24 Сейчас в теме
(1) Может так лучше?
&НаКлиенте
Процедура ТС_ПозицияОбработкаВыбораПосле(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) 
	СтандартнаяОбработка = ПроверитьУтверждена(ВыбранноеЗначение);
КонецПроцедуры 

&НаСервереБезКонтекста
Функция ПроверитьУтверждена(ВыбранноеЗначение)  	
	Возврат ВыбранноеЗначение.Утверждена; 
КонецФункции
Показать


Ну и (6) ответ +
Оставьте свое сообщение

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