vladimir_crow
06.11.2022, 13:51
с переходом на 1С:Предприятие 8.3 (8.3.20.2076)
Зарплата и управление персоналом, редакция 3.1 (3.1.24.25)
ругается
Метод объекта не обнаружен (КонтактнаяИнформацияИзXML)
{ВнешняяОбработка.ОбменСПА ОАКБАРСБАНКПоЗарплатномуП роекту.Форма.Форма.Форма(2437 )}:ОбъектXDTO = УправлениеКонтактнойИнфор мациейСлужебный.Контактна� �ИнформацияИзXML(Строка.Знач енияПолей);
{ВнешняяОбработка.ОбменСПА ОАКБАРСБАНКПоЗарплатномуП роекту.Форма.Форма.Форма(2747 )}:Данные =
ВыгрузитьВедомостиЗПнаПКН аСервереДБФ();
&НаСервере
функция СписокСотрудниковВыгрузит ьПДФНаСервере(ТабДокЛог, Отказ)
отказ = Ложь;
Если не ЗначениеЗаполнено(Объект.Д атаСоставленияДоверенност и) Тогда
Отказ = Истина;
Сообщить("Не заполнено обязательное поле Дата составления доверенности");
КонецЕсли;
Если не ЗначениеЗаполнено(Объект.З арплатныйПроект) Тогда
Отказ = Истина;
Сообщить("Не заполнено обязательное поле Зарплатный проект");
КонецЕсли;
Если не ЗначениеЗаполнено(Объект.О рганизация) Тогда
Отказ = Истина;
Сообщить("Не заполнено обязательное поле Организация");
КонецЕсли;
Если не ЗначениеЗаполнено(Объект.К аталогВыгрузки) Тогда
Отказ = Истина;
Сообщить("Не заполнено обязательное поле Каталог выгрузки");
КонецЕсли;
Если не Отказ тогда
ТаблицаФизЛиц = Новый ТаблицаЗначений;
ТаблицаФизЛиц.Колонки.Доба вить("ФизЛицо", Новый ОписаниеТипов("СправочникСсылка.Физическ� �еЛица"));
для Каждого Строка из Объект.СписокСотрудников Цикл
НовСтрока = ТаблицаФизЛиц.Добавить();
НовСтрока.ФизЛицо = Строка.Сотрудник.Физическо еЛицо;
КонецЦикла;
ТаблицаФизЛиц.Свернуть("ФизЛицо");
Имяфайла= Лев(ТекущаяДата(),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");
Возврат (ТабДокЛог);
//КонецЕсли;
КонецЕсли;
КонецФункции
Зарплата и управление персоналом, редакция 3.1 (3.1.24.25)
ругается
Метод объекта не обнаружен (КонтактнаяИнформацияИзXML)
{ВнешняяОбработка.ОбменСПА ОАКБАРСБАНКПоЗарплатномуП роекту.Форма.Форма.Форма(2437 )}:ОбъектXDTO = УправлениеКонтактнойИнфор мациейСлужебный.Контактна� �ИнформацияИзXML(Строка.Знач енияПолей);
{ВнешняяОбработка.ОбменСПА ОАКБАРСБАНКПоЗарплатномуП роекту.Форма.Форма.Форма(2747 )}:Данные =
ВыгрузитьВедомостиЗПнаПКН аСервереДБФ();
&НаСервере
функция СписокСотрудниковВыгрузит ьПДФНаСервере(ТабДокЛог, Отказ)
отказ = Ложь;
Если не ЗначениеЗаполнено(Объект.Д атаСоставленияДоверенност и) Тогда
Отказ = Истина;
Сообщить("Не заполнено обязательное поле Дата составления доверенности");
КонецЕсли;
Если не ЗначениеЗаполнено(Объект.З арплатныйПроект) Тогда
Отказ = Истина;
Сообщить("Не заполнено обязательное поле Зарплатный проект");
КонецЕсли;
Если не ЗначениеЗаполнено(Объект.О рганизация) Тогда
Отказ = Истина;
Сообщить("Не заполнено обязательное поле Организация");
КонецЕсли;
Если не ЗначениеЗаполнено(Объект.К аталогВыгрузки) Тогда
Отказ = Истина;
Сообщить("Не заполнено обязательное поле Каталог выгрузки");
КонецЕсли;
Если не Отказ тогда
ТаблицаФизЛиц = Новый ТаблицаЗначений;
ТаблицаФизЛиц.Колонки.Доба вить("ФизЛицо", Новый ОписаниеТипов("СправочникСсылка.Физическ� �еЛица"));
для Каждого Строка из Объект.СписокСотрудников Цикл
НовСтрока = ТаблицаФизЛиц.Добавить();
НовСтрока.ФизЛицо = Строка.Сотрудник.Физическо еЛицо;
КонецЦикла;
ТаблицаФизЛиц.Свернуть("ФизЛицо");
Имяфайла= Лев(ТекущаяДата(),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");
Возврат (ТабДокЛог);
//КонецЕсли;
КонецЕсли;
КонецФункции