#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ПереданныйМассивФорматов = Новый Массив;
Если Параметры.ФорматыСохранения <> Неопределено Тогда
ПереданныйМассивФорматов = Параметры.ФорматыСохранения;
КонецЕсли;
УпаковатьВАрхив = Параметры.УпаковатьВАрхив;
ПереводитьИменаФайловВТранслит = Параметры.ПереводитьИменаФайловВТранслит;
Элементы.Подписать.Видимость = Параметры.Подписать <> Неопределено;
Подписать = Параметры.Подписать;
Для Каждого ФорматСохранения Из СтандартныеПодсистемыСервер.НастройкиФорматовСохраненияТабличногоДокумента() Цикл
Пометка = Ложь;
Если Параметры.ФорматыСохранения <> Неопределено Тогда
ПереданныйФормат = ПереданныйМассивФорматов.Найти(Строка(ФорматСохранения.ТипФайлаТабличногоДокумента));
Если ПереданныйФормат <> Неопределено Тогда
Пометка = Истина;
КонецЕсли;
КонецЕсли;
ВыбранныеФорматыСохранения.Добавить(Строка(ФорматСохранения.ТипФайлаТабличногоДокумента),
ФорматСохранения.Представление, Пометка, ФорматСохранения.Картинка);
КонецЦикла;
Если ВыбранныеФорматыСохранения.Количество() = 1 Тогда
Элементы.ГруппаВыборФорматов.Видимость = Ложь;
АвтоЗаголовок = Ложь;
Заголовок = НСтр("ru = 'Выбор параметров вложений'");
СтандартныеПодсистемыСервер.УстановитьКлючНазначенияФормы(ЭтотОбъект, "БезВыбораФормата");
ИначеЕсли ВыбранныеФорматыСохранения.Количество() > 1 Тогда
СтандартныеПодсистемыСервер.УстановитьКлючНазначенияФормы(ЭтотОбъект, "");
КонецЕсли;
Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда
ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиФормы.Верх;
Элементы.Подписать.Видимость = Ложь;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПередЗагрузкойДанныхИзНастроекНаСервере(Настройки)
Если Параметры.ФорматыСохранения <> Неопределено И Параметры.ФорматыСохранения.Количество() > 0 Тогда
Настройки.Удалить("ВыбранныеФорматыСохранения");
Настройки.Удалить("УпаковатьВАрхив");
Настройки.Удалить("ПереводитьИменаФайловВТранслит");
Настройки.Удалить("Подписать");
Возврат;
КонецЕсли;
Если ВыбранныеФорматыСохранения.Количество() <> 1 Тогда
ФорматыСохраненияИзНастроек = Настройки["ВыбранныеФорматыСохранения"];
Если ФорматыСохраненияИзНастроек <> Неопределено Тогда
Для Каждого ВыбранныйФормат Из ВыбранныеФорматыСохранения Цикл
ФорматИзНастроек = ФорматыСохраненияИзНастроек.НайтиПоЗначению(ВыбранныйФормат.Значение);
ВыбранныйФормат.Пометка = ФорматИзНастроек <> Неопределено И ФорматИзНастроек.Пометка;
КонецЦикла;
Настройки.Удалить("ВыбранныеФорматыСохранения");
КонецЕсли;
Иначе
Настройки.Удалить("ВыбранныеФорматыСохранения");
КонецЕсли;
Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда
Настройки["Подписать"] = Ложь;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПриСохраненииДанныхВНастройкахНаСервере(Настройки)
Если ВыбранныеФорматыСохранения.Количество() = 1 Тогда
Настройки.Удалить("ВыбранныеФорматыСохранения");
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
УстановитьВыборФормата();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура Выбрать(Команда)
РезультатВыбора = ВыбранныеНастройкиФормата();
ОповеститьОВыборе(РезультатВыбора);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура УстановитьВыборФормата()
ЕстьВыбранныйФормат = Ложь;
Для Каждого ВыбранныйФормат Из ВыбранныеФорматыСохранения Цикл
Если ВыбранныйФормат.Пометка Тогда
ЕстьВыбранныйФормат = Истина;
КонецЕсли;
КонецЦикла;
Если Не ЕстьВыбранныйФормат Тогда
ВыбранныеФорматыСохранения[0].Пометка = Истина;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Функция ВыбранныеНастройкиФормата()
ФорматыСохранения = Новый Массив;
Для Каждого ВыбранныйФормат Из ВыбранныеФорматыСохранения Цикл
Если ВыбранныйФормат.Пометка Тогда
ФорматыСохранения.Добавить(ВыбранныйФормат.Значение);
КонецЕсли;
КонецЦикла;
Результат = Новый Структура;
Результат.Вставить("УпаковатьВАрхив", УпаковатьВАрхив);
Результат.Вставить("ФорматыСохранения", ФорматыСохранения);
Результат.Вставить("ПереводитьИменаФайловВТранслит", ПереводитьИменаФайловВТранслит);
Результат.Вставить("Подписать", Подписать);
Возврат Результат;
КонецФункции
#КонецОбласти