УстановитьПапкуДляМассиваПисем (БСП)

Автор: 1С
ОбщийМодуль.Взаимодействия
БСП

Установить папку для массива писем. Устанавливает пометку удаления для писем папки.

// Устанавливает пометку удаления для писем папки.
//
// Параметры:
//  МассивПисем  - Массив - массив писем для которых будет установлена папка.
//  Папка  - СправочникСсылка.ПапкиЭлектронныхПисем - папка, письма которой будут помечены на удаление.
//
Процедура УстановитьПапкуДляМассиваПисем(МассивПисем,Папка) Экспорт
	
	Запрос = Новый Запрос;
	Запрос.Текст = "
	|ВЫБРАТЬ
	|	ЭлектронноеПисьмоВходящее.Ссылка,
	|	ЭлектронноеПисьмоВходящее.ПометкаУдаления,
	|	ПредметыПапкиВзаимодействий.ПапкаЭлектронногоПисьма КАК Папка
	|ИЗ
	|	Документ.ЭлектронноеПисьмоВходящее КАК ЭлектронноеПисьмоВходящее
	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий
	|		ПО ЭлектронноеПисьмоВходящее.Ссылка = ПредметыПапкиВзаимодействий.Взаимодействие
	|ГДЕ
	|	ЭлектронноеПисьмоВходящее.Ссылка В(&МассивПисем)
	|	И ПредметыПапкиВзаимодействий.ПапкаЭлектронногоПисьма <> &Папка
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	ЭлектронноеПисьмоИсходящее.Ссылка,
	|	ЭлектронноеПисьмоИсходящее.ПометкаУдаления,
	|	ПредметыПапкиВзаимодействий.ПапкаЭлектронногоПисьма
	|ИЗ
	|	Документ.ЭлектронноеПисьмоИсходящее КАК ЭлектронноеПисьмоИсходящее
	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий
	|		ПО (ПредметыПапкиВзаимодействий.Взаимодействие = ЭлектронноеПисьмоИсходящее.Ссылка)
	|ГДЕ
	|	ЭлектронноеПисьмоИсходящее.Ссылка В(&МассивПисем)
	|	И ПредметыПапкиВзаимодействий.ПапкаЭлектронногоПисьма <> &Папка";
	
	Запрос.УстановитьПараметр("МассивПисем",МассивПисем);
	Запрос.УстановитьПараметр("Папка",Папка);
	
	ЗначенияРеквизитовПапки = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Папка, "ПредопределеннаяПапка,Наименование");
	Если ЗначенияРеквизитовПапки <> Неопределено 
		И ЗначенияРеквизитовПапки.ПредопределеннаяПапка 
		И ЗначенияРеквизитовПапки.Наименование = НСтр("ru = 'Удаленные'") Тогда
		
		ПеремещениеВПапкуУдаленные = Истина;
		
	Иначе
		
		ПеремещениеВПапкуУдаленные = Ложь;
		
	КонецЕсли;
		
	Выборка = Запрос.Выполнить().Выбрать();

	Пока Выборка.Следующий() Цикл
		ВзаимодействияВызовСервера.УстановитьПапкуЭлектронногоПисьма(Выборка.Ссылка, Папка, Ложь);
		Если ПеремещениеВПапкуУдаленные И НЕ Выборка.ПометкаУдаления Тогда
			ПисьмоОбъект = Выборка.Ссылка.ПолучитьОбъект();
			ПисьмоОбъект.ДополнительныеСвойства.Вставить("ОбработаноИзменениеПометкиУдаления", Истина);
			ПисьмоОбъект.УстановитьПометкуУдаления(Истина);
		ИначеЕсли НЕ ПеремещениеВПапкуУдаленные И Выборка.ПометкаУдаления Тогда
			ПисьмоОбъект = Выборка.Ссылка.ПолучитьОбъект();
			ПисьмоОбъект.ДополнительныеСвойства.Вставить("ОбработаноИзменениеПометкиУдаления", Истина);
			ПисьмоОбъект.УстановитьПометкуУдаления(Ложь);
		КонецЕсли;
	КонецЦикла;
	
	Выборка.Сбросить();
	ТаблицаДляРасчета = ТаблицаДанныхДляРасчетаРассмотрено(Выборка, "Папка");
	Если ТаблицаДляРасчета.Найти(Папка, "ПоЧемуРассчитывать") = Неопределено Тогда
		НоваяСтрока = ТаблицаДляРасчета.Добавить();
		НоваяСтрока.ПоЧемуРассчитывать = Папка;
	КонецЕсли;
	РассчитатьРассмотреноПоПапкам(ТаблицаДляРасчета);
	
КонецПроцедуры

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

УстановитьПапкиДляМассиваПисем (БСП)

УстановитьРодителяУПапки (БСП)

ВыполнитьУдалениеПапкиЭлектронныхПисем (БСП)

СоздатьПредопределенныеПапкиЭлектронныхПисемДляУчетнойЗаписи (БСП)

УстановитьПапкуЭлектронногоПисьма (БСП)

УстановитьПредметДляМассиваВзаимодействий (БСП)

УстановитьПризнакРассмотрено (БСП)

УстановитьПараметрыЗапросаИменаПредопределенныеПапки (БСП)

ЭтоПапкаФайлов (БСП)

TurboConf - расширение Конфигуратора 1С