Функция ТЗизБП(Знач Организация)
Выборка = Справочники.ПараметрыПодключенияКСервисуДЗФЛ.Выбрать();
Пока Выборка.Следующий()
Цикл
Если Выборка.ПометкаУдаления = Ложь И
Выборка.Организация
= Организация Тогда
Соединение
= Новый HTTPСоединение(Выборка.АдресПубликации,
Выборка.Порт, Выборка.Логин,
Выборка.Пароль,,30,,);
ДатаНачала = НачалоГода(ТекущаяДата());
ДатаОкончания = ТекущаяДата();
Заголовки =
Новый Соответствие;
Заголовки.Вставить("Content-Type", "application/json");
Запрос =
Новый HTTPЗапрос("/" + Выборка.Наименование + "/hs/DZFL/tz/" + ДатаНачала +
"/" + ДатаОкончания, Заголовки);
Результат2
= Соединение.ВызватьHTTPМетод("GET", Запрос);
Если
Результат2.КодСостояния = 200 Тогда
ТЗ
=
ЗначениеИзСтрокиВнутр(Результат2.ПолучитьТелоКакСтроку(КодировкаТекста.UTF8));
Прервать;
Иначе
Возврат
Неопределено;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Если ЗначениеЗаполнено(ТЗ)
Тогда
Возврат ТЗ;
Иначе
Возврат Неопределено;
КонецЕсли;
КонецФункции
Функция ОтчетСверкиВТабДок(Знач ДатаДокументаНачало, Знач ДатаДокументаКонец, Знач Организация)
МойЗапрос
= Новый Запрос;
МойЗапрос.Текст
= "ВЫБРАТЬ
| 1 КАК ДокЕсть,
| ПоступлениеНаРасчетныйСчет.ДатаДокумента
КАК ДатаДокумента,
| ПоступлениеНаРасчетныйСчет.НомерДокумента
КАК НомерДокумента,
| ПоступлениеНаРасчетныйСчет.СуммаДокумента
КАК СуммаДокумента,
| ПоступлениеНаРасчетныйСчет.НомерСП
КАК НомерСП,
| ПоступлениеНаРасчетныйСчет.ДатаСП
КАК ДатаСП,
| ПоступлениеНаРасчетныйСчет.НомерСудебногоУчастка
КАК НомерСудебногоУчастка,
| ПоступлениеНаРасчетныйСчет.Проведен
КАК Проведен,
| ПоступлениеНаРасчетныйСчет.Организация
КАК Организация
|ПОМЕСТИТЬ втБП
|ИЗ
| &ПРС КАК ПоступлениеНаРасчетныйСчет
|ГДЕ
| ПоступлениеНаРасчетныйСчет.ДатаДокумента
>= &ДатаДокументаНачало
| И ПоступлениеНаРасчетныйСчет.ДатаДокумента
<= &ДатаДокументаКонец
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| 1 КАК ДокЕсть,
| CRM_БизнесПроцессВзысканоПоИП.Период
КАК ДатаДокумента,
| CRM_БизнесПроцессВзысканоПоИП.НомерДокумента КАК НомерДокумента,
| CRM_БизнесПроцессВзысканоПоИП.Сумма
КАК СуммаДокумента,
| CRM_БизнесПроцессВзысканоПоИП.Ссылка.НомерДелаСП
КАК НомерСП,
| CRM_БизнесПроцессВзысканоПоИП.Ссылка.ДатаПодачиВСудСП
КАК ДатаСП,
| CRM_БизнесПроцессВзысканоПоИП.Ссылка.СудебныйУчасток.Номер
КАК НомерСудебногоУчастка,
| ИСТИНА КАК Проведен,
| CRM_БизнесПроцессВзысканоПоИП.Ссылка.Истец.Наименование
КАК Организация,
| CRM_БизнесПроцессВзысканоПоИП.Ссылка
КАК БизнесПроцесс
|ПОМЕСТИТЬ втДЗФЗ
|ИЗ
| РегистрСведений.РезультатОбменаЧерезСервисДЗФЛ
КАК РезультатОбменаЧерезСервисДЗФЛ,
| БизнесПроцесс.CRM_БизнесПроцесс.ВзысканоПоИП
КАК CRM_БизнесПроцессВзысканоПоИП
|ГДЕ
| CRM_БизнесПроцессВзысканоПоИП.Период
>= &ДатаДокументаНачало
| И
РезультатОбменаЧерезСервисДЗФЛ.ДатаДокумента <=
&ДатаДокументаКонец
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ЕСТЬNULL(втБП.ДокЕсть, 0) КАК ДокЕстьБД,
| ЕСТЬNULL(втДЗФЗ.ДокЕсть, 0) КАК ДокЕстьДЗФЗ,
| втБП.ДатаДокумента КАК ДатаДокумента,
| втБП.НомерДокумента КАК НомерДокумента,
| ЕСТЬNULL(втБП.СуммаДокумента, 0) КАК Сумма,
| втБП.НомерСП КАК НомерСП,
| втБП.ДатаСП КАК ДатаСП,
| втБП.НомерСудебногоУчастка КАК НомерСудебногоУчастка,
| втБП.Проведен КАК Проведен,
| втБП.Организация КАК Организация,
| втДЗФЗ.БизнесПроцесс КАК БизнесПроцесс
|ПОМЕСТИТЬ срСуммы
|ИЗ
| втБП КАК втБП
| ЛЕВОЕ СОЕДИНЕНИЕ втДЗФЗ
КАК втДЗФЗ
| ПО втБП.ДатаДокумента = втДЗФЗ.ДатаДокумента
| И втБП.НомерДокумента
= втДЗФЗ.НомерДокумента
| И втБП.СуммаДокумента
= втДЗФЗ.СуммаДокумента
| И втБП.НомерСП
= втДЗФЗ.НомерСП
| И втБП.ДатаСП
= втДЗФЗ.ДатаСП
| И втБП.НомерСудебногоУчастка
= втДЗФЗ.НомерСудебногоУчастка
| И втБП.Организация
= втДЗФЗ.Организация
| И втБП.Проведен
= втДЗФЗ.Проведен
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| ЕСТЬNULL(втБП.ДокЕсть, 0),
| ЕСТЬNULL(втДЗФЗ.ДокЕсть, 0),
| втДЗФЗ.ДатаДокумента,
| втДЗФЗ.НомерДокумента,
| ЕСТЬNULL(втДЗФЗ.СуммаДокумента, 0),
| втДЗФЗ.НомерСП,
| втДЗФЗ.ДатаСП,
| втДЗФЗ.НомерСудебногоУчастка,
| втДЗФЗ.Проведен,
| втДЗФЗ.Организация,
| втДЗФЗ.БизнесПроцесс
|ИЗ
| втБП КАК втБП
| ПРАВОЕ СОЕДИНЕНИЕ втДЗФЗ
КАК втДЗФЗ
| ПО втБП.ДатаДокумента = втДЗФЗ.ДатаДокумента
| И втБП.НомерДокумента
= втДЗФЗ.НомерДокумента
| И втБП.СуммаДокумента
= втДЗФЗ.СуммаДокумента
| И втБП.НомерСП
= втДЗФЗ.НомерСП
| И
втБП.ДатаСП = втДЗФЗ.ДатаСП
| И втБП.НомерСудебногоУчастка
= втДЗФЗ.НомерСудебногоУчастка
| И втБП.Организация
= втДЗФЗ.Организация
| И втБП.Проведен
= втДЗФЗ.Проведен
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ВЫБОР
| КОГДА срСуммы.ДокЕстьБД
= 1
| ТОГДА ""БП""
| КОГДА срСуммы.ДокЕстьДЗФЗ
= 1
| ТОГДА "" ДЗФЗ""
| КОНЕЦ КАК База,
| срСуммы.ДатаДокумента КАК ДатаДокумента,
| срСуммы.НомерДокумента КАК НомерДокумента,
| срСуммы.Сумма КАК Сумма,
| срСуммы.НомерСП КАК НомерСП,
| срСуммы.ДатаСП КАК ДатаСП,
| срСуммы.НомерСудебногоУчастка КАК НомерСудебногоУчастка,
| срСуммы.Проведен КАК Проведен,
| срСуммы.Организация КАК Организация,
| срСуммы.БизнесПроцесс КАК БизнесПроцесс
|ИЗ
| срСуммы КАК срСуммы
|ГДЕ
| срСуммы.ДокЕстьБД <> срСуммы.ДокЕстьДЗФЗ";
ТЗ = ТЗизБП(Организация);
Если НЕ ЗначениеЗаполнено(ТЗ)
Тогда
Возврат Неопределено;
КонецЕсли;
МойЗапрос.УстановитьПараметр("ПРС",
ТЗ);
МойЗапрос.УстановитьПараметр("ДатаДокументаНачало", ДатаДокументаНачало);
МойЗапрос.УстановитьПараметр("ДатаДокументаКонец", ДатаДокументаКонец);
Результат = МойЗапрос.Выполнить();
Если Результат.Пустой()
Тогда
Возврат Неопределено;
КонецЕсли;
Выгрузка = Результат.Выгрузить();
//Программное формирование отчета
СКД=Отчеты.СверкаДокументаПРСизБазыДЗФЗсБазойБП.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
Настройки=СКД.НастройкиПоУмолчанию;
//Задаем параметры
Параметр1 = Настройки.ПараметрыДанных.Элементы.Найти("ДатаДокументаНачало");
Параметр1.Значение = ДатаДокументаНачало;
Параметр1.Использование = Истина;
Параметр2 = Настройки.ПараметрыДанных.Элементы.Найти("ДатаДокументаКонец");
Параметр2.Значение = ДатаДокументаКонец;
Параметр2.Использование =
Истина;
Параметр3 = Настройки.ПараметрыДанных.Элементы.Найти("Организация");
Параметр3.Значение = Организация;
Параметр3.Использование =
Истина;
ДанныеРасшифровки
= Новый ДанныеРасшифровкиКомпоновкиДанных;
КомпоновщикМакета
= Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки
= КомпоновщикМакета.Выполнить(СКД, Настройки, ДанныеРасшифровки);
ВнешнийНаборДанных
= Новый Структура("НаборДанных1", Выгрузка);
ПроцессорКомпоновкиДанных
= Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешнийНаборДанных,
ДанныеРасшифровки);
ТабДок =
Новый ТабличныйДокумент();
ПроцессорВывода
= Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ТабДок);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
Возврат ТабДок;
КонецФункции
&НаСервере
Процедура
ОтправитьПочтовоеСообщениеСОтчетом(Знач Почта, Знач Сообщение, Знач ИмяФайлаОтчета, Знач ПутьКОтчету)
Попытка
АдресПолучателя
= Почта;
АдресОтвета
= "";
ТемаПисьма
= Сообщение;
ТекстПисьма
= Сообщение;
МодульРаботаСПочтовымиСообщениями
= ОбщегоНазначения.ОбщийМодуль("РаботаСПочтовымиСообщениями");
УчетнаяЗапись
= МодульРаботаСПочтовымиСообщениями.СистемнаяУчетнаяЗапись();
ПараметрыПисьма
= Новый Структура;
ПараметрыПисьма.Вставить("Кому",
АдресПолучателя);
ПараметрыПисьма.Вставить("УчетнаяЗапись", УчетнаяЗапись);
ПараметрыПисьма.Вставить("АдресОтвета", АдресОтвета);
ПараметрыПисьма.Вставить("Тема",
ТемаПисьма);
ПараметрыПисьма.Вставить("Тело",
ТекстПисьма);
ПараметрыПисьма.Вставить("ТипТекста", "ПростойТекст");
Вложения = Новый Соответствие;
Вложения.Вставить(ИмяФайлаОтчета, Новый ДвоичныеДанные(ПутьКОтчету));
ПараметрыПисьма.Вставить("Вложения",
Вложения);
РаботаСПочтовымиСообщениями.ОтправитьПочтовоеСообщение(УчетнаяЗапись,
ПараметрыПисьма);
Исключение
КонецПопытки;
КонецПроцедуры
&НаСервере
Процедура
ДляРегламентногоЗадания()
Экспорт
Выборка = Справочники.СписокРассылкиОтчетаСверки.Выбрать();
Пока Выборка.Следующий()
Цикл
Если Выборка.ПометкаУдаления Тогда
Продолжить;
КонецЕсли;
ИмяФайлаОтчета
= "Отчет сверки.xls";
ВремФайл
= КаталогВременныхФайлов() + ИмяФайлаОтчета;
ТекстПисьмаИЗаголовок
= "Сверка документа ""Поступление на расчетный
счет"" из базы ДЗФЗ с базой БП";
ТабДок
= ОтчетСверкиВТабДок(НачалоГода(ТекущаяДата()), ТекущаяДата(), Выборка.Организация);
Если ТабДок <> Неопределено
Тогда
ТабДок.Записать(ВремФайл,
ТипФайлаТабличногоДокумента.XLS);
ОтправитьПочтовоеСообщениеСОтчетом(Выборка.Почта, ТекстПисьмаИЗаголовок,
ИмяФайлаОтчета, ВремФайл);
УдалитьФайлы(ВремФайл);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
|