Функция ПолучитьПоказателиИзБазы(Вариант)
Если Вариант = 1 тогда
ТекстЗапроса=
"";
КонецЕсли;
возврат ТекстЗапроса;
КонецФункции
функция ПолучитьСписокЦП(Показатель)
СписокЦП
= новый списокЗначений;
Если Показатель =
"Собираемость" тогда
СписокЦП.Добавить("000001234");
КонецЕсли;
Возврат СписокЦП;
КонецФункции
Процедура
ЗагрузитьДанныеИзФайлаНаСервере(ПолноеИмяФайла, КороткоеИмяФайла)
ЧтениеJSON
= Новый ЧтениеJSON;
ЧтениеJSON.ОткрытьФайл(ПолноеИмяФайла);
Попытка
СтруктураДанных
= ПрочитатьJSON(ЧтениеJSON);
ЧтениеJSON.Закрыть();
Исключение
КонецПопытки;
Показатель = СтруктураДанных.Показатель;
НачДата =
СтруктураДанных.ДатаНачала;
КонДата =
СтруктураДанных.ДатаОкончания;
ДанныеПоказателя
= СтруктураДанных.Данные;
СписокЦП
= ПолучитьСписокЦП(Показатель);
Если показатель = "ЗаявлениеВБанк" Тогда
Вариант = 3;
Иначе
Вариант = 1;
КонецЕсли;
ТекстЗапроса
= ПолучитьПоказателиИзБазы(Вариант);
Запрос = новый Запрос;
Запрос.Текст
= ТекстЗапроса;
Запрос.УстановитьПараметр("НачалоПериода", НачалоКвартала(НачДата));
Запрос.УстановитьПараметр("ОкончаниеПериода", КонецКвартала(кондата));
Запрос.УстановитьПараметр("СписокКодов", списокцп);
ТЗДанные
= Запрос.Выполнить().Выгрузить();
Индекс = ДанныеПоказателя.ВГраница();
Пока Индекс >= 0 Цикл
Если Показатель =
"Собираемость" тогда
стр = ДанныеПоказателя[Индекс];
ИНН = стр.инн;
ко = стр.ко;
до =
стр.до;
ПокСтр = стр.показатель;
стрпоиска = Новый Структура;
Если ПокСтр = "Собираемость" Тогда
СтрПоиска.Вставить("ЦелевойПоказатель",
Справочники.ЦелевыеПоказатели.НайтиПоКоду("00000123"));
КонецЕсли;
рез = тзДанные.НайтиСтроки( стрПоиска);
Для сч=0 по
рез.ВГраница() Цикл
ЦП
= рез[сч].ЦелевойПоказатель;
ЦПКод = рез[сч].ЦелевойПоказатель.код;
ПериодичностьПланирования = рез[сч].ПериодичностьПланирования;
Сотрудник
= рез[сч].Сотрудник;
ПланОборот = рез[сч].ПланОборот;
Организация
= рез[сч].СтруктураКомпанииОрганизация;
Должность
= рез[сч].СтруктураКомпанииДолжность;
Подразделение
= рез[сч].СтруктураКомпанииПодразделение;
СтруктураКомпании = рез[сч].СтруктураКомпании;
ИНН
= рез[сч].инн;
ГоловнойИНН = рез[сч].ГоловнойИНН;
Док
= Документы.ВводФактовВыполнения.СоздатьДокумент();
Док.Дата = КонДата;
факты
= док.Факты;
строкаТЗ = факты.Добавить();
строкатз.СтруктураКомпании = СтруктураКомпании;
строкатз.Факт = ко;
строкатз.ЦелевойПоказатель = цп;
строкаТЗ.Период = КонДата;
строкаТЗ.комментарий = "загружено
автоматически";
Попытка
Док.Записать(РежимЗаписиДокумента.Проведение);
Исключение
Сообщение
= Новый СообщениеПользователю;
Сообщение.Текст = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
Сообщение.Сообщить();
КонецПопытки;
КонецЦикла;
КонецЕсли;
Индекс = Индекс-1;
КонецЦикла;
КонецПроцедуры
Процедура
ЗаполнитьПоказатели(НачДата, КонДата)
КаталогТемп
= Константы.KPI_КаталогДляОбмена.Получить();
НайденныеФайлы
= НайтиФайлы(КаталогТемп,
"*.txt");
Для Каждого Фл
из НайденныеФайлы Цикл
ПолныйПуть
= КаталогТемп + "\" + Фл.Имя;
ЗагрузитьДанныеИзФайлаНаСервере(ПолныйПуть,Фл.ИмяБезРасширения, начДата,КонДата);
КонецЦикла;
Для Каждого Фл
из НайденныеФайлы Цикл
УдалитьФайлы(Фл.ПолноеИмя);
КонецЦикла;
КонецПроцедуры
//////////////////////////////////////////////////////////////////////////////////////
Процедура
ДляРегламентногоЗадания () Экспорт
НачДата
= НачалоКвартала(Началомесяца(ТекущаяДата())-10);
конДата
= КонецМесяца(Началомесяца(ТекущаяДата())-10);
ЗаполнитьПоказатели(НачДата, КонДата);
КонецПроцедуры
|