Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
08 дек 2022, 03:27

помогите с обработкой ЗУП проект

Автор Владимирcrow, 03 ноя 2022, 10:47

0 Пользователей и 1 гость просматривают эту тему.

Владимирcrow

с переходом на 1С:Предприятие 8.3 (8.3.20.2076)
Зарплата и управление персоналом, редакция 3.1 (3.1.24.25)
ругается

Метод объекта не обнаружен (КонтактнаяИнформацияИзXML)
{ВнешняяОбработка.ОбменСПАОАКБАРСБАНКПоЗарплатномуПроекту.Форма.Форма.Форма(2437)}:ОбъектXDTO = УправлениеКонтактнойИнформациейСлужебный.КонтактнаяИнформацияИзXML(Строка.ЗначенияПолей);

{ВнешняяОбработка.ОбменСПАОАКБАРСБАНКПоЗарплатномуПроекту.Форма.Форма.Форма(2747)}:Данные = 
ВыгрузитьВедомостиЗПнаПКНаСервереДБФ();

bgbgbgfbfgb.png



&НаСервере
функция СписокСотрудниковВыгрузитьПДФНаСервере(ТабДокЛог, Отказ)
   
    отказ = Ложь;
    Если не ЗначениеЗаполнено(Объект.ДатаСоставленияДоверенности) Тогда
        Отказ = Истина;
        Сообщить("Не заполнено обязательное поле  Дата составления доверенности");
    КонецЕсли;
    Если не ЗначениеЗаполнено(Объект.ЗарплатныйПроект) Тогда
        Отказ = Истина;
        Сообщить("Не заполнено обязательное поле Зарплатный проект");
    КонецЕсли;
    Если не ЗначениеЗаполнено(Объект.Организация) Тогда
        Отказ = Истина;
        Сообщить("Не заполнено обязательное поле Организация");
    КонецЕсли;
    Если не ЗначениеЗаполнено(Объект.КаталогВыгрузки) Тогда
        Отказ = Истина;
        Сообщить("Не заполнено обязательное поле Каталог выгрузки");
    КонецЕсли;
   
    Если не Отказ тогда
   
    ТаблицаФизЛиц = Новый ТаблицаЗначений;
    ТаблицаФизЛиц.Колонки.Добавить("ФизЛицо", Новый ОписаниеТипов("СправочникСсылка.ФизическиеЛица"));
   
    для Каждого Строка из Объект.СписокСотрудников Цикл
        НовСтрока = ТаблицаФизЛиц.Добавить();
        НовСтрока.ФизЛицо = Строка.Сотрудник.ФизическоеЛицо;
    КонецЦикла;
   
    ТаблицаФизЛиц.Свернуть("ФизЛицо");
   
    Имяфайла= Лев(ТекущаяДата(),2)+Прав(Лев(ТекущаяДата(),5),2);
   
    Лог = Новый ТекстовыйДокумент;
    лог.УстановитьТипФайла(КодировкаТекста.UTF8);
    ТекстЛога = "";
   
    ДБФ = Новый XBase(Имяфайла);
    ДБФ.Поля.Добавить("SUMMA","N",12,2);      //1
    ДБФ.Поля.Добавить("CLNT_FNAME","S",35,);  //2
    ДБФ.Поля.Добавить("CLNT_INAME","S",20,);  //3
    ДБФ.Поля.Добавить("CLNT_ONAME","S",30,);  //4
    ДБФ.Поля.Добавить("CLNT_SPAS","S",10,);   //5
    ДБФ.Поля.Добавить("CLNT_NPAS","S",35,);   //6
    ДБФ.Поля.Добавить("CLNT_DPAS","D",8,);    //7
    ДБФ.Поля.Добавить("CLNT_PPAS","S",50,);   //8
    ДБФ.Поля.Добавить("CLNT_ADR","S",100,);   //9
    ДБФ.Поля.Добавить("BIRTHDAY","D",8,);     //10
    ДБФ.Поля.Добавить("TAB_N","S",20,);       //11
    ДБФ.Поля.Добавить("ACC","S",25,);         //12
    ДБФ.Поля.Добавить("WORD","S",32,);        //13
    ДБФ.Поля.Добавить("PHONE","S",32,);       //14
    ДБФ.Поля.Добавить("INN","S",20,);         //15
    ДБФ.Поля.Добавить("FIL","S",10,);         //16
    ДБФ.Поля.Добавить("TRANSLIT","S",19,);    //17
    ДБФ.Поля.Добавить("ADD_INFO","S",32,);    //18
    ДБФ.Поля.Добавить("BIRTHPLACE","S",32,);  //19
    ДБФ.Поля.Добавить("PHONE_M","S",32,);     //20
    ДБФ.Поля.Добавить("PHONE_H","S",32,);     //21
    ДБФ.Поля.Добавить("PHONE_F","S",32,);     //22
    ДБФ.Поля.Добавить("CLNT_CPPAS","S",10,);  //23
    ДБФ.Поля.Добавить("CLNT_PADR","S",100,);  //24
    ДБФ.Поля.Добавить("DOC_TYPE","S",10,);    //25
    ДБФ.Поля.Добавить("CLNT_EMAIL","S",100,); //26
   
    Путь = Объект.КаталогВыгрузки+ "\zk"+имяфайла+".dbf";
    ДвоичныеДанные = Новый ДвоичныеДанные(Путь);
    Адрес = ПоместитьВоВременноеХранилище(ДвоичныеДанные, Новый УникальныйИдентификатор);   
   
   
   
    ДБФ.СоздатьФайл(Объект.КаталогВыгрузки+ "\zk"+имяфайла+".dbf");
    ДБФ.ЗакрытьФайл();
    ДБФ.ОткрытьФайл(Объект.КаталогВыгрузки+"\zk"+имяфайла+".dbf");
    ДБФ.Кодировка=КодировкаXBase.OEM;

   
    //Режим = РежимДиалогаВыбораФайла.ВыборКаталога;
    //ДиалогОткрытия = Новый ДиалогВыбораФайла(Режим);
    //ДиалогОткрытия.Каталог = "";
    //ДиалогОткрытия.МножественныйВыбор = Ложь;
    //ДиалогОткрытия.Заголовок = "Выберите каталог";

    //Если ДиалогОткрытия.Выбрать() Тогда
    //    ПутьККаталогу = ДиалогОткрытия.Каталог;
    //КонецЕсли;

    //т=1;
    //Для Каждого Хранилище Из МассивФайлов Цикл
    //    ДополнениеКИмениФайла = Формат(ТекущаяДата(),"ДФ=ddMMyyyy");
    //    Если т=1 Тогда
    //        ИмяФайла = ПутьККаталогу +"\EMPL_"+ДополнениеКИмениФайла +".xml";      //  "E:\ABB\"
    //        т=т+1;
    //    Иначе
    //        ИмяФайла = ПутьККаталогу +"\PODR_"+ДополнениеКИмениФайла +".xml";
    //    КонецЕсли;
    //   
    //    Если ТипЗнч(Хранилище) <> Тип("ДвоичныеДанные") Тогда
    //        ДвоичныеДанные =ПолучитьИзВременногоХранилища(Хранилище);
    //    Иначе
    //        ДвоичныеДанные = Хранилище;
    //    КонецЕсли;
    //    ДвоичныеДанные.Записать(ИмяФайла);
    //КонецЦикла;
   
   
   
   
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    таблицаФизЛиц.ФизЛицо
    |ПОМЕСТИТЬ Вт
    |ИЗ
    |    &таблицаФизЛиц КАК таблицаФизЛиц
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ДокументыФизическихЛицСрезПоследних.Физлицо,
    |    ДокументыФизическихЛицСрезПоследних.Серия,
    |    ДокументыФизическихЛицСрезПоследних.Номер,
    |    ДокументыФизическихЛицСрезПоследних.ДатаВыдачи,
    |    ДокументыФизическихЛицСрезПоследних.КемВыдан,
    |    ДокументыФизическихЛицСрезПоследних.Физлицо.ДатаРождения КАК ДатаРождения,
    |    ФИОФизическихЛицСрезПоследних.Фамилия КАК Фамилия,
    |    ФИОФизическихЛицСрезПоследних.Имя КАК Имя,
    |    ФИОФизическихЛицСрезПоследних.Отчество КАК Отчество,
    |    ДокументыФизическихЛицСрезПоследних.Физлицо.Код КАК ТабНомер,
    |    ДокументыФизическихЛицСрезПоследних.Физлицо.ИНН КАК ИНН,
    |    ДокументыФизическихЛицСрезПоследних.КодПодразделения,
    |    ДокументыФизическихЛицСрезПоследних.ВидДокумента.КодМВД КАК КодМВД,
    |    ДокументыФизическихЛицСрезПоследних.Физлицо.МестоРождения КАК МестоРождения
    |ИЗ
    |    Вт КАК Вт
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизическихЛиц.СрезПоследних(&ДатаСоставленияДоверенности, ) КАК ФИОФизическихЛицСрезПоследних
    |        ПО Вт.ФизЛицо = ФИОФизическихЛицСрезПоследних.ФизическоеЛицо
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДокументыФизическихЛиц.СрезПоследних(&ДатаСоставленияДоверенности, ) КАК ДокументыФизическихЛицСрезПоследних
    |        ПО Вт.ФизЛицо = ДокументыФизическихЛицСрезПоследних.Физлицо
    |
    |УПОРЯДОЧИТЬ ПО
    |    Фамилия,
    |    Имя,
    |    Отчество";
   
    Запрос.УстановитьПараметр("ДатаСоставленияДоверенности", Объект.ДатаСоставленияДоверенности);
    Запрос.УстановитьПараметр("таблицаФизЛиц", ТаблицаФизЛиц);
    РезультатЗапроса = Запрос.Выполнить();
   
    Выборка = РезультатЗапроса.Выбрать();
     Отказ = Ложь;
     
     ТаблицаЛогов = Новый ТаблицаЗначений;
     ТаблицаЛогов.Колонки.Добавить("Сотрудник");
     ТаблицаЛогов.Колонки.Добавить("Поле");
     ТаблицаЛогов.Колонки.Добавить("Коментарий");     
     
    Пока Выборка.Следующий() Цикл
       
        ДБФ.Добавить();
        //ДБФ.ACC          = Выборка.
        //ДБФ.WORD         = Выборка.
        //ДБФ.TRANSLIT     = Выборка.
        //ДБФ.ADD_INFO     = Выборка.
        ДБФ.SUMMA        = 0;
       
        если Выборка.Фамилия = "" Тогда
            Отказ = Истина;
            //сообщить ("У " + Выборка.Физлицо + " не заполнено поле Фамилия" );
            //ТекстЛога = ТекстЛога + ?(ПустаяСтрока(ТекстЛога), "", Символы.ПС) +  Выборка.Физлицо + " отсуствует Фамилия";
            СтрокаТаблицыЛогов = ТаблицаЛогов.Добавить();
            СтрокаТаблицыЛогов.Сотрудник = Выборка.Физлицо;
            СтрокаТаблицыЛогов.Поле = "Фамилия"  ;
            СтрокаТаблицыЛогов.Коментарий =  " не заполнено поле Фамилия";
        КонецЕсли;
        если Выборка.Имя = "" Тогда
            Отказ = Истина;
            //сообщить ("У " + Выборка.Физлицо + " не заполнено поле Имя" );
            //ТекстЛога = ТекстЛога + ?(ПустаяСтрока(ТекстЛога), "", Символы.ПС) +  Выборка.Физлицо + " отсуствует Имя";
            СтрокаТаблицыЛогов = ТаблицаЛогов.Добавить();
            СтрокаТаблицыЛогов.Сотрудник = Выборка.Физлицо;
            СтрокаТаблицыЛогов.Поле = "Имя"   ;
            СтрокаТаблицыЛогов.Коментарий =  " не заполнено поле Имя";
        КонецЕсли;       
        если Выборка.Отчество = "" Тогда
            Отказ = Истина;
            //сообщить ("У " + Выборка.Физлицо + " не заполнено поле Отчество" );
            //ТекстЛога = ТекстЛога + ?(ПустаяСтрока(ТекстЛога), "", Символы.ПС) +  Выборка.Физлицо + " отсуствует Отчество";
            СтрокаТаблицыЛогов = ТаблицаЛогов.Добавить();
            СтрокаТаблицыЛогов.Сотрудник = Выборка.Физлицо;
            СтрокаТаблицыЛогов.Поле = "Отчество"  ;
            СтрокаТаблицыЛогов.Коментарий =  " не заполнено поле Отчество";
        КонецЕсли;       
        если Выборка.Серия = "" Тогда
            Отказ = Истина;
            //сообщить ("У " + Выборка.Физлицо + " не заполнено поле Серия"  );
            //ТекстЛога = ТекстЛога + ?(ПустаяСтрока(ТекстЛога), "", Символы.ПС) +  Выборка.Физлицо + " отсуствует Серия";
            СтрокаТаблицыЛогов = ТаблицаЛогов.Добавить();
            СтрокаТаблицыЛогов.Сотрудник = Выборка.Физлицо;
            СтрокаТаблицыЛогов.Поле = "Серия"    ;
            СтрокаТаблицыЛогов.Коментарий =  " не заполнено поле Серия";
        КонецЕсли;
        если Выборка.Номер = "" Тогда
            Отказ = Истина;
            //сообщить ("У " + Выборка.Физлицо + " не заполнено поле Номер" );
            //ТекстЛога = ТекстЛога + ?(ПустаяСтрока(ТекстЛога), "", Символы.ПС) +  Выборка.Физлицо + " отсуствует Номер";
            СтрокаТаблицыЛогов = ТаблицаЛогов.Добавить();
            СтрокаТаблицыЛогов.Сотрудник = Выборка.Физлицо;
            СтрокаТаблицыЛогов.Поле = "Номер"     ;
            СтрокаТаблицыЛогов.Коментарий =  " не заполнено поле Номер";
        КонецЕсли;       
        если Выборка.ДатаВыдачи = Дата(1,1,1) Тогда
            Отказ = Истина;
            //сообщить ("У " + Выборка.Физлицо + " не заполнено поле Дата выдачи" );
            //ТекстЛога = ТекстЛога + ?(ПустаяСтрока(ТекстЛога), "", Символы.ПС) +  Выборка.Физлицо + " отсуствует Дата выдачи";
            СтрокаТаблицыЛогов = ТаблицаЛогов.Добавить();
            СтрокаТаблицыЛогов.Сотрудник = Выборка.Физлицо;
            СтрокаТаблицыЛогов.Поле = "Дата выдачи"   ;
            СтрокаТаблицыЛогов.Коментарий =  " не заполнено поле Дата выдачи";
        КонецЕсли;       
        если Выборка.КемВыдан = "" Тогда
            Отказ = Истина;
            //сообщить ("У " + Выборка.Физлицо + " не заполнено поле Кем выдан"  );
            //ТекстЛога = ТекстЛога + ?(ПустаяСтрока(ТекстЛога), "", Символы.ПС) +  Выборка.Физлицо + " отсуствует Кем выдан";
            СтрокаТаблицыЛогов = ТаблицаЛогов.Добавить();
            СтрокаТаблицыЛогов.Сотрудник = Выборка.Физлицо;
            СтрокаТаблицыЛогов.Поле = "Кем выдан"  ;
            СтрокаТаблицыЛогов.Коментарий =  " не заполнено поле Кем выдан";
        КонецЕсли;
        если Выборка.ДатаРождения = Дата(1,1,1) Тогда
            Отказ = Истина;
            //сообщить ("У " + Выборка.Физлицо + " не заполнено поле Дата рождения"  );
            //ТекстЛога = ТекстЛога + ?(ПустаяСтрока(ТекстЛога), "", Символы.ПС) +  Выборка.Физлицо + " отсуствует Дата рождения";
            СтрокаТаблицыЛогов = ТаблицаЛогов.Добавить();
            СтрокаТаблицыЛогов.Сотрудник = Выборка.Физлицо;
            СтрокаТаблицыЛогов.Поле = "Дата рождения" ;
            СтрокаТаблицыЛогов.Коментарий =  " не заполнено поле Дата рождения";
        КонецЕсли;       
        если Выборка.ТабНомер = "" Тогда
            Отказ = Истина;
            //сообщить ("У " + Выборка.Физлицо + " не заполнено поле Табельный номер"  );
            //ТекстЛога = ТекстЛога + ?(ПустаяСтрока(ТекстЛога), "", Символы.ПС) +  Выборка.Физлицо + " отсуствует Табельный номер";
            СтрокаТаблицыЛогов = ТаблицаЛогов.Добавить();
            СтрокаТаблицыЛогов.Сотрудник = Выборка.Физлицо;
            СтрокаТаблицыЛогов.Поле = "Табельный номер";
            СтрокаТаблицыЛогов.Коментарий =  " не заполнено поле Табельный номер";
        КонецЕсли;       
        //если Выборка.ИНН = "" Тогда
        //    Отказ = Истина;
        //    сообщить ("У " + Выборка.Физлицо + " не заполнено поле ИНН"  );
        //    ТекстЛога = ТекстЛога + ?(ПустаяСтрока(ТекстЛога), "", Символы.ПС) +  Выборка.Физлицо + " отсуствует ИНН";
        //КонецЕсли;
        если Выборка.КодМВД = "" Тогда
            Отказ = Истина;
            //сообщить ("У " + Выборка.Физлицо + " не заполнено поле Вид документа"  );
            //ТекстЛога = ТекстЛога + ?(ПустаяСтрока(ТекстЛога), "", Символы.ПС) +  Выборка.Физлицо + " отсуствует Вид документа";
            СтрокаТаблицыЛогов = ТаблицаЛогов.Добавить();
            СтрокаТаблицыЛогов.Сотрудник = Выборка.Физлицо;
            СтрокаТаблицыЛогов.Поле = "Вид документа";
            СтрокаТаблицыЛогов.Коментарий =  " не заполнено поле Вид документа";
        КонецЕсли;       
        если Выборка.МестоРождения = "" Тогда
            //сообщить ("У " + Выборка.Физлицо + " не заполнено поле Место рождения"  );
            Отказ = Истина;
            //ТекстЛога = ТекстЛога + ?(ПустаяСтрока(ТекстЛога), "", Символы.ПС) +  Выборка.Физлицо + " отсуствует Место рождения";
            СтрокаТаблицыЛогов = ТаблицаЛогов.Добавить();
            СтрокаТаблицыЛогов.Сотрудник = Выборка.Физлицо;
            СтрокаТаблицыЛогов.Поле = "Место рождения" ;
            СтрокаТаблицыЛогов.Коментарий =  " не заполнено поле Место рождения";
        КонецЕсли;       
       
       
        ДБФ.CLNT_FNAME   = Выборка.Фамилия                                ;
        ДБФ.CLNT_INAME   = Выборка.Имя                                    ;
        ДБФ.CLNT_ONAME   = Выборка.Отчество                               ;
        ДБФ.CLNT_SPAS    = Выборка.Серия                                  ;
        ДБФ.CLNT_NPAS    = Выборка.Номер                                  ;
        ДБФ.CLNT_DPAS    = Выборка.ДатаВыдачи                             ;
        ДБФ.CLNT_PPAS    = Выборка.КемВыдан                               ;
        ДБФ.BIRTHDAY     = Выборка.ДатаРождения                           ;
        ДБФ.TAB_N        = Выборка.ТабНомер                               ;
        ДБФ.INN          = Выборка.ИНН                                    ;
        ДБФ.FIL          = Объект.ЗарплатныйПроект.ФилиалОтделенияБанка   ;
        ДБФ.CLNT_CPPAS   = Выборка.КодПодразделения                       ;
        ДБФ.DOC_TYPE     = Выборка.ВидДокумента                           ;
        ДБФ.BIRTHPLACE   = Выборка.МестоРождения                          ;
       
        ЗапросВн = Новый Запрос;
        ЗапросВн.Текст =
        "ВЫБРАТЬ
        |    ФизическиеЛицаКонтактнаяИнформация.Ссылка,
        |    ФизическиеЛицаКонтактнаяИнформация.НомерСтроки,
        |    ФизическиеЛицаКонтактнаяИнформация.Тип,
        |    ФизическиеЛицаКонтактнаяИнформация.Вид,
        |    ФизическиеЛицаКонтактнаяИнформация.Представление,
        |    ФизическиеЛицаКонтактнаяИнформация.ЗначенияПолей,
        |    ФизическиеЛицаКонтактнаяИнформация.Страна,
        |    ФизическиеЛицаКонтактнаяИнформация.Регион,
        |    ФизическиеЛицаКонтактнаяИнформация.Город,
        |    ФизическиеЛицаКонтактнаяИнформация.АдресЭП,
        |    ФизическиеЛицаКонтактнаяИнформация.ДоменноеИмяСервера,
        |    ФизическиеЛицаКонтактнаяИнформация.НомерТелефона,
        |    ФизическиеЛицаКонтактнаяИнформация.НомерТелефонаБезКодов,
        |    ФизическиеЛицаКонтактнаяИнформация.ВидДляСписка
        |ИЗ
        |    Справочник.ФизическиеЛица.КонтактнаяИнформация КАК ФизическиеЛицаКонтактнаяИнформация
        |ГДЕ
        |    ФизическиеЛицаКонтактнаяИнформация.Ссылка = &ФизЛицо";
       
        ЗапросВн.УстановитьПараметр("ФизЛицо", Выборка.ФизЛицо);
       
        ТаблицаКонтактов = ЗапросВн.Выполнить().Выгрузить();
       
        Для Каждого Строка из ТаблицаКонтактов Цикл
           
            Если Строка.Вид = Справочники.ВидыКонтактнойИнформации.ТелефонМобильныйФизическиеЛица Тогда
                ДБФ.PHONE        = Строка.Представление;
            ИначеЕсли Строка.Вид = Справочники.ВидыКонтактнойИнформации.ТелефонМобильныйФизическиеЛица Тогда
                ДБФ.PHONE_M      = Строка.Представление;
            ИначеЕсли Строка.Вид = Справочники.ВидыКонтактнойИнформации.ТелефонРабочийФизическиеЛица Тогда
                ДБФ.PHONE_H      = Строка.Представление;
            ИначеЕсли Строка.Вид = Справочники.ВидыКонтактнойИнформации.ТелефонДомашнийФизическиеЛица Тогда
                ДБФ.PHONE_F      = Строка.Представление;
            ИначеЕсли Строка.Вид = Справочники.ВидыКонтактнойИнформации.АдресПоПропискеФизическиеЛица Тогда
                //ОбъектXDTO = УправлениеКонтактнойИнформациейСлужебный.КонтактнаяИнформацияИзXML(Строка.ЗначенияПолей);
               
                ОбъектXDTO = УправлениеКонтактнойИнформациейСлужебный.КонтактнаяИнформацияИзXML(Строка.ЗначенияПолей);           
                Индекс = Сред(Строка.ЗначенияПолей, Найти(Строка.ЗначенияПолей, "ТипАдрЭл="+""""+"10100000")+30, 6);
               
                Дом = Сред(Строка.ЗначенияПолей, Найти(Строка.ЗначенияПолей, "Тип="+""""+"1010")+21, 2);
                Квартира = Сред(Строка.ЗначенияПолей, Найти(Строка.ЗначенияПолей, "Тип="+""""+"2010")+21, 2);
                Дом = СтрЗаменить(Дом,"""","");
                Квартира = СтрЗаменить(Квартира,"""","");
                               
                //Индекс = Сред(Строка.Представление, Найти(Строка.Представление, ",")+2,6);
                //ВремСтрока = Сред(Строка.Представление,СтрНайти(Строка.Представление, "дом"),(СтрДлина(Строка.Представление)-СтрНайти(Строка.Представление, "дом")+1));
                //
                //дом = СокрЛП(Сред(ВремСтрока,СтрНайти(ВремСтрока, "дом")+3,?(СтрНайти(ВремСтрока,",") = 0, СтрДлина(ВремСтрока)-СтрНайти(ВремСтрока, "дом"),СтрНайти(ВремСтрока,",")-3)));
                //дом = СтрЗаменить(Дом,"№","");
                //дом = СтрЗаменить(Дом,",","");
                //Дом = СокрЛП(Дом);
                //
                //квартира = СокрЛП(Сред(ВремСтрока,СтрНайти(ВремСтрока, "квартира")+8,СтрДлина(ВремСтрока)-СтрНайти(ВремСтрока, "квартира")));
                //квартира = СтрЗаменить(квартира,"№","");
                //квартира = СтрЗаменить(квартира,",","");
                //квартира = СокрЛП(квартира);               
                СтрокаАдр = Индекс + "," + ОбъектXDTO.Состав.состав.СубъектРФ + ",," + ОбъектXDTO.Состав.состав.город + "," + ОбъектXDTO.Состав.состав.ВнутригРайон + "," + ОбъектXDTO.Состав.состав.улица + "," + дом + ",," + Квартира;
               
                ДБФ.CLNT_ADR    = СтрокаАдр;
            ИначеЕсли Строка.Вид = Справочники.ВидыКонтактнойИнформации.EMailФизическиеЛица Тогда
                ДБФ.CLNT_EMAIL   = Строка.Представление;
            ИначеЕсли Строка.Вид = Справочники.ВидыКонтактнойИнформации.АдресМестаПроживанияФизическиеЛица Тогда   
                ОбъектXDTO = УправлениеКонтактнойИнформациейСлужебный.КонтактнаяИнформацияИзXML(Строка.ЗначенияПолей);
               
                Индекс = Сред(Строка.ЗначенияПолей, Найти(Строка.ЗначенияПолей, "ТипАдрЭл="+""""+"10100000")+30, 6);
               
                Дом = Сред(Строка.ЗначенияПолей, Найти(Строка.ЗначенияПолей, "Тип="+""""+"1010")+21, 2);
                Квартира = Сред(Строка.ЗначенияПолей, Найти(Строка.ЗначенияПолей, "Тип="+""""+"2010")+21, 2);
                Дом = СтрЗаменить(Дом,"""","");
                Квартира = СтрЗаменить(Квартира,"""","");
               
                //Индекс = Лев(Строка.Представление,6);
                //ВремСтрока = Сред(Строка.Представление,СтрНайти(Строка.Представление, "дом"),(СтрДлина(Строка.Представление)-СтрНайти(Строка.Представление, "дом")));
                //
                //дом = СокрЛП(Сред(ВремСтрока,СтрНайти(ВремСтрока, "дом")+3,?(СтрНайти(ВремСтрока,",") = 0, СтрДлина(ВремСтрока)-СтрНайти(ВремСтрока, "дом"),СтрНайти(ВремСтрока,",")-3)));
                //дом = СтрЗаменить(Дом,"№","");
                //дом = СтрЗаменить(Дом,",","");
                //Дом = СокрЛП(Дом);
                //
                //квартира = СокрЛП(Сред(ВремСтрока,СтрНайти(ВремСтрока, "квартира")+8,СтрДлина(ВремСтрока)-СтрНайти(ВремСтрока, "квартира")));
                //квартира = СтрЗаменить(квартира,"№","");
                //квартира = СтрЗаменить(квартира,",","");
                //квартира = СокрЛП(квартира);               
                СтрокаАдр = Индекс + "," + ОбъектXDTO.Состав.состав.СубъектРФ + ",," + ОбъектXDTO.Состав.состав.город + "," + ОбъектXDTO.Состав.состав.ВнутригРайон + "," + ОбъектXDTO.Состав.состав.улица + "," + дом + ",," + Квартира;
               
                ДБФ.CLNT_PADR    = СтрокаАдр;
            КонецЕсли;
           
        КонецЦикла;
        Если СокрЛП(ДБФ.CLNT_PADR) = "" тогда
            сообщить ("У " + Выборка.Физлицо + " не заполнено поле Адрес прописки"  );
            Отказ = Истина;
        КонецЕсли;   
       
        Если Не отказ Тогда
            ДБФ.Записать();
        КонецЕсли;
       
    КонецЦикла;
    Если Не отказ Тогда
        ДБФ.Записать();
        ДБФ.ЗакрытьФайл();
    КонецЕсли;
    Если отказ Тогда
        ДБФ.ЗакрытьФайл();
        УдалитьФайлы(Объект.КаталогВыгрузки+ "\zk"+имяфайла+".dbf");
    КонецЕсли;
   
    //Если НЕ  ПустаяСтрока(ТекстЛога) Тогда
    //Если ТаблицаЛогов.Количество() <> 0 Тогда
        ТабДокЛог = Новый ТабличныйДокумент;
        ПоказатьЛогНаСервере(ТабДокЛог, "Лог Заказ ПК", ТаблицаЛогов);
        //Лог.УстановитьТекст(ТекстЛога);
        //Лог.Записать(Объект.КаталогВыгрузки+ "\Upload_DBF_Log.txt");
        Возврат (ТабДокЛог);
    //КонецЕсли;
КонецЕсли;

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

могу скинуть саму обработку

Владимирcrow

ОбъектXDTO = УправлениеКонтактнойИнформациейСлужебный.КонтактнаяИнформацияИзXML(Строка.ЗначенияПолей);

нужно было добавить УправлениеКонтактнойИнформациейЛокализация

Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск