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