gifts2017

Проверка заполнения обязательных реквизитов шапки (8.1)

Опубликовал Михаил М (Crazy Professor) в раздел Программирование - Универсальные функции

Процедура проверяет все реквизиты шапки и табличных частей формы, для которых стоит пометка "АвтоОтметкаНезаполненного" на факт заполнения.

Процедура проверяет все реквизиты шапки и табличных частей формы, для которых стоит пометка "АвтоОтметкаНезаполненного" на факт заполнения. Результат выводит в дерево значений.
Процедуру добавить в любой модуль (если поддерживается передача параметра типа "Форма"), в параметрах передать контекст формы и, при необходимости, отключить вывод дерева предупреждений.

Возвращает Истина, если проверка прошла успешно и Ложь, если есть ошибки.

 

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

    Если
ЕстьОшибки и Показать тогда
        ЭлементыДерево.ВыбратьСтроку("Параметры не указаны");
    КонецЕсли;

    Возврат
ЕстьОшибки;

КонецФункции

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Viacheslav Bilous (Gendalf_beliy) 13.01.14 17:21
Под платформу 8.2 данная разработка работать будет?
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа