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