ОпределитьПапкуДляПисьмаПоУмолчанию (БСП)

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

Определить папку для письма по умолчанию. Определяет папку для электронного письма по умолчанию.

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

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

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

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

ОпределитьПапкуДляПисьма (БСП)

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

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

ПустаяСтруктураПараметровПисьмаВложения (БСП)

ПриОтправкеФайловПочтой (БСП)

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

НастройкиОтчетаПоУмолчанию (БСП)

ТекстНеОпределено (БСП)

Определить это Linux или Windows

TurboConf ИР адаптер 1.75