Загрузка данных
Функция ДатаДобавитьДни(пДата, пКоличествоДней) Экспорт
мКоличествоСекундВСутках=60*60*24;
Возврат пДата+пКоличествоДней*мКоличествоСекундВСутках;
КонецФункции
Функция мОтборДобавитьОтборОставлятьПакетыЗаПоследниеДней(пОтбор, пОставлятьПакетыЗаПоследниеДней) // есть дубль в форме
лСтруктураПараметры=Новый Структура("ИдентификаторПользовательскойНастройки", "ОставлятьПакетыЗаПоследниеДней");
Если Не ЗначениеЗаполнено(пОставлятьПакетыЗаПоследниеДней) Тогда
ТсПлатформаМодули.Компоновка().ОтборУдалить(пОтбор, "Дата", лСтруктураПараметры);
Возврат Истина;
КонецЕсли;
лДатаОтбора=ДатаДобавитьДни(КонецДня(ТекущаяДата()), -пОставлятьПакетыЗаПоследниеДней); // ТсПлатформаМодули.Общий().
лСтруктураПараметры.Вставить("ВидСравнения", ВидСравненияКомпоновкиДанных.МеньшеИлиРавно);
ТсПлатформаМодули.Компоновка().ОтборУстановить(пОтбор, "Дата", лДатаОтбора, лСтруктураПараметры);
КонецФункции
Функция ТекстЗапросаПолучить() Экспорт
Возврат "ВЫБРАТЬ * ИЗ Справочник.ТсОбменПакеты КАК ИсточникДанных";
КонецФункции
Функция ВыполнитьОбработку() Экспорт // Для регламентного задания функция должна называться только так
лСКД=Новый СхемаКомпоновкиДанных;
лСтруктураПараметры=Новый Структура;
ТсПлатформаМодули.Компоновка().ДобавитьНаборДанныхЗапрос(лСКД, ТекстЗапросаПолучить());
лНастройкиКомпоновкиДанных=Новый НастройкиКомпоновкиДанных;
ТсПлатформаМодули.Компоновка().НастройкиДобавитьПоляГруппировки(лНастройкиКомпоновкиДанных, "Ссылка");
ТсПлатформаМодули.Компоновка().ОтборКопировать(лНастройкиКомпоновкиДанных.Отбор, НастройкиКомпоновки.Настройки.Отбор);
мОтборДобавитьОтборОставлятьПакетыЗаПоследниеДней(лНастройкиКомпоновкиДанных.Отбор, ОставлятьПакетыЗаПоследниеДней);
лКомпоновщикМакетаКомпоновкиДанных=Новый КомпоновщикМакетаКомпоновкиДанных;
лМакетКомпоновкиДанных=лКомпоновщикМакетаКомпоновкиДанных.Выполнить(лСКД, лНастройкиКомпоновкиДанных);
лТзСсылки=ТсПлатформаМодули.Компоновка().ВывестиВТз(лСКД, лНастройкиКомпоновкиДанных,,, лСтруктураПараметры);
лМассивСсылки=лТзСсылки.ВыгрузитьКолонку("Ссылка");
#Область ОчисткаОбъектовКВыгрузке
лЗапрос=Новый Запрос;
лЗапрос.УстановитьПараметр("Ссылки", лМассивСсылки);
лЗапрос.Текст=
"ВЫБРАТЬ
| ТсОбменОбъектыКВыгрузке.ПравилоВыгрузкиТаблицы КАК ПравилоВыгрузкиТаблицы,
| ТсОбменОбъектыКВыгрузке.Подключение КАК Подключение,
| ТсОбменОбъектыКВыгрузке.УИД КАК УИД,
| ТсОбменОбъектыКВыгрузке.ДатаРегистрации КАК ДатаРегистрации
|ИЗ
| РегистрСведений.ТсОбменОбъектыКВыгрузке КАК ТсОбменОбъектыКВыгрузке
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ТсОбменПакеты КАК ТсОбменПакеты
| ПО (ТсОбменПакеты.Ссылка = ТсОбменОбъектыКВыгрузке.ПакетОбмена)
|ГДЕ
| (ТсОбменОбъектыКВыгрузке.ПакетОбмена В (&Ссылки)
| ИЛИ ТсОбменПакеты.Ссылка ЕСТЬ NULL
| И ТсОбменОбъектыКВыгрузке.ПакетОбмена <> ЗНАЧЕНИЕ(Справочник.ТсОбменПакеты.ПустаяСсылка))";
лВыборка=лЗапрос.Выполнить().Выбрать();
лЗапись=РегистрыСведений.ТсОбменОбъектыКВыгрузке.СоздатьМенеджерЗаписи();
Пока лВыборка.Следующий() Цикл
ЗаполнитьЗначенияСвойств(лЗапись, лВыборка);
лЗапись.Прочитать();
Если Не лЗапись.Выбран() Тогда Продолжить; КонецЕсли;
лЗапись.Удалить();
КонецЦикла;
#КонецОбласти
#Область ОчисткаОбъектовПакетов
лЗапрос=Новый Запрос;
лЗапрос.УстановитьПараметр("Ссылки", лМассивСсылки);
лЗапрос.Текст=
"ВЫБРАТЬ
| ТсОбменОбъектыПакетов.Пакет КАК Пакет,
| ТсОбменОбъектыПакетов.КодПравила КАК КодПравила,
| ТсОбменОбъектыПакетов.Номер КАК Номер
|ИЗ
| РегистрСведений.ТсОбменОбъектыПакетов КАК ТсОбменОбъектыПакетов
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ТсОбменПакеты КАК ТсОбменПакеты
| ПО (ТсОбменПакеты.Ссылка = ТсОбменОбъектыПакетов.Пакет)
|ГДЕ
| (ТсОбменОбъектыПакетов.Пакет В (&Ссылки)
| ИЛИ ТсОбменПакеты.Ссылка ЕСТЬ NULL)";
лВыборка=лЗапрос.Выполнить().Выбрать();
лЗапись=РегистрыСведений.ТсОбменОбъектыПакетов.СоздатьМенеджерЗаписи();
Пока лВыборка.Следующий() Цикл
ЗаполнитьЗначенияСвойств(лЗапись, лВыборка);
лЗапись.Прочитать();
Если Не лЗапись.Выбран() Тогда Продолжить; КонецЕсли;
лЗапись.Удалить();
КонецЦикла;
#КонецОбласти
Для Каждого лСсылка Из лМассивСсылки Цикл
лОбъект=лСсылка.ПолучитьОбъект();
лОбъект.ОбменДанными.Загрузка=Истина;
лОбъект.Удалить();
КонецЦикла;
Возврат лТзСсылки.Количество();
КонецФункции