//Проверка на заполненность реквизитов формы, для которых установлен признак АвтоОтметкаНезаполненного Функция ПроверкаАвтоОтметкаНезаполненного(ЭлементыФормы) Экспорт Результат = Ложь; Для каждого Элемент Из ЭлементыФормы Цикл Если ТипЗнч(Элемент) = Тип("ПолеВвода") Тогда Если Элемент.АвтоОтметкаНезаполненного И ЗначениеНеЗаполнено(Элемент.Значение) Тогда Сообщить("Необходимо заполнить обязательное поле ввода: " + Элемент.Подсказка, СтатусСообщения.Внимание); Результат = Истина; КонецЕсли; ИначеЕсли ТипЗнч(Элемент) = Тип("ТабличноеПоле") Тогда СоставПоля = Элемент.Значение; Колонки = Элемент.Колонки; Попытка // для ДокументСписок вызовет исключение Для каждого Строка Из СоставПоля Цикл Для каждого Колонка Из Колонки Цикл Если ТипЗнч(Колонка.ЭлементУправления) = Тип("ПолеВвода") Тогда Если Колонка.АвтоОтметкаНезаполненного И ЗначениеНеЗаполнено(Строка[Колонка.Данные]) Тогда Сообщить("Необходимо заполнить обязательное поле ввода табличной части: " + Колонка.ТекстШапки, СтатусСообщения.Внимание); Результат = Истина; КонецЕсли; КонецЕсли; КонецЦикла; КонецЦикла; Исключение КонецПопытки; КонецЕсли; КонецЦикла; Возврат Результат; КонецФункции
// Возвращаемое значение: // Ложь ,если не все реквизиты заполнены // Истина, если все отмеченные реквизиты заполнены Функция ПроверитьНезаполненныеРеквизиты(Элементы) Экспорт Для каждого стр Из Элементы Цикл Если ТипЗнч(стр)=Тип("ПолеВвода") И стр.АвтоОтметкаНезаполненного И НЕ ЗначениеЗаполнено(стр.Значение) Тогда Если стр.Имя=стр.Подсказка Тогда стрПодсказка=""; Иначе стрПодсказка=" : "+стр.Подсказка; КонецЕсли; Возврат "Не заполнено поле "+стр.Имя+стрПодсказка; КонецЕсли; КонецЦикла; Возврат ""; КонецФункции