Установить папку для массива писем. Устанавливает пометку удаления для писем папки.
// Устанавливает пометку удаления для писем папки.
//
// Параметры:
// МассивПисем - Массив - массив писем для которых будет установлена папка.
// Папка - СправочникСсылка.ПапкиЭлектронныхПисем - папка, письма которой будут помечены на удаление.
//
Процедура УстановитьПапкуДляМассиваПисем(МассивПисем,Папка) Экспорт
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
| ЭлектронноеПисьмоВходящее.Ссылка,
| ЭлектронноеПисьмоВходящее.ПометкаУдаления,
| ПредметыПапкиВзаимодействий.ПапкаЭлектронногоПисьма КАК Папка
|ИЗ
| Документ.ЭлектронноеПисьмоВходящее КАК ЭлектронноеПисьмоВходящее
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий
| ПО ЭлектронноеПисьмоВходящее.Ссылка = ПредметыПапкиВзаимодействий.Взаимодействие
|ГДЕ
| ЭлектронноеПисьмоВходящее.Ссылка В(&МассивПисем)
| И ПредметыПапкиВзаимодействий.ПапкаЭлектронногоПисьма <> &Папка
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ЭлектронноеПисьмоИсходящее.Ссылка,
| ЭлектронноеПисьмоИсходящее.ПометкаУдаления,
| ПредметыПапкиВзаимодействий.ПапкаЭлектронногоПисьма
|ИЗ
| Документ.ЭлектронноеПисьмоИсходящее КАК ЭлектронноеПисьмоИсходящее
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий
| ПО (ПредметыПапкиВзаимодействий.Взаимодействие = ЭлектронноеПисьмоИсходящее.Ссылка)
|ГДЕ
| ЭлектронноеПисьмоИсходящее.Ссылка В(&МассивПисем)
| И ПредметыПапкиВзаимодействий.ПапкаЭлектронногоПисьма <> &Папка";
Запрос.УстановитьПараметр("МассивПисем",МассивПисем);
Запрос.УстановитьПараметр("Папка",Папка);
ЗначенияРеквизитовПапки = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Папка, "ПредопределеннаяПапка,Наименование");
Если ЗначенияРеквизитовПапки <> Неопределено
И ЗначенияРеквизитовПапки.ПредопределеннаяПапка
И ЗначенияРеквизитовПапки.Наименование = НСтр("ru = 'Удаленные'") Тогда
ПеремещениеВПапкуУдаленные = Истина;
Иначе
ПеремещениеВПапкуУдаленные = Ложь;
КонецЕсли;
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ВзаимодействияВызовСервера.УстановитьПапкуЭлектронногоПисьма(Выборка.Ссылка, Папка, Ложь);
Если ПеремещениеВПапкуУдаленные И НЕ Выборка.ПометкаУдаления Тогда
ПисьмоОбъект = Выборка.Ссылка.ПолучитьОбъект();
ПисьмоОбъект.ДополнительныеСвойства.Вставить("ОбработаноИзменениеПометкиУдаления", Истина);
ПисьмоОбъект.УстановитьПометкуУдаления(Истина);
ИначеЕсли НЕ ПеремещениеВПапкуУдаленные И Выборка.ПометкаУдаления Тогда
ПисьмоОбъект = Выборка.Ссылка.ПолучитьОбъект();
ПисьмоОбъект.ДополнительныеСвойства.Вставить("ОбработаноИзменениеПометкиУдаления", Истина);
ПисьмоОбъект.УстановитьПометкуУдаления(Ложь);
КонецЕсли;
КонецЦикла;
Выборка.Сбросить();
ТаблицаДляРасчета = ТаблицаДанныхДляРасчетаРассмотрено(Выборка, "Папка");
Если ТаблицаДляРасчета.Найти(Папка, "ПоЧемуРассчитывать") = Неопределено Тогда
НоваяСтрока = ТаблицаДляРасчета.Добавить();
НоваяСтрока.ПоЧемуРассчитывать = Папка;
КонецЕсли;
РассчитатьРассмотреноПоПапкам(ТаблицаДляРасчета);
КонецПроцедуры
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
УстановитьПапкиДляМассиваПисем (БСП)
УстановитьРодителяУПапки (БСП)
ВыполнитьУдалениеПапкиЭлектронныхПисем (БСП)
СоздатьПредопределенныеПапкиЭлектронныхПисемДляУчетнойЗаписи (БСП)
УстановитьПапкуЭлектронногоПисьма (БСП)
УстановитьПредметДляМассиваВзаимодействий (БСП)
УстановитьПризнакРассмотрено (БСП)