4 декабря 2016 г.

1С УФ Обход полей ввода в группе на ЗначениеЗаполнено()

Как проверить заполненность полей ввода в группе на форме?



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


Комментариев нет:

Отправка комментария