#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Разрешение = Параметры.Разрешение;
Цветность = Параметры.Цветность;
Поворот = Параметры.Поворот;
РазмерБумаги = Параметры.РазмерБумаги;
ДвустороннееСканирование = Параметры.ДвустороннееСканирование;
ИспользоватьImageMagickДляПреобразованияВPDF = Параметры.ИспользоватьImageMagickДляПреобразованияВPDF;
ПоказыватьДиалогСканера = Параметры.ПоказыватьДиалогСканера;
ФорматСканированногоИзображения = Параметры.ФорматСканированногоИзображения;
КачествоJPG = Параметры.КачествоJPG;
СжатиеTIFF = Параметры.СжатиеTIFF;
СохранятьВPDF = Параметры.СохранятьВPDF;
ФорматХраненияМногостраничный = Параметры.ФорматХраненияМногостраничный;
Элементы.Поворот.Доступность = Параметры.ДоступностьПоворот;
Элементы.РазмерБумаги.Доступность = Параметры.ДоступностьРазмерБумаги;
Элементы.ДвустороннееСканирование.Доступность = Параметры.ДоступностьДвустороннееСканирование;
ФорматJPG = Перечисления.ФорматыСканированногоИзображения.JPG;
ФорматTIF = Перечисления.ФорматыСканированногоИзображения.TIF;
Элементы.ГруппаКачествоJPG.Видимость = (ФорматСканированногоИзображения = ФорматJPG);
Элементы.СжатиеTIFF.Видимость = (ФорматСканированногоИзображения = ФорматTIF);
Элементы.КачествоJPG.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Качество (%1)'"), КачествоJPG);
УстановитьПодсказки();
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Если ОбщегоНазначенияКлиент.ЭтоLinuxКлиент() Тогда
АдаптироватьДляLinux();
ПоказыватьДиалогСканера = Ложь;
КонецЕсли;
ОбработатьИспользованиеДиалогаСканирования();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура ФорматСканированногоИзображенияПриИзменении(Элемент)
Элементы.ГруппаКачествоJPG.Видимость = (ФорматСканированногоИзображения = ФорматJPG);
Элементы.СжатиеTIFF.Видимость = (ФорматСканированногоИзображения = ФорматTIF);
УстановитьПодсказки();
КонецПроцедуры
&НаКлиенте
Процедура КачествоJPGПриИзменении(Элемент)
Элементы.КачествоJPG.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Качество (%1)'"), КачествоJPG);
КонецПроцедуры
&НаКлиенте
Процедура ПоказыватьДиалогСканераПриИзменении(Элемент)
ОбработатьИспользованиеДиалогаСканирования();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ОК(Команда)
ОчиститьСообщения();
Если Не ПроверитьЗаполнение() Тогда
Возврат;
КонецЕсли;
РезультатВыбора = Новый Структура;
РезультатВыбора.Вставить("ПоказыватьДиалогСканера", ПоказыватьДиалогСканера);
РезультатВыбора.Вставить("Разрешение", Разрешение);
РезультатВыбора.Вставить("Цветность", Цветность);
РезультатВыбора.Вставить("Поворот", Поворот);
РезультатВыбора.Вставить("РазмерБумаги", РазмерБумаги);
РезультатВыбора.Вставить("ДвустороннееСканирование", ДвустороннееСканирование);
РезультатВыбора.Вставить("ИспользоватьImageMagickДляПреобразованияВPDF",
ИспользоватьImageMagickДляПреобразованияВPDF);
РезультатВыбора.Вставить("ФорматСканированногоИзображения", ФорматСканированногоИзображения);
РезультатВыбора.Вставить("КачествоJPG", КачествоJPG);
РезультатВыбора.Вставить("СжатиеTIFF", СжатиеTIFF);
РезультатВыбора.Вставить("СохранятьВPDF", СохранятьВPDF);
РезультатВыбора.Вставить("ФорматХраненияМногостраничный", ФорматХраненияМногостраничный);
ОповеститьОВыборе(РезультатВыбора);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура УстановитьПодсказки()
ПодсказкаФормата = "";
РасширеннаяПодсказка = Строка(Элементы.ПреобразоватьВPDF.РасширеннаяПодсказка.Заголовок);
Подсказки = СтрРазделить(РасширеннаяПодсказка, Символы.ПС);
ТекущийФормат = Строка(ФорматСканированногоИзображения);
Для Каждого Подсказка Из Подсказки Цикл
Если СтрНачинаетсяС(Подсказка, ТекущийФормат) Тогда
ПодсказкаФормата = Подсказка;
КонецЕсли;
КонецЦикла;
Элементы.ОписаниеФорматаОдностраничногоДокумента.Заголовок = ПодсказкаФормата;
КонецПроцедуры
&НаКлиенте
Процедура ОбработатьИспользованиеДиалогаСканирования()
Элементы.Разрешение.Доступность = Не ПоказыватьДиалогСканера;
Элементы.Цветность.Доступность = Не ПоказыватьДиалогСканера;
Элементы.Поворот.Доступность = Не ПоказыватьДиалогСканера;
Элементы.РазмерБумаги.Доступность = Не ПоказыватьДиалогСканера;
Элементы.ДвустороннееСканирование.Доступность = Не ПоказыватьДиалогСканера;
Элементы.ФорматСканированногоИзображения.Доступность = Не ПоказыватьДиалогСканера;
Элементы.КачествоJPG.Доступность = Не ПоказыватьДиалогСканера;
Элементы.СжатиеTIFF.Доступность = Не ПоказыватьДиалогСканера;
КонецПроцедуры
&НаСервере
Процедура АдаптироватьДляLinux()
Элементы.ПоказыватьДиалогСканера.Видимость = Ложь;
Элементы.Поворот.Видимость = Ложь;
ДоступныеФорматы = Новый Массив;
ДоступныеФорматы.Добавить(Перечисления.ФорматыСканированногоИзображения.PNG);
ДоступныеФорматы.Добавить(Перечисления.ФорматыСканированногоИзображения.JPG);
Элементы.ФорматСканированногоИзображения.СписокВыбора.ЗагрузитьЗначения(ДоступныеФорматы);
Элементы.ФорматСканированногоИзображения.РежимВыбораИзСписка = Истина;
Если ДоступныеФорматы.Найти(ФорматСканированногоИзображения) = Неопределено Тогда
ФорматСканированногоИзображения = Перечисления.ФорматыСканированногоИзображения.PNG;
Модифицированность = Истина;
КонецЕсли;
КонецПроцедуры
#КонецОбласти