ЗУП 3.1: Проверка адресов сотрудников

Отчеты - Анализ учета

Проверка адресов прописки контрагентов в ЗУП. Отлаживалась на релизе Зарплата и управление персоналом КОРП, редакция 3.1 (3.1.2.94).

Суть проверки сводится к эмулированию нажатия кнопки "Проверить заполнение" на форме ввода адреса сотрудника в цикле по массиву ссылок на сотрудников. Работает тупо и медленно. Благо, пользоваться нужно не часто. Человек 200 минут за 10 должна проверить.

Основная идея работы обработки в коде:

        ФормаСотрудника=получитьформу("Справочник.Сотрудники.Форма.ФормаЭлемента",новый Структура("Ключ",текСотрудник));

        // получаем форму спр.Сотрудники ЛичныеДанные с нужными параметрами
        ОписаниеДополнительнойФормы=СотрудникиКлиентСервер.ОписаниеДополнительнойФормы("Справочник.Сотрудники.Форма.ЛичныеДанные");
        ПараметрыФормы = ПараметрыДополнительнойФормы(ОписаниеДополнительнойФормы, ФормаСотрудника);
        ФормаЛичныхДанных=ПолучитьФорму(ОписаниеДополнительнойФормы.ИмяФормы, ПараметрыФормы, ФормаСотрудника,истина);

        // нужно знать имя поля Адрес по прописки, кликая по которому, открываем форму ввода адреса
        ИмяПоляАдресПоПрописке="";
        Для каждого эл из ФормаЛичныхДанных.Элементы цикл
            если типзнч(эл)<>тип("ПолеФормы") тогда продолжить КонецЕсли;

            если не лев(эл.Имя,24)="КонтактнаяИнформацияПоле" тогда продолжить КонецЕсли;

            если не типзнч(эл.Родитель)=тип("ГруппаФормы") тогда продолжить КонецЕсли;

            верхнийРодитель=эл.Родитель.Родитель;
            если не типзнч(верхнийРодитель)=тип("ГруппаФормы") тогда продолжить КонецЕсли;

            если верхнийРодитель.Заголовок="Адрес по прописке" тогда
                ИмяПоляАдресПоПрописке=эл.Имя;
                прервать;
            КонецЕсли;
        КонецЦикла;

        если ИмяПоляАдресПоПрописке="" тогда
            сообщить("Ошибка проверки "+тексотрудник+", не найдено поле адреса по прописке");
            продолжить;
        КонецЕсли;

        // получаем форму ввода адреса
        МодульУправлениеКонтактнойИнформациейКлиент =
            ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеКонтактнойИнформациейКлиент");
        // процедура формы ЛичныеДанные НачалоВыбора несколько подкорректирована    - добавлена ссылка на ФормаЛичныхДанных
        ФормаАдреса=НачалоВыбора(ФормаЛичныхДанных, Новый Структура("Имя",ИмяПоляАдресПоПрописке), , истина);

        ПредупреждатьОбОтсутствииОшибок=ложь; ТребуетсяОбновление=ложь;
        Контекст = КонтекстФормыКлиент(ФормаАдреса);
        СписокОшибок = СписокОшибокЗаполнения(Контекст, ПредупреждатьОбОтсутствииОшибок, ТребуетсяОбновление);
		

Скачать файлы

Наименование Файл Версия Размер
Проверка адресов сотрудников
.epf 17,05Kb
29.01.17
12
.epf 17,05Kb 12 Скачать

См. также

В этой теме еще нет сообщений.
Оставьте свое сообщение