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

Автор: 1С
ОбщийМодуль.УправлениеЭлектроннойПочтой
БСП

Получить вложения электронного письма. Получает вложения электронного письма.

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

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

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

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

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

УдалитьВложенияУПисьма (БСП)

ОткрытьВложение (БСП)

ЗаписатьВложениеЭлектронногоПисьмаИзВременногоХранилища (БСП)

ПолучитьВложенияПисьмаСНеПустымИД (БСП)

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

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

ПолучитьПараметрыРаботыПользователяДляИсходящегоЭлектронногоПисьма (БСП)

Обновлятор-1С: групповое (пакетное) обновление и обслуживание всех баз за один раз