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