ИмяСправочникаХраненияФайлов (БСП)

Автор: 1С
ОбщийМодуль.РаботаСФайламиСлужебный
1С БСП

Имя справочника хранения файлов. Возвращает имя справочника для указанного владельца или вызывает исключение,

// Возвращает имя справочника для указанного владельца или вызывает исключение,
// если их более одного.
// 
// Параметры:
//  ВладелецФайлов  - Ссылка - объект, к которому добавляется файл.
//  ИмяСправочника  - Строка, если заполнено, то выполняется проверка
//                    наличия справочника среди справочников владельца для хранения файлов.
//                    Если не заполнено, возвращает имя основного справочника.
//  ЗаголовокОшибки - Строка - заголовок ошибки.
//                  - Неопределено - не вызывать исключение, а вернуть пустую строку.
//  ИмяПараметра    - Строка - имя требуемого параметра для определения имени справочника.
//  ОкончаниеОшибки - Строка - окончание ошибки (только для случая, когда ИмяПараметра = Неопределено).
// 
Функция ИмяСправочникаХраненияФайлов(ВладелецФайлов, ИмяСправочника = "",
	ЗаголовокОшибки = Неопределено, ОкончаниеОшибки = Неопределено) Экспорт
	
	НеВызыватьИсключение = (ЗаголовокОшибки = Неопределено);
	ИменаСправочников = ИменаСправочниковХраненияФайлов(ВладелецФайлов, НеВызыватьИсключение);
	
	Если ИменаСправочников.Количество() = 0 Тогда
		Если НеВызыватьИсключение Тогда
			Возврат "";
		КонецЕсли;
		
		ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
			ЗаголовокОшибки + Символы.ПС
			+ НСтр("ru = 'У владельца файлов ""%1"" типа ""%2""
			             |нет справочников для хранения файлов.'"),
			Строка(ВладелецФайлов),
			Строка(ТипЗнч(ВладелецФайлов)));
	КонецЕсли;
	
	Если ЗначениеЗаполнено(ИмяСправочника) Тогда
		Если ИменаСправочников[ИмяСправочника] <> Неопределено Тогда
			Возврат ИмяСправочника;
		КонецЕсли;
	
		Если НеВызыватьИсключение Тогда
			Возврат "";
		КонецЕсли;
		
		ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
			ЗаголовокОшибки + Символы.ПС
			+ НСтр("ru = 'У владельца файлов ""%1"" типа ""%2""
			             |нет справочника ""%3"" для хранения файлов.'"),
			Строка(ВладелецФайлов),
			Строка(ТипЗнч(ВладелецФайлов)),
			Строка(ИмяСправочника));
	КонецЕсли;
	
	ОсновнойСправочник = "";
	Для каждого КлючИЗначение Из ИменаСправочников Цикл
		Если КлючИЗначение.Значение = Истина Тогда
			ОсновнойСправочник = КлючИЗначение.Ключ;
			Прервать;
		КонецЕсли;
	КонецЦикла;
	
	Если ЗначениеЗаполнено(ОсновнойСправочник) Тогда
		Возврат ОсновнойСправочник;
	КонецЕсли;
		
	Если НеВызыватьИсключение Тогда
		Возврат "";
	КонецЕсли;
	
	ШаблонПричиныОшибки = 
		НСтр("ru = 'У владельца файлов ""%1"" типа ""%2""
			|не указан основной справочник для хранения файлов.'") + Символы.ПС;
			
	ПричинаОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
		ШаблонПричиныОшибки, Строка(ВладелецФайлов), Строка(ТипЗнч(ВладелецФайлов)));
		
	ТекстОшибки = ЗаголовокОшибки + Символы.ПС
		+ ПричинаОшибки + Символы.ПС
		+ ОкончаниеОшибки;
		
	ВызватьИсключение СокрЛП(ТекстОшибки);
	
КонецФункции

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

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

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

ИмяСправочникаХраненияФайлов (БСП)

ИменаСправочниковХраненияФайлов (БСП)

ИмяСправочникаХраненияВерсийФайлов (БСП)

СправочникиФайловИОбъектыХранения (БСП)

ПриОпределенииСправочниковХраненияФайлов (БСП)

ДобавитьФайл (БСП)

ИзменитьСправочникХраненияФайлов (БСП)

ХранениеФайловВТомахНаДиске (БСП)

ЕстьТомаХраненияФайлов (БСП)

1С Менеджер конфигураций