|
&НаСервере
Функция ПолучитьСсылкуНаФизЛицо(Знач ФИО, Знач ЛС)
Запрос = Новый Запрос;
Запрос.Текст
=
"ВЫБРАТЬ
| Партнеры.УК_ФизЛицо
КАК Ссылка
|ИЗ
| Справочник.Партнеры
КАК Партнеры
|ГДЕ
| Партнеры.УК_ЛицевойСчетЕИРЦ
= &ЛС
| И Партнеры.УК_ФизЛицо.Наименование
= &ФИО";
Запрос.УстановитьПараметр("ЛС",
ЛС);
Запрос.УстановитьПараметр("ФИО",
ФИО);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Если Выборка.Следующий()
Тогда
Возврат Выборка.Ссылка;
Иначе
Возврат Неопределено;
КонецЕсли;
КонецФункции//ПолучитьСсылкуНаФизЛицо
Функция ДатаИзСтрокиГГГГММДД(Знач ДатаСтрока)
Если ДатаСтрока
= "" Тогда
Возврат Дата(1,1,1);
КонецЕсли;
МассивДат
= СтрРазделить(ДатаСтрока,
"-");
ДатаПреобразованная
= Дата(1,1,1);
Результат = Дата(1,1,1);
Если МассивДат.Количество()=3
Тогда
Попытка
Год = Число(МассивДат[0]);
Месяц = Число(МассивДат[1]);
День = Число(МассивДат[2]);
Если Год
< 3999 Тогда
// для записей вида 01.02.21
если
Год < 100 Тогда
Год = Год + 2000;
КонецЕсли;
ДатаПреобразованная = Дата(Год, Месяц, День);
КонецЕсли;
исключение
Возврат Результат;
КонецПопытки;
Результат = ДатаПреобразованная;
КонецЕсли;
Возврат Результат;
КонецФункции
Процедура
ПрочитатьJSONфайл(ПолноеИмяФайла)
ЧтениеJSON
= Новый ЧтениеJSON;
ЧтениеJSON.ОткрытьФайл(ПолноеИмяФайла);
Попытка
мПаспорт
= ПрочитатьJSON(ЧтениеJSON);
ЧтениеJSON.Закрыть();
Исключение
КонецПопытки;
Если ЗначениеЗаполнено(мПаспорт) Тогда
Для Каждого Эл Из мПаспорт Цикл
ФИО = СокрЛП(Эл.fullName);
мЛС = Эл.residentIds;
Если ЗначениеЗаполнено(мЛС) Тогда
Для
Каждого ЛС Из мЛС Цикл
ссФизЛицо = ПолучитьСсылкуНаФизЛицо(ФИО,
ЛС);
дДатаВыдачи
= ДатаИзСтрокиГГГГММДД(Эл.issueDate);
//========================
//Добавить
документ в РС
//========================
Если
ЗначениеЗаполнено(ссФизЛицо)
Тогда
МЗ
= РегистрыСведений.ДокументыФизическихЛиц.СоздатьМенеджерЗаписи();
МЗ.Физлицо = ссФизЛицо;//Измерение
МЗ.ВидДокумента = Справочники.ВидыДокументовФизическихЛиц.ПаспортРФ;//Измерение
МЗ.Период = ТекущаяДата();
Если
ЗначениеЗаполнено(дДатаВыдачи)
Тогда
МЗ.ДатаВыдачи = дДатаВыдачи;//Дата
КонецЕсли;
МЗ.КемВыдан = Эл.issuedBy;
МЗ.КодПодразделения = Эл.unitCode;
МЗ.Номер = Эл.number;
МЗ.Серия = Эл.series;
МЗ.УК_ИсточникДанных = Перечисления.УК_ИсточникиДанных.Недолжник;
МЗ.ЯвляетсяДокументомУдостоверяющимЛичность = Истина;
МЗ.СсылкаНаСкан = Эл.image;
Попытка
МЗ.Записать();
Исключение
КонецПопытки;
КонецЕсли;
//------------------------
КонецЦикла;//мЛС
КонецЕсли;
КонецЦикла;//мПаспорт
КонецЕсли;
КонецПроцедуры//ПрочитатьJSONфайл
&НаСервере
Функция ЗагрузитьФайлыСФТП(Каталог, ИмяФайла, Сервер, Порт, Пользователь, Пароль, SSL)
Попытка
Если SSL Тогда
ЗащСоед = Новый ЗащищенноеСоединениеOpenSSL(Неопределено, Неопределено);
FTPСоединение = Новый FTPСоединение(Сервер,
Порт, Пользователь, Пароль, Неопределено, Истина,
0, ЗащСоед);
Иначе
FTPСоединение = Новый FTPСоединение(Сервер,
Порт, Пользователь, Пароль, Неопределено, Истина,
0);
КонецЕсли;
Исключение
Возврат Неопределено;
КонецПопытки;
FTPСоединение.УстановитьТекущийКаталог("/");
КаталогТемп
= КаталогВременныхФайлов();
МассивФайлов
= FTPСоединение.НайтиФайлы(Каталог,
ИмяФайла, Ложь);
Если МассивФайлов.Количество()
= 0 Тогда
Возврат Неопределено;
КонецЕсли;
Для Каждого Фл
из МассивФайлов Цикл
ТемпФайл
= КаталогВременныхФайлов() + Фл.Имя;
Попытка
FTPСоединение.Получить(Фл.ПолноеИмя,
ТемпФайл);
ПрочитатьJSONфайл(ТемпФайл);
Исключение
КонецПопытки;
УдалитьФайлы(ТемпФайл);//Удаляем временный файл
FTPСоединение.Удалить(Фл.ПолноеИмя);//Удаляем файл на ФТП
КонецЦикла;
FTPСоединение
= Неопределено;
КонецФункции//ЗагрузитьФайлыСФТП
&НаСервере
Функция ПрочитатьНастройки()
Запрос = Новый Запрос;
Запрос.Текст
=
"ВЫБРАТЬ
| НастройкиДляЗагрузкиСФТП.Ссылка
КАК Ссылка,
| НастройкиДляЗагрузкиСФТП.ПометкаУдаления
КАК ПометкаУдаления,
| НастройкиДляЗагрузкиСФТП.Наименование
КАК Наименование,
| НастройкиДляЗагрузкиСФТП.Сервер
КАК Сервер,
| НастройкиДляЗагрузкиСФТП.Порт
КАК Порт,
| НастройкиДляЗагрузкиСФТП.Логин
КАК Логин,
| НастройкиДляЗагрузкиСФТП.Пароль
КАК Пароль,
| НастройкиДляЗагрузкиСФТП.Каталог
КАК Каталог,
| НастройкиДляЗагрузкиСФТП.SSL
КАК SSL
|ИЗ
| Справочник.НастройкиДляЗагрузкиСФТП
КАК НастройкиДляЗагрузкиСФТП
|ГДЕ
| НастройкиДляЗагрузкиСФТП.ПометкаУдаления
= ЛОЖЬ
| И НастройкиДляЗагрузкиСФТП.Наименование
= ""Загрузка паспортов""";
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Пока Выборка.Следующий()
Цикл
ЗагрузитьФайлыСФТП(Выборка.Каталог,
"*.json", Выборка.Сервер,
Выборка.Порт, Выборка.Логин,
Выборка.Пароль, Выборка.SSL);
КонецЦикла;
КонецФункции
////////////////////////////////////////////
Функция ДляРегламентногоЗадания()
Экспорт
ПрочитатьНастройки();
КонецФункции
|