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