Панель администрирования БЭД / Общие настройки / Модуль формы

файл



#Область ОписаниеПеременных

&НаКлиенте
Перем ОбновитьИнтерфейс;

#КонецОбласти

#Область ОбработчикиСобытийФормы

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	УстановитьУсловноеОформление();
	
	ЭтоБазоваяВерсия = ОбщегоНазначенияБЭД.ЗначениеФункциональнойОпции("БазоваяВерсия");
	
	ЕстьОбменСКонтрагентами = ОбщегоНазначения.ПодсистемаСуществует("ЭлектронноеВзаимодействие.ОбменСКонтрагентами");
	ЕстьИнтеграцияОблачногоЭДО = ОбщегоНазначения.ПодсистемаСуществует("ЭлектронноеВзаимодействие.ОбменСКонтрагентами.ИнтеграцияОблачногоЭДО");
	ТребуетсяВзаимодействие = Ложь;
	
	РазделениеВключено = ОбщегоНазначения.РазделениеВключено();
	
	Если РазделениеВключено Тогда
		ИспользуютсяОбсуждения = СистемаВзаимодействия.ИнформационнаяБазаЗарегистрирована();
	КонецЕсли;
	
	Если ЕстьОбменСКонтрагентами Тогда
		МодульИнтеграцияЭДО = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияЭДО");
		ИспользуетсяНесколькоОрганизацийЭД = МодульИнтеграцияЭДО.ИспользуетсяНесколькоОрганизаций();
		ИспользоватьОбменМеждуОрганизациями = МодульИнтеграцияЭДО.ИспользоватьОбменЭлектроннымиДокументамиМеждуОрганизациями();
		Если Не ИспользоватьОбменМеждуОрганизациями Тогда
			Элементы.ГруппаИспользоватьОбменМеждуОрганизациями.Видимость = Ложь;
		Иначе
			Элементы.ГруппаИспользоватьОбменМеждуОрганизациями.Видимость = Не ЭтоБазоваяВерсия
				И ИспользуетсяНесколькоОрганизацийЭД;
		КонецЕсли;
		
		МодульНастройкиЭДО = ОбщегоНазначения.ОбщийМодуль("НастройкиЭДО");
		Элементы.ГруппаИспользоватьПрямойОбмен.Видимость = МодульНастройкиЭДО.ПрямойОбменДоступен()
			И Не РазделениеВключено;
		
		Элементы.ГруппаИспользоватьВнутренниеДокументы.Видимость = МодульИнтеграцияЭДО.ДоступноИспользованиеВнутреннегоЭДО();
	КонецЕсли;
	
	Элементы.ГруппаНастройкиОбменаСКонтрагентами.Видимость = ЕстьОбменСКонтрагентами;
	Элементы.ГруппаНастройкиОбменаСБанками.Видимость =
		ОбщегоНазначения.ПодсистемаСуществует("ЭлектронноеВзаимодействие.ОбменСБанками");
	Элементы.ГруппаНастройкиИнтеграцииОблачногоЭДО.Видимость = ЕстьИнтеграцияОблачногоЭДО;
	
	ЕстьТорговыеПредложения = ОбщегоНазначения.ПодсистемаСуществует("ЭлектронноеВзаимодействие.ТорговыеПредложения");
	Элементы.ГруппаПодсказки.Видимость = ЕстьТорговыеПредложения;
	
	Если ЕстьОбменСКонтрагентами Тогда
		МодульОбменСКонтрагентами = ОбщегоНазначения.ОбщийМодуль("ОбменСКонтрагентамиИнтеграция");
		Элементы.ГруппаИспользоватьВнутренниеДокументы.Видимость = МодульОбменСКонтрагентами.РазрешеноИспользоватьВнутреннийЭДО();
	КонецЕсли;
	
	// СервисДоставки начало
	Если ОбщегоНазначения.ПодсистемаСуществует("ЭлектронноеВзаимодействие.СервисДоставки") Тогда
		МодульСервисДоставки = ОбщегоНазначения.ОбщийМодуль("СервисДоставки");
		МодульСервисДоставки.ЗаполнитьСервисыДоставки(СервисыДоставки);
		ИспользуютсяНаложенныеПлатежи = МодульСервисДоставки.ИспользуютсяНаложенныеПлатежи();
		ИспользуетсяЧастичнаяДоставка = МодульСервисДоставки.ИспользуетсяЧастичнаяДоставка();
		Элементы.НастроитьСозданиеПлатежныхДокументов.Видимость = ИспользуютсяНаложенныеПлатежи;
		
		Элементы.ГруппаИспользоватьАвтоматическоеОбновлениеДанныхСервисДоставки.Видимость = (ИспользуютсяНаложенныеПлатежи
			И МодульСервисДоставки.ИспользуетсяРегламентЗагрузкиНаложенныхПлатежей())
			Или (ИспользуетсяЧастичнаяДоставка И МодульСервисДоставки.ИспользуетсяРегламентСинхронизацииПоЧастичнойДоставке());
		
		Элементы.СервисыДоставкиИспользоватьНаложенныеПлатежи.Видимость = ИспользуютсяНаложенныеПлатежи;
		Элементы.СервисыДоставкиИспользоватьЧастичнуюДоставку.Видимость = ИспользуетсяЧастичнаяДоставка;
			
	КонецЕсли;
	// СервисДоставки конец
		
	// Настройки регламентных заданий.
	УстановитьНастройкиЗаданий();
	
	// Обновление состояния элементов.
	ПрочитатьУстановитьДоступность();
	
	// Если регламентные задания по отправке или получению включены,
	// тогда нужно выполнить проверки их настроек.
	Если ИспользоватьАвтоматическуюОтправкуЭД Или ИспользоватьАвтоматическоеПолучениеЭД
		Или ИспользоватьАвтоматическоеПолучениеЭДПоТокенам Тогда
		ПроверкаНастроекОтправкиПолученияЭД = НачатьПроверкуРегламентныхЗаданийНаСервере(УникальныйИдентификатор);
	КонецЕсли;
	
	// Добавление элементов управления.
	
	Если Параметры.Свойство("Раздел", ВыбранныйРаздел) Тогда 
		
		ОтображатьЭДО 				= Элементы.ГруппаНастройкиОбменаСКонтрагентами.Видимость 	И ВыбранныйРаздел = "НастройкиЭДО";
		ОтображатьБС  				= Элементы.ГруппаНастройкиБизнесСеть.Видимость 		  	 	И ВыбранныйРаздел = "НастройкиБизнесСеть";
		ОтображатьОбменаСБанками  	= Элементы.ГруппаНастройкиОбменаСБанками.Видимость 	  	 	И ВыбранныйРаздел = "НастройкиОбменаСБанками";
		ОтображатьЕИС  				= Элементы.ГруппаНастройкиОбменаСЕИС.Видимость 				И ВыбранныйРаздел = "НастройкиЕИС";
		
		Элементы.ГруппаНастройкиОбменаСБанками.Видимость 			= ОтображатьОбменаСБанками;
		Элементы.ЗаголовокГруппаУправлениеОбменомЭД.Видимость 		= ОтображатьЭДО ИЛИ ОтображатьОбменаСБанками;
		Элементы.ГруппаНастройкиОбменаСКонтрагентами.Видимость 		= ОтображатьЭДО;
		Элементы.ГруппаНастройкиБизнесСеть.Видимость 				= ОтображатьБС;
		Элементы.ГруппаНастройкиОбменаСЕИС.Видимость 				= ОтображатьЕИС;
		
		Если НЕ ОтображатьЭДО
				И НЕ ОтображатьОбменаСБанками Тогда 
				
			Элементы.ГруппаНастройкиОбменаСБанками.Поведение 			= ПоведениеОбычнойГруппы.Обычное;
			Элементы.ЗаголовокГруппаУправлениеОбменомЭД.Поведение 		= ПоведениеОбычнойГруппы.Обычное;
			Элементы.ГруппаНастройкиОбменаСКонтрагентами.Поведение 		= ПоведениеОбычнойГруппы.Обычное;
			Элементы.ГруппаНастройкиБизнесСеть.Поведение 				= ПоведениеОбычнойГруппы.Обычное;
		
			Элементы.ГруппаНастройкиОбменаСБанками.ОтображатьЗаголовок 			= Ложь;
			Элементы.ЗаголовокГруппаУправлениеОбменомЭД.ОтображатьЗаголовок 	= Ложь;
			Элементы.ГруппаНастройкиОбменаСКонтрагентами.ОтображатьЗаголовок 	= Ложь;
			Элементы.ГруппаНастройкиБизнесСеть.ОтображатьЗаголовок 				= Ложь;
			
		Иначе
			
			Элементы.ГруппаНастройкиОбменаСБанками.Показать();
			Элементы.ГруппаНастройкиОбменаСКонтрагентами.Показать();
			
		КонецЕсли;
		
		Если Параметры.Свойство("ОписаниеРаздела") Тогда 
			Параметры.Свойство("ОписаниеРаздела", Элементы.ОписаниеРаздела.Заголовок);
		КонецЕсли;
		
		Если Параметры.Свойство("Заголовок") Тогда 
			
			АвтоЗаголовок = Ложь;
			Параметры.Свойство("Заголовок", Заголовок);
			
		КонецЕсли;
		
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ПриЗакрытии(ЗавершениеРаботы)
	
	Если Не ЗавершениеРаботы Тогда
		ОбновитьИнтерфейсПрограммы();	
	КонецЕсли;
	
КонецПроцедуры

// Обработчик оповещения формы.
//
// Параметры:
//  ИмяСобытия - Строка - обрабатывается только событие Запись_НаборКонстант, генерируемое панелями администрирования.
//  Параметр   - Структура - содержит имена констант, подчиненных измененной константе, "вызвавшей" оповещение.
//  Источник   - Строка - имя измененной константы, вызвавшей оповещение.
//
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
	
	Если ОбщегоНазначенияБЭДКлиент.ЭтоСобытиеИзменениеОбъекта(
		ОбщегоНазначенияБЭДКлиент.ОбъектыСобытияИзменениеОбъекта().НаборКонстант, ИмяСобытия) Тогда
		
		ТребуетсяОбновление = Ложь;
		Если ТипЗнч(Источник) = Тип("Строка") Тогда
			ТребуетсяОбновление = Элементы.Найти(Источник) <> Неопределено;
		ИначеЕсли ТипЗнч(Источник) = Тип("Структура") Тогда
			Для Каждого ЭлементСтруктуры Из Источник Цикл
				ТребуетсяОбновление = Элементы.Найти(ЭлементСтруктуры.Ключ) <> Неопределено;
				Если ТребуетсяОбновление Тогда
					Прервать;
				КонецЕсли;
			КонецЦикла;
		КонецЕсли;
		
		Если ТребуетсяОбновление Тогда
			ОбновитьЭлементыФормы();
		КонецЕсли;
		
		Если Источник = "ИспользоватьНаложенныеПлатежиСервис1СКурьер"
			Или Источник = "ИспользоватьНаложенныеПлатежиСервис1ССДЭК"
			Или Источник = "ИспользоватьЧастичнуюДоставкуСервис1СКурьерика" Тогда
			УстановитьНастройкиЗаданий();
		КонецЕсли;
		
	ИначеЕсли ИмяСобытия = "СинхронизацияТорговыхПредложений_ПриИзменении" Тогда
		
		УстановитьНастройкиЗаданий(Параметр);
		
	// СервисДоставки начало
	ИначеЕсли ИмяСобытия = "ИспользоватьАвтоматическоеОбновлениеДанныхСервисДоставки_ПриИзменении" Тогда
		
		УстановитьНастройкиЗаданий();
		
	// СервисДоставки конец
		
	ИначеЕсли ИмяСобытия = "ПомощникНастроекРегламентныхЗаданийВключитьЗадание" Тогда
		
		Если НРег(Параметр) = НРег(ОперацияНастройкиРегламентногоЗадания_Отправка()) Тогда
			
			ИспользоватьАвтоматическуюОтправкуЭД = Истина;
			ИзменитьИспользованиеЗадания(ИмяРегламентногоЗаданияОтправкаЭлектронныхДокументов(),
				ИспользоватьАвтоматическуюОтправкуЭД);
			Элементы.ОтправкаЭлектронныхДокументов.Доступность = ИспользоватьАвтоматическуюОтправкуЭД;
			
		ИначеЕсли НРег(Параметр) = НРег(ОперацияНастройкиРегламентногоЗадания_Получение()) Тогда
			
			ИспользоватьАвтоматическоеПолучениеЭД = Истина;
			ИзменитьИспользованиеЗадания(ИмяРегламентногоЗаданияПолучениеЭлектронныхДокументов(), ИспользоватьАвтоматическоеПолучениеЭД);
			Элементы.ПолучениеЭлектронныхДокументов.Доступность = ИспользоватьАвтоматическоеПолучениеЭД;
			
		ИначеЕсли Параметр = ОперацияНастройкиРегламентногоЗадания_ПолучениеПоТокенам() Тогда 
			
			МодульАвтоматическоеПолучениеЭДОКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("АвтоматическоеПолучениеЭДОКлиент");
			МодульАвтоматическоеПолучениеЭДОКлиент.СброситьОтображениеСостояний();
			Если Не ИспользоватьАвтоматическоеПолучениеЭДПоТокенам Тогда
				ИспользоватьАвтоматическоеПолучениеЭДПоТокенам = Истина;
				ИзменитьИспользованиеАвтоматическогоПолученияЭДПоТокенам(ИспользоватьАвтоматическоеПолучениеЭДПоТокенам);
			КонецЕсли;
			
		КонецЕсли;
		
		Элементы.КнопкаЕстьПроблемаОтправка.Видимость  = Ложь;
		Элементы.КнопкаЕстьПроблемаПолучение.Видимость = Ложь;
		Элементы.КнопкаЕстьПроблемаПолученияПоТокенам.Видимость = Ложь;
		
	ИначеЕсли ИмяСобытия = "РегистрацияВзаимодействия" Тогда
		
		ИспользуютсяОбсуждения = Параметр;
		ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ВключитьДиалог", "Видимость",
			РазделениеВключено И Не Параметр И ОповещатьОСобытияхЭДО И ТребуетсяВзаимодействие);
		ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ВключитеДиалог", "Видимость",
			РазделениеВключено И Не Параметр И ОповещатьОСобытияхЭДО И Не ТребуетсяВзаимодействие);
		
	ИначеЕсли ИмяСобытия = "НастройкиEDI_ИзменениеНастроекОрганизации" Тогда
		
		ПриИзмененииНастроекEDI();
		
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	
	Если (ИспользоватьАвтоматическоеПолучениеЭД Или ИспользоватьАвтоматическуюОтправкуЭД
		Или ИспользоватьАвтоматическоеПолучениеЭДПоТокенам)
		И ПроверкаНастроекОтправкиПолученияЭД <> Неопределено Тогда
		МодульСинхронизацияЭДОКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СинхронизацияЭДОКлиентСервер");
		Операция = МодульСинхронизацияЭДОКлиент.ОперацииПроверкиНастроекРегламентныхЗаданий().ПоУмолчанию;
		ОжидатьЗавершенияПроверкиНастроекРегламентныхЗаданий(Ложь, Операция);
	КонецЕсли;
	
КонецПроцедуры

#КонецОбласти

#Область ОбработчикиСобытийЭлементовШапкиФормы

&НаКлиенте
Процедура Константа_ТипПодписиЭДПриИзменении(Элемент)
	Подключаемый_ПриИзмененииРеквизита(Элемент);
КонецПроцедуры

&НаКлиенте
Процедура Константа_ТипПодписиМЧДПриИзменении(Элемент)
	Подключаемый_ПриИзмененииРеквизита(Элемент);
КонецПроцедуры

&НаКлиенте
Процедура Константа_СоздаватьКонтрагентовАвтоматическиПриИзменении(Элемент)
	Подключаемый_ПриИзмененииРеквизита(Элемент);
	Если Не Константа_СоздаватьКонтрагентовАвтоматическиБЭД Тогда
		Константа_ПриниматьПриглашенияЭДОАвтоматически = Ложь;
		Подключаемый_ПриИзмененииРеквизита(Элементы.Константа_ПриниматьПриглашенияЭДОАвтоматически);
	КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура Константа_ОтключитьАвтоматическоеДовериеПолнымПолномочиям(Элемент)
	Подключаемый_ПриИзмененииРеквизита(Элемент);
КонецПроцедуры

&НаКлиенте
Процедура Константа_ОтключитьЗаполнениеТекстовыхПолномочийПоУмолчанию(Элемент)
	Подключаемый_ПриИзмененииРеквизита(Элемент);
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьЭлектронныеПодписиПриИзменении(Элемент)
	Подключаемый_ПриИзмененииРеквизита(Элемент);
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьОбменСБанкамиПриИзменении(Элемент)
	Подключаемый_ПриИзмененииРеквизита(Элемент);
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьОбменЭДПриИзменении(Элемент)
	Подключаемый_ПриИзмененииРеквизита(Элемент);
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьОбменЭДМеждуОрганизациямиПриИзменении(Элемент)
	Подключаемый_ПриИзмененииРеквизита(Элемент);
КонецПроцедуры

&НаКлиенте
Процедура Константа_ИспользоватьПрямойОбменПриИзменении(Элемент)
	Подключаемый_ПриИзмененииРеквизита(Элемент);
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьОбезличенныеСертификатыПриИзменении(Элемент)
	Подключаемый_ПриИзмененииРеквизита(Элемент);
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьВнутренниеДокументыПриИзменении(Элемент)
	
	Если ЕстьПравоНастройкиИспользованияВнутреннегоЭДО(Истина) Тогда
		ЕстьОбменСКонтрагентами = ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЭлектронноеВзаимодействие.ОбменСКонтрагентами");
		Если ЕстьОбменСКонтрагентами Тогда
			Если ВнутренниеДокументыИспользуютсяИлиЕстьНастройки() Тогда
				Подключаемый_ПриИзмененииРеквизита(Элемент); 
			Иначе
				ОписаниеОповещения = Новый ОписаниеОповещения("ИспользоватьВнутренниеДокументыПриИзмененииПродолжить", ЭтотОбъект, Элемент);
				ТекстПредупреждения = НСтр("ru = 'При использовании функциональности внутреннего электронного документооборота 
												|возможно замедление работы системы на медленных компьютерах.'");
				ПоказатьПредупреждение(ОписаниеОповещения, ТекстПредупреждения);
			КонецЕсли;
		КонецЕсли; 
	Иначе 
		Константа_ИспользоватьВнутренниеДокументыЭДО = Не Константа_ИспользоватьВнутренниеДокументыЭДО;
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьВнутренниеДокументыПриИзмененииПродолжить(Результат) Экспорт
	Подключаемый_ПриИзмененииРеквизита(Результат);
КонецПроцедуры

&НаКлиенте
Процедура ОтключитьНемедленнуюОтправкуЭДПриИзменении(Элемент)
	Подключаемый_ПриИзмененииРеквизита(Элемент, Ложь);
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьАвтоматическуюОтправкуЭДПриИзменении(Элемент)
	
	Если ИспользоватьАвтоматическуюОтправкуЭД Тогда
		
		ИспользоватьАвтоматическуюОтправкуЭД = Ложь; // установим флаг только по результатам проверок
		ПроверкаНастроекОтправкиПолученияЭД = НачатьПроверкуРегламентныхЗаданийНаСервере(УникальныйИдентификатор);
		ОжидатьЗавершенияПроверкиНастроекРегламентныхЗаданий(Истина, ОперацияНастройкиРегламентногоЗадания_Отправка());
		
	Иначе
		
		ИзменитьИспользованиеЗадания(ИмяРегламентногоЗаданияОтправкаЭлектронныхДокументов(),
			ИспользоватьАвтоматическуюОтправкуЭД);
		Элементы.ОтправкаЭлектронныхДокументов.Доступность = ИспользоватьАвтоматическуюОтправкуЭД;
		Элементы.КнопкаЕстьПроблемаОтправка.Видимость = Ложь;
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьАвтоматическоеПолучениеЭДПриИзменении(Элемент)
	
	Если ИспользоватьАвтоматическоеПолучениеЭД Тогда
		
		ИспользоватьАвтоматическоеПолучениеЭД = Ложь; // установим флаг только по результатам проверок
		ПроверкаНастроекОтправкиПолученияЭД = НачатьПроверкуРегламентныхЗаданийНаСервере(УникальныйИдентификатор);
		ОжидатьЗавершенияПроверкиНастроекРегламентныхЗаданий(Истина, ОперацияНастройкиРегламентногоЗадания_Получение());
		
	Иначе
		
		ИзменитьИспользованиеЗадания(ИмяРегламентногоЗаданияПолучениеЭлектронныхДокументов(),
			ИспользоватьАвтоматическоеПолучениеЭД);
		Элементы.ПолучениеЭлектронныхДокументов.Доступность = ИспользоватьАвтоматическоеПолучениеЭД;
		Элементы.КнопкаЕстьПроблемаПолучение.Видимость = Ложь;
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьАвтоматическоеПолучениеЭДПоТокенамПриИзменении(Элемент)
	
	Если Не РазделениеВключено И ИспользоватьАвтоматическоеПолучениеЭДПоТокенам Тогда
		
		ИспользоватьАвтоматическоеПолучениеЭДПоТокенам = Ложь;
		Операция = ОперацияНастройкиРегламентногоЗадания_ПолучениеПоТокенам();
		ПроверкаНастроекОтправкиПолученияЭД = НачатьПроверкуРегламентныхЗаданийНаСервере(УникальныйИдентификатор, Операция);
		ОжидатьЗавершенияПроверкиНастроекРегламентныхЗаданий(Истина, Операция);
		
	Иначе
		
		ИзменитьИспользованиеАвтоматическогоПолученияЭДПоТокенам(ИспользоватьАвтоматическоеПолучениеЭДПоТокенам);
		
	КонецЕсли;
	
КонецПроцедуры

// СервисДоставки
&НаКлиенте
Процедура ИспользоватьАвтоматическоеОбновлениеДанныхСервисДоставкиПриИзменении(Элемент)

	ИзменитьИспользованиеЗаданияСинхронизацияССервисомИнтеграции();
	Оповестить("ИспользоватьАвтоматическоеОбновлениеДанныхСервисДоставки_ПриИзменении");
	
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьОбменБизнесСетьПриИзменении(Элемент)
	
	Подключаемый_ПриИзмененииРеквизита(Элемент);
	Оповестить(
		"СинхронизацияТорговыхПредложений_ПриИзменении", ИспользоватьАвтоматическуюПубликациюТорговыхПредложений);
	
КонецПроцедуры

&НаКлиенте
Процедура Константа_ИспользоватьОбменEDIПриИзменении(Элемент)
	Подключаемый_ПриИзмененииРеквизита(Элемент);
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьАвтоматическуюПубликациюТорговыхПредложенийПриИзменении(Элемент)
	
	Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЭлектронноеВзаимодействие.ТорговыеПредложения") Тогда
		
		ОбщийМодульТорговыеПредложенияСлужебныйКлиент = 
			ОбщегоНазначенияКлиент.ОбщийМодуль("ТорговыеПредложенияСлужебныйКлиент");
		ИмяЗадания = ОбщийМодульТорговыеПредложенияСлужебныйКлиент.ИмяЗаданияСинхронизацияТорговыхПредложений();
		
		ИзменитьИспользованиеЗадания(ИмяЗадания, ИспользоватьАвтоматическуюПубликациюТорговыхПредложений);
		Оповестить(
			"СинхронизацияТорговыхПредложений_ПриИзменении", ИспользоватьАвтоматическуюПубликациюТорговыхПредложений);
		
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура Константа_НеВыгружатьИзображенияТорговыхПредложений(Элемент)
	
	Константа_НеВыгружатьИзображенияТорговыхПредложений
		= НЕ Константа_НеВыгружатьИзображенияТорговыхПредложений;
	
	Подключаемый_ПриИзмененииРеквизита(Элемент, Ложь);
	
КонецПроцедуры

&НаКлиенте
Процедура ОтправлятьВходящиеДокументыНаУтверждениеПриИзменении(Элемент)
	
	ДлительнаяОперация = НачатьВыполнениеДействийПередИзменениемИспользованияУтверждения(
		Константа_ОтправлятьВходящиеДокументыНаУтверждение, УникальныйИдентификатор);
	Константа_ОтправлятьВходящиеДокументыНаУтверждение = Не Константа_ОтправлятьВходящиеДокументыНаУтверждение;
	ОжидатьЗавершенияВыполненияДействийПередИзменениемИспользованияУтверждения(ДлительнаяОперация);

КонецПроцедуры

&НаКлиенте
Процедура ЗапретитьФормированиеОтветногоТитулаБезДокументовУчетаПриИзменении(Элемент)
	
	Подключаемый_ПриИзмененииРеквизита(Элемент);

КонецПроцедуры

&НаКлиенте
Процедура Константа_ИспользоватьПрочтениеДокументовЭДОПриИзменении(Элемент)
	
	Подключаемый_ПриИзмененииРеквизита(Элемент);

КонецПроцедуры

&НаКлиенте
Процедура Константа_ИспользоватьИнтеграциюОблачногоЭДОПриИзменении(Элемент)
	Подключаемый_ПриИзмененииРеквизита(Элемент);
КонецПроцедуры

&НаКлиенте
Процедура ВключитьДиалогНажатие(Элемент)
	
	ОбщегоНазначенияБЭДКлиент.ПодключитьСистемуВзаимодействия();
	
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьСервис1СШтампПриИзменении(Элемент)
	
	Если Не ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЭлектронноеВзаимодействие.ОбменСКонтрагентами") Тогда
		Возврат;
	КонецЕсли;
	
	Если ИспользоватьСервис1СШтамп Тогда
		ВариантИспользованияСервиса1СШтамп = "Перечисление.ВариантыИспользованияСервиса1СШтамп.Использовать";
	Иначе
		ВариантИспользованияСервиса1СШтамп = "Перечисление.ВариантыИспользованияСервиса1СШтамп.НеИспользовать";
	КонецЕсли;
	
	Константа_ИспользоватьСервис1СШтамп = ПредопределенноеЗначение(ВариантИспользованияСервиса1СШтамп);
	Подключаемый_ПриИзмененииРеквизита(Элементы.Константа_ИспользоватьСервис1СШтамп);
	
КонецПроцедуры

////////////////////////////////////////////////////////////////////////////////

&НаКлиенте
Процедура ЕстьИдеяНажатие(Элемент)
	
	МодульИнтерфейсДокументовЭДОКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтерфейсДокументовЭДОКлиент");
	МодульИнтерфейсДокументовЭДОКлиент.ОткрытьСтраницуОпроса();
	
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьОзнакомлениеСЭлектроннымиДокументамиПриИзменении(Элемент)
	
	Подключаемый_ПриИзмененииРеквизита(Элемент);
	
КонецПроцедуры

&НаКлиенте
Процедура СрокХраненияТранспортногоКонтейнераЭДОПриИзменении(Элемент)
	
	Подключаемый_ПриИзмененииРеквизита(Элемент, Ложь);
	
КонецПроцедуры

&НаКлиенте
Процедура ИнструкцияДиректБанкНажатие(Элемент)

	ФайловаяСистемаКлиент.ОткрытьНавигационнуюСсылку("http://v8.1c.ru/edi/edi_app/bank/standards.htm");
	
КонецПроцедуры

&НаКлиенте
Процедура НадписьПоказыватьРекомендацииОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	
	ОткрытьСправку("Обработка.ТорговыеПредложения.Форма.Подсказка");
	
КонецПроцедуры

&НаКлиенте
Процедура НастройкиОбменаСЕИСНажатие(Элемент)
	
	Если ОбщегоНазначенияКлиент.ПодсистемаСуществует(
		"ЭлектронноеВзаимодействие.ЭлектронноеАктированиеЕИС") Тогда
		МодульЭлектронноеАктированиеЕИСКлиент =
			ОбщегоНазначенияКлиент.ОбщийМодуль("ЭлектронноеАктированиеЕИСКлиент");
		МодульЭлектронноеАктированиеЕИСКлиент.ОткрытьФормуНастройкиОбменаЕИС();
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура НастройкиОбменаСЕИСЗаказчиковНажатие(Элемент)
	
	Если ОбщегоНазначенияКлиент.ПодсистемаСуществует(
		"ЭлектронноеВзаимодействие.ЭлектронноеАктированиеЕИС") Тогда
		МодульЭлектронноеАктированиеЕИСКлиент =
			ОбщегоНазначенияКлиент.ОбщийМодуль("ЭлектронноеАктированиеЕИСКлиент");
		МодульЭлектронноеАктированиеЕИСКлиент.ОткрытьФормуНастройкиОбменаЕИСДляЗаказчиков();
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура Константа_ИспользоватьЭлектронноеАктированиеВЕИСПриИзменении(Элемент)
	
	Подключаемый_ПриИзмененииРеквизита(Элемент);
	
КонецПроцедуры

&НаКлиенте
Процедура Константа_ИспользоватьЭлектронноеАктированиеЗаказчикаВЕИСПриИзменении(Элемент)
	
	Подключаемый_ПриИзмененииРеквизита(Элемент);
	
КонецПроцедуры

&НаКлиенте
Процедура ПоказыватьРекомендацииБизнесСетьПриИзменении(Элемент)
	
	Подключаемый_ПриИзмененииРеквизита(Элемент);
	
КонецПроцедуры

&НаКлиенте
Процедура ВыводитьQRКодНаПечатныхФормахДокументовПриИзменении(Элемент)
	
	Подключаемый_ПриИзмененииРеквизита(Элемент);
	
КонецПроцедуры

&НаКлиенте
Процедура Константа_ТипПодписиЭДОчистка(Элемент, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	
КонецПроцедуры

&НаКлиенте
Процедура Константа_ТипПодписиМЧДОчистка(Элемент, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	
КонецПроцедуры

&НаКлиенте
Процедура Константа_ИспользоватьРазделениеДокументовПоОтветственнымЭДО(Элемент)
	
	Подключаемый_ПриИзмененииРеквизита(Элемент);
	
КонецПроцедуры

&НаКлиенте
Процедура Константа_ПриниматьПриглашенияЭДОАвтоматическиПриИзменении(Элемент)
	
	Подключаемый_ПриИзмененииРеквизита(Элемент);
	
КонецПроцедуры

#КонецОбласти

#Область ОбработчикиСобытийТаблицыСервисыДоставки

&НаКлиенте
Процедура СервисыДоставкиПриИзменении(Элемент)

	ТекущиеДанные = Элемент.ТекущиеДанные;
	ТипГрузоперевозки = ТекущиеДанные.ТипГрузоперевозки;
	МодульСервисДоставкиКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисДоставкиКлиентСервер");
		
	Если Элемент.ТекущийЭлемент = Элементы.СервисыДоставкиИспользоватьСервисДоставки Тогда
		ЗначениеРеквизита = ТекущиеДанные.ИспользоватьСервисДоставки;
		Если ЗначениеРеквизита Тогда
			МодульСервисДоставкиВызовСервера = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисДоставкиВызовСервера");
			МодульСервисДоставкиВызовСервера.ЗаполнитьНастройкиОбщиеСервисДоставкиПоУмолчанию(ТипГрузоперевозки);
		Иначе
			ТекущиеДанные.ИспользоватьНаложенныеПлатежи = Ложь;
			ТекущиеДанные.ИспользоватьЧастичнуюДоставку = Ложь;
		КонецЕсли;
		Если ТипГрузоперевозки = МодульСервисДоставкиКлиентСервер.ТипГрузоперевозкиСервис1СДоставка() Тогда
			РеквизитПутьКДанным = "Константа_ИспользоватьСервис1СДоставка";
		ИначеЕсли ТипГрузоперевозки = МодульСервисДоставкиКлиентСервер.ТипГрузоперевозкиСервис1СКурьер() Тогда
			РеквизитПутьКДанным = "Константа_ИспользоватьСервис1СКурьер";
		ИначеЕсли ТипГрузоперевозки = МодульСервисДоставкиКлиентСервер.ТипГрузоперевозкиСервис1СКурьерика() Тогда
			РеквизитПутьКДанным = "Константа_ИспользоватьСервис1СКурьерика";
		ИначеЕсли ТипГрузоперевозки = МодульСервисДоставкиКлиентСервер.ТипГрузоперевозкиСервис1ССДЭК() Тогда
			РеквизитПутьКДанным = "Константа_ИспользоватьСервис1ССДЭК";
		Иначе
			Возврат;
		КонецЕсли;
	ИначеЕсли Элемент.ТекущийЭлемент = Элементы.СервисыДоставкиИспользоватьНаложенныеПлатежи Тогда
		ЗначениеРеквизита = ТекущиеДанные.ИспользоватьНаложенныеПлатежи;
		Если ТипГрузоперевозки = МодульСервисДоставкиКлиентСервер.ТипГрузоперевозкиСервис1СКурьер() Тогда
			РеквизитПутьКДанным = "Константа_ИспользоватьНаложенныеПлатежиСервис1СКурьер";
		ИначеЕсли ТипГрузоперевозки = МодульСервисДоставкиКлиентСервер.ТипГрузоперевозкиСервис1ССДЭК() Тогда
			РеквизитПутьКДанным = "Константа_ИспользоватьНаложенныеПлатежиСервис1ССДЭК";
		КонецЕсли;
	ИначеЕсли Элемент.ТекущийЭлемент = Элементы.СервисыДоставкиИспользоватьЧастичнуюДоставку Тогда
		ЗначениеРеквизита = ТекущиеДанные.ИспользоватьЧастичнуюДоставку;
		Если ТипГрузоперевозки = МодульСервисДоставкиКлиентСервер.ТипГрузоперевозкиСервис1СКурьерика() Тогда
			РеквизитПутьКДанным = "Константа_ИспользоватьЧастичнуюДоставкуСервис1СКурьерика";
		КонецЕсли;
	КонецЕсли;
	
	Подключаемый_ПриИзмененииРеквизитаТабличнойЧасти(РеквизитПутьКДанным, ЗначениеРеквизита);
	
КонецПроцедуры

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

#КонецОбласти

#Область ОбработчикиКомандФормы

&НаКлиенте
Процедура НастройкиЭлектроннойПодписиИШифрования(Команда)
	
	ЭлектроннаяПодписьКлиент.ОткрытьНастройкиЭлектроннойПодписиИШифрования();
	
КонецПроцедуры

&НаКлиенте
Процедура ОткрытьНастройкиПрофилейЭДО(Команда)
	
	Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЭлектронноеВзаимодействие.ОбменСКонтрагентами") Тогда
		МодульСинхронизацияЭДОКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СинхронизацияЭДОКлиент");
		МодульСинхронизацияЭДОКлиент.ОткрытьСписокУчетныхЗаписей();
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ОткрытьСоглашенияОбИспользованииЭД(Команда)
	
	Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЭлектронноеВзаимодействие.ОбменСКонтрагентами") Тогда
		МодульНастройкиЭДОКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("НастройкиЭДОКлиент");
		ПараметрыОткрытия = ОбщегоНазначенияБЭДКлиент.НовыеПараметрыОткрытияФормы();
		ПараметрыОткрытия.Владелец = ЭтотОбъект;
		МодульНастройкиЭДОКлиент.ОткрытьФормуНастроекЭДО(, ПараметрыОткрытия);
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ОткрытьПомощникПодключенияКПорталу1СЭДО(Команда)
	
	МодульСинхронизацияЭДОКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СинхронизацияЭДОКлиент");
	МодульСинхронизацияЭДОКлиент.СоздатьУчетнуюЗапись1СЭДО();
	
КонецПроцедуры

&НаКлиенте
Процедура ОткрытьУчетныеЗаписиОблачногоЭДО(Команда)
	
	Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЭлектронноеВзаимодействие.ОбменСКонтрагентами.ИнтеграцияОблачногоЭДО") Тогда
		МодульИнтеграцияОблачногоЭДОКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияОблачногоЭДОКлиент");
		МодульИнтеграцияОблачногоЭДОКлиент.ОткрытьСписокУчетныхЗаписейОблачногоЭДО();
	КонецЕсли;
	
КонецПроцедуры

// СервисДоставки
&НаКлиенте
Процедура НастроитьСозданиеПлатежныхДокументов(Команда)
	
	// СервисДоставки начало
	Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЭлектронноеВзаимодействие.СервисДоставки") Тогда
		ОбщийМодуль = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисДоставкиКлиентПереопределяемый");
		ОбщийМодуль.ОткрытьФормуНастройкиСозданиеПлатежныхДокументов();
	КонецЕсли;
	// СервисДоставки конец
	
КонецПроцедуры
&НаКлиенте
Процедура НастроитьОтправкуЭД(Команда)
	
	НастроитьРасписаниеРегламентногоЗадания(ИмяРегламентногоЗаданияОтправкаЭлектронныхДокументов());
	
КонецПроцедуры

&НаКлиенте
Процедура НастроитьПолучениеЭД(Команда)
	
	НастроитьРасписаниеРегламентногоЗадания(ИмяРегламентногоЗаданияПолучениеЭлектронныхДокументов());
	
КонецПроцедуры

&НаКлиенте
Процедура ОповещатьОСобытияхЭДОПриИзменении(Элемент)
	
	ИзменитьИспользованиеЗадания(ИмяРегламентногоЗаданияПроверкаНовыхЭлектронныхДокументов(),
		ОповещатьОСобытияхЭДО);
	
	ОбновитьПовторноИспользуемыеЗначения();
	
	Элементы.ПроверкаНовыхЭлектронныхДокументов.Доступность = ОповещатьОСобытияхЭДО;
	
	МодульСинхронизацияЭДОКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СинхронизацияЭДОКлиент");
	МодульСинхронизацияЭДОКлиент.ПодключитьОповещенияОНовыхЭлектронныхДокументах(ОповещатьОСобытияхЭДО);
	
	ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы,
		"ВключитьДиалог", "Видимость", РазделениеВключено И Не ИспользуютсяОбсуждения И ОповещатьОСобытияхЭДО
		И ТребуетсяВзаимодействие);
	ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы,
		"ВключитеДиалог", "Видимость", РазделениеВключено И Не ИспользуютсяОбсуждения И ОповещатьОСобытияхЭДО
		И НЕ ТребуетсяВзаимодействие);
	
КонецПроцедуры

&НаКлиенте
Процедура НастроитьОповещенияЭДО(Команда)
	
	НастроитьРасписаниеРегламентногоЗадания(ИмяРегламентногоЗаданияПроверкаНовыхЭлектронныхДокументов());
	
КонецПроцедуры

&НаКлиенте
Процедура ОткрытьНастройкиОбменаСБанками(Команда)
	
	ФормаСписка = "Справочник.НастройкиОбменСБанками.Форма.ФормаСписка";
	ОткрытьФорму(ФормаСписка, , ЭтотОбъект);

КонецПроцедуры

////////////////////////////////////////////////////////////////////////////////
// Бизнес-сеть

&НаКлиенте
Процедура ОткрытьПомощникПодключенияКСервисуБизнесСеть(Команда)
	
	ФормаПомощникаБизнесСети = "Обработка.БизнесСеть.Форма.РегистрацияОрганизаций";
	ОткрытьФорму(ФормаПомощникаБизнесСети);
	
КонецПроцедуры

&НаКлиенте
Процедура ОткрытьПомощникПубликацииТорговыхПредложений(Команда)
	
	Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЭлектронноеВзаимодействие.ТорговыеПредложения") Тогда
		
		ОчиститьСообщения();
		
		ОбщийМодульТорговыеПредложенияКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ТорговыеПредложенияКлиент");
		ОбщийМодульТорговыеПредложенияКлиент.ОткрытьФормуПомощникаПубликации(Неопределено, ЭтотОбъект);
		
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура НастроитьРасписаниеПубликацииТорговыхПредложений(Команда)
	
	Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЭлектронноеВзаимодействие.ТорговыеПредложения") Тогда
		
		ОбщийМодульТорговыеПредложенияСлужебныйКлиент = 
			ОбщегоНазначенияКлиент.ОбщийМодуль("ТорговыеПредложенияСлужебныйКлиент");
		ИмяЗадания = ОбщийМодульТорговыеПредложенияСлужебныйКлиент.ИмяЗаданияСинхронизацияТорговыхПредложений();
		
		НастроитьРасписаниеРегламентногоЗадания(ИмяЗадания);
		
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ОткрытьПрофильАбонента1СБизнесСеть(Команда)
	
	Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЭлектронноеВзаимодействие.БизнесСеть") Тогда
		
		ОбщийМодульБизнесСетьСлужебныйКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("БизнесСетьСлужебныйКлиент");
		
		ИдентификаторОрганизации = Неопределено;
		
		Если ПодключеноНесколькоОрганизаций(ИдентификаторОрганизации) Тогда
			ОбщийМодульБизнесСетьСлужебныйКлиент.ОткрытьФормуВыбораОрганизации();
		Иначе
			Если ЗначениеЗаполнено(ИдентификаторОрганизации) Тогда // есть только одна организация
				ОбщийМодульБизнесСетьСлужебныйКлиент.ОткрытьПрофильОрганизацииНаСайтеБизнесСети(ИдентификаторОрганизации);
			Иначе
				ОбщийМодульБизнесСетьСлужебныйКлиент.ПоказатьОповещениеБизнесСети(НСтр("ru = 'Ни одна организация не подключена к сервису'"));
			КонецЕсли;
		КонецЕсли;
		
	КонецЕсли;
	
КонецПроцедуры

&НаСервере
Функция ПодключеноНесколькоОрганизаций(ИдентификаторОрганизации)
	
	ОбщийМодульБизнесСеть = ОбщегоНазначения.ОбщийМодуль("БизнесСеть");
	
	ПодключенныеОрганизации = ОбщийМодульБизнесСеть.ПодключенныеОрганизации();
	
	КоличествоОрганизаций = ПодключенныеОрганизации.Количество();
	
	Результат = КоличествоОрганизаций > 1;
	
	Если КоличествоОрганизаций = 1 Тогда
		ИдентификаторОрганизации = ПодключенныеОрганизации[0].Идентификатор;
	КонецЕсли;
	
	Возврат Результат;
	
КонецФункции

&НаКлиенте
Процедура ОткрытьНастройкиEDI(Команда)
	
	Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЭлектронноеВзаимодействие.СервисEDI") Тогда
		
		ОбщийМодульНастройкиEDIКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("НастройкиEDIКлиент");
		ОбщийМодульНастройкиEDIКлиент.ОткрытьФормуНастройкиEDI();
		
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ОткрытьСтраницуПодключенияEDIОбменСТорговымиСетями(Команда)

	ПерейтиПоНавигационнойСсылке("https://v8.1c.ru/tekhnologii/1c-edi/");

КонецПроцедуры

////////////////////////////////////////////////////////////////////////////////
// Маршруты подписания

&НаКлиенте
Процедура ОткрытьМаршрутыПодписания(Команда)
	
	МаршрутыПодписанияБЭДКлиент.ОткрытьСписокМаршрутовПодписания();
	
КонецПроцедуры

&НаКлиенте
Процедура ОткрытьМашиночитаемыеДоверенности(Команда)
	
	Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЭлектронноеВзаимодействие.ОбменСКонтрагентами") Тогда
		МодульМашиночитаемыеДоверенностиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("МашиночитаемыеДоверенностиКлиент");
		МодульМашиночитаемыеДоверенностиКлиент.ОткрытьОбщуюФормуСписковМЧД();
	КонецЕсли;

КонецПроцедуры

&НаКлиенте
Процедура ОткрытьФормуПомощникаНастройкиОтправкиПолученияЭД(Операция)
	
	МодульСинхронизацияЭДОКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СинхронизацияЭДОКлиент");
	МодульСинхронизацияЭДОКлиент.ПоказатьРезультатПроверкиНастроекРегламентныхЗаданий(
		РезультатПроверкиНастроекОтправкиПолученияЭД, Операция, ЭтотОбъект);
	
КонецПроцедуры

&НаКлиенте
Процедура ОткрытьПомощникНастроекРегламентногоЗаданияОтправка(Команда)
	
	ОткрытьФормуПомощникаНастройкиОтправкиПолученияЭД(ОперацияНастройкиРегламентногоЗадания_Отправка());
	
КонецПроцедуры

&НаКлиенте
Процедура ОткрытьПомощникНастроекРегламентногоЗаданияПолучение(Команда)
	
	ОткрытьФормуПомощникаНастройкиОтправкиПолученияЭД(ОперацияНастройкиРегламентногоЗадания_Получение());
	
КонецПроцедуры

&НаКлиенте
Процедура ОткрытьПомощникНастроекРегламентногоЗаданияПолучениеПоТокенам(Команда)
	
	ОткрытьФормуПомощникаНастройкиОтправкиПолученияЭД(ОперацияНастройкиРегламентногоЗадания_ПолучениеПоТокенам());
	
КонецПроцедуры

&НаКлиенте
Процедура ПомечатьНаУдалениеТранспортныеКонтейнерыЭДОПриИзменении(Элемент)
	
	ИмяЗадания =  ИмяРегламентногоЗаданияПометкаНаУдалениеТранспортныхКонтейнеровЭДО();
	ИзменитьИспользованиеЗадания(ИмяЗадания, ПомечатьНаУдалениеТранспортныеКонтейнерыЭДО);
	
	Элементы.ПометкаНаУдалениеТранспортныхКонтейнеровЭДО.Доступность = ПомечатьНаУдалениеТранспортныеКонтейнерыЭДО;
	Элементы.ГруппаСрокХраненияТранспортныхКонтейнеров.Доступность = ПомечатьНаУдалениеТранспортныеКонтейнерыЭДО;
	
	Если ПомечатьНаУдалениеТранспортныеКонтейнерыЭДО И Не ЗначениеЗаполнено(Константа_СрокХраненияТранспортногоКонтейнераЭДО) Тогда
		Константа_СрокХраненияТранспортногоКонтейнераЭДО = 90; // по умолчанию в днях
		Подключаемый_ПриИзмененииРеквизита(Элементы.СрокХраненияТранспортногоКонтейнераЭДО, Ложь);
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура НастроитьПометкуНаУдалениеТранспортныхКонтейнеровЭДО(Команда)
	
	ИмяЗадания =  ИмяРегламентногоЗаданияПометкаНаУдалениеТранспортныхКонтейнеровЭДО();
	НастроитьРасписаниеРегламентногоЗадания(ИмяЗадания);
	
КонецПроцедуры

////////////////////////////////////////////////////////////////////////////////

&НаКлиенте
Процедура РазблокироватьРаботуСВнешнимиРесурсами(Команда)
	
	РазблокироватьРаботуСВнешнимиРесурсамиНаСервере();
	
КонецПроцедуры

&НаКлиенте
Процедура СостоянияАвтоматическогоПолученияЭДО(Команда)
	
	МодульАвтоматическоеПолучениеЭДОКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("АвтоматическоеПолучениеЭДОКлиент");
	МодульАвтоматическоеПолучениеЭДОКлиент.ОткрытьФормуСостоянийПолучения();
	
КонецПроцедуры

#КонецОбласти

#Область СлужебныеПроцедурыИФункции

&НаСервере
Процедура УстановитьУсловноеОформление()

	УсловноеОформление.Элементы.Очистить();
	
	// СервисДоставки начало
	Если ОбщегоНазначения.ПодсистемаСуществует("ЭлектронноеВзаимодействие.СервисДоставки") Тогда
		
		МодульСервисДоставкиКлиентСервер = ОбщегоНазначения.ОбщийМодуль("СервисДоставкиКлиентСервер");
		
		// Наложенные платежи
		Элемент = УсловноеОформление.Элементы.Добавить();

		ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
		ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.СервисыДоставкиИспользоватьНаложенныеПлатежи.Имя);

		ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
		ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СервисыДоставки.ИспользоватьСервисДоставки");
		ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
		ОтборЭлемента.ПравоеЗначение = Ложь;
		
		Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
		
		//
		
		Элемент = УсловноеОформление.Элементы.Добавить();

		ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
		ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.СервисыДоставкиИспользоватьНаложенныеПлатежи.Имя);

		ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
		ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СервисыДоставки.ТипГрузоперевозки");
		ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСписке;
		ТипыГрузоперевозкиСНаложеннымиПлатежами = Новый СписокЗначений;
		ТипыГрузоперевозкиСНаложеннымиПлатежами.Добавить(МодульСервисДоставкиКлиентСервер.ТипГрузоперевозкиСервис1СКурьер());
		ТипыГрузоперевозкиСНаложеннымиПлатежами.Добавить(МодульСервисДоставкиКлиентСервер.ТипГрузоперевозкиСервис1ССДЭК());
		ОтборЭлемента.ПравоеЗначение = ТипыГрузоперевозкиСНаложеннымиПлатежами;
		
		Элемент.Оформление.УстановитьЗначениеПараметра("Отображать", Ложь);
		
		// Частичная доставка
		Элемент = УсловноеОформление.Элементы.Добавить();

		ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
		ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.СервисыДоставкиИспользоватьЧастичнуюДоставку.Имя);

		ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
		ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СервисыДоставки.ИспользоватьСервисДоставки");
		ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
		ОтборЭлемента.ПравоеЗначение = Ложь;
		
		Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
		
		//
		
		Элемент = УсловноеОформление.Элементы.Добавить();

		ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
		ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.СервисыДоставкиИспользоватьЧастичнуюДоставку.Имя);

		ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
		ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СервисыДоставки.ТипГрузоперевозки");
		ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСписке;
		ТипыГрузоперевозкиСЧастичнойДоставкой = Новый СписокЗначений;
		ТипыГрузоперевозкиСЧастичнойДоставкой.Добавить(МодульСервисДоставкиКлиентСервер.ТипГрузоперевозкиСервис1СКурьерика());
		ОтборЭлемента.ПравоеЗначение = ТипыГрузоперевозкиСЧастичнойДоставкой;
		
		Элемент.Оформление.УстановитьЗначениеПараметра("Отображать", Ложь);
		
	КонецЕсли;
	// СервисДоставки конец
	
КонецПроцедуры

&НаСервере
Процедура ОбновитьЭлементыФормы()
	
	УстановитьНастройкиЗаданий();
	ПрочитатьУстановитьДоступность();
	
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ПриИзмененииРеквизита(Элемент, ОбновлятьИнтерфейс = Истина)
	
	Результат = ПриИзмененииРеквизитаСервер(Элемент.Имя);
	
	Если ОбновлятьИнтерфейс Тогда
		
		ОбновитьИнтерфейс = Истина;
		ПодключитьОбработчикОжидания("ОбновитьИнтерфейсПрограммы", 1, Истина);
		
	КонецЕсли;
	
	Если Результат.Свойство("ОповещениеФорм") Тогда
		Оповестить(Результат.ОповещениеФорм.ИмяСобытия, Результат.ОповещениеФорм.Параметр,
			Результат.ОповещениеФорм.Источник);
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ПриИзмененииРеквизитаТабличнойЧасти(РеквизитПутьКДанным, ЗначениеРеквизита, ОбновлятьИнтерфейс = Истина)
	
	Результат = Новый Структура;
	
	СохранитьЗначениеРеквизита(РеквизитПутьКДанным, Результат, ЗначениеРеквизита);
	
	ПрочитатьУстановитьДоступность(РеквизитПутьКДанным);
	
	ОбновитьПовторноИспользуемыеЗначения();
	
	Если ОбновлятьИнтерфейс Тогда
		
		ОбновитьИнтерфейс = Истина;
		ПодключитьОбработчикОжидания("ОбновитьИнтерфейсПрограммы", 1, Истина);
		
	КонецЕсли;
	
	Если Результат.Свойство("ОповещениеФорм") Тогда
		Оповестить(Результат.ОповещениеФорм.ИмяСобытия, Результат.ОповещениеФорм.Параметр,
			Результат.ОповещениеФорм.Источник);
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ОбновитьИнтерфейсПрограммы()
	
	Если ОбновитьИнтерфейс = Истина Тогда
		ОбновитьИнтерфейс = Ложь;
		ОбновитьИнтерфейс();
	КонецЕсли;
	
КонецПроцедуры

&НаСервере
Функция ПриИзмененииРеквизитаСервер(ИмяЭлемента)
	
	Результат = Новый Структура;
	
	РеквизитПутьКДанным = Элементы[ИмяЭлемента].ПутьКДанным;
	
	СохранитьЗначениеРеквизита(РеквизитПутьКДанным, Результат);
	
	ПрочитатьУстановитьДоступность(РеквизитПутьКДанным);
	
	ОбновитьПовторноИспользуемыеЗначения();
	
	Возврат Результат;
	
КонецФункции

&НаСервере
Процедура СохранитьЗначениеРеквизита(Знач РеквизитПутьКДанным, Результат, ЗначениеРеквизита = "ЗначениеРеквизита")
	
	// Сохранение значений реквизитов, не связанных с константами напрямую (в отношении один-к-одному).
	Если РеквизитПутьКДанным = "" Тогда
		Возврат;
	КонецЕсли;
	
	// Определение имени константы.
	КонстантаИмя = "";
	Если НРег(Лев(РеквизитПутьКДанным, 10)) = НРег("Константа_") Тогда
		// Если путь к данным реквизита указан через "НаборКонстант".
		КонстантаИмя = Сред(РеквизитПутьКДанным, 11);
	Иначе
		// Определение имени и запись значения реквизита в соответствующей константе из "НаборКонстант".
		// Используется для тех реквизитов формы, которые связаны с константами напрямую (в отношении один-к-одному).
	КонецЕсли;
	
	// Сохранения значения константы.
	Если КонстантаИмя <> "" Тогда
		
		ЗначениеРеквизита = ?(ЗначениеРеквизита = "ЗначениеРеквизита", ЭтотОбъект[РеквизитПутьКДанным], ЗначениеРеквизита);
		
		Если Константы[КонстантаИмя].Получить() <> ЗначениеРеквизита Тогда
			Константы[КонстантаИмя].Установить(ЗначениеРеквизита);
		КонецЕсли;
		
		ОповещениеФорм = Новый Структура(
			"ИмяСобытия, Параметр, Источник",
			"Запись_НаборКонстант", Неопределено, КонстантаИмя);
		Результат.Вставить("ОповещениеФорм", ОповещениеФорм);
		
	КонецЕсли;
	
КонецПроцедуры

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

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

&НаСервере
Процедура ИзменитьИспользованиеЗадания(ИмяЗадания, Использование, ПараметрыЗадания = Неопределено)
	
	ПараметрыЗадания = Новый Структура;
	ПараметрыЗадания.Вставить("Использование", Использование);
	РегламентноеЗадание = ОбщегоНазначенияБЭД.РегламентноеЗаданиеПоНаименованию(ИмяЗадания);
	Если РегламентноеЗадание = Неопределено Тогда
		РегламентноеЗадание = Метаданные.РегламентныеЗадания.Найти(ИмяЗадания);
		ПараметрыЗадания.Вставить("Метаданные", РегламентноеЗадание);
		РегламентноеЗадание = РегламентныеЗаданияСервер.ДобавитьЗадание(ПараметрыЗадания);
	Иначе
		РегламентныеЗаданияСервер.ИзменитьЗадание(РегламентноеЗадание.УникальныйИдентификатор, ПараметрыЗадания);
	КонецЕсли;	
	
	Элемент = Элементы.Найти(ИмяЗадания);
	Если Элемент <> Неопределено Тогда
		Элемент.Заголовок = ОбщегоНазначенияБЭД.ПредставлениеРасписанияРегламентногоЗадания(РегламентноеЗадание);
	КонецЕсли;
	
КонецПроцедуры

////////////////////////////////////////////////////////////////////////////////
// СервисДоставки

&НаСервере
Процедура ИзменитьИспользованиеЗаданияСинхронизацияССервисомИнтеграции(ИспользоватьНаложенныеПлатежиСервисДоставки = Неопределено,
	ИспользоватьСинхронизациюПоЧастичнойДоставке = Неопределено)
	
	// СервисДоставки начало
	Если ОбщегоНазначения.ПодсистемаСуществует("ЭлектронноеВзаимодействие.СервисДоставки") Тогда
		
		МодульСервисДоставки = ОбщегоНазначения.ОбщийМодуль("СервисДоставки");
		
		// Наложенные платежи
		Если ИспользоватьНаложенныеПлатежиСервисДоставки = Неопределено Тогда
			ИспользоватьНаложенныеПлатежиСервисДоставки = МодульСервисДоставки.ИспользуютсяНаложенныеПлатежи()
				И (Константы["ИспользоватьНаложенныеПлатежиСервис1СКурьер"].Получить()
				Или Константы["ИспользоватьНаложенныеПлатежиСервис1ССДЭК"].Получить());
		КонецЕсли;
		ТипСинхронизации = Перечисления["ТипыСинхронизацииСервисДоставки"].ЗагрузкаДанныхПоНаложеннымПлатежам;
		Использование = ИспользоватьАвтоматическоеОбновлениеДанныхСервисДоставки И ИспользоватьНаложенныеПлатежиСервисДоставки;
		МодульСервисДоставки.ИзменитьИспользованиеЗаданияСинхронизацияССервисомИнтеграции(ТипСинхронизации, Использование);
	
		// Частичная доставка
		Если ИспользоватьСинхронизациюПоЧастичнойДоставке = Неопределено Тогда
			Если ИспользоватьСинхронизациюПоЧастичнойДоставке = Неопределено Тогда
				ИспользоватьСинхронизациюПоЧастичнойДоставке = МодульСервисДоставки.ИспользуетсяЧастичнаяДоставка()
					И Константы["ИспользоватьЧастичнуюДоставкуСервис1СКурьерика"].Получить();
			КонецЕсли;
		КонецЕсли;
		ТипСинхронизации = Перечисления["ТипыСинхронизацииСервисДоставки"].СинхронизацияПоЧастичнойДоставке;
		Использование = ИспользоватьАвтоматическоеОбновлениеДанныхСервисДоставки И ИспользоватьСинхронизациюПоЧастичнойДоставке;
		МодульСервисДоставки.ИзменитьИспользованиеЗаданияСинхронизацияССервисомИнтеграции(ТипСинхронизации, Использование);
	КонецЕсли;
	// СервисДоставки конец
	
КонецПроцедуры

&НаКлиенте
Процедура НастроитьРасписаниеРегламентногоЗадания(ИмяЗадания)
	
	Оповещение = Новый ОписаниеОповещения("НастроитьРасписаниеЗавершение", ЭтотОбъект, ИмяЗадания);
	ОбщегоНазначенияБЭДКлиент.НастроитьРасписаниеРегламентногоЗадания(ИмяЗадания, Оповещение);
	
КонецПроцедуры

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

&НаСервере
Процедура УстановитьНастройкуЗадания(НаименованиеЗадания, ЭлементНастройкиРасписания, РеквизитФлаг, ЭтоАдминистраторСистемы)
	
	РегламентноеЗадание = ОбщегоНазначенияБЭД.РегламентноеЗаданиеПоНаименованию(НаименованиеЗадания);
	ВидимостьФлажка = (РегламентноеЗадание <> Неопределено);
	Если ВидимостьФлажка Тогда
		РеквизитФлаг = РегламентноеЗадание.Использование;
		ЭлементНастройкиРасписания.Заголовок = ОбщегоНазначенияБЭД.ПредставлениеРасписанияРегламентногоЗадания(
			РегламентноеЗадание);
		ЭлементНастройкиРасписания.Доступность = РегламентноеЗадание.Использование;
	КонецЕсли;
	ВидимостьРасписания = ВидимостьФлажка И Не РазделениеВключено И ЭтоАдминистраторСистемы;
	ЭлементНастройкиРасписания.Видимость = ВидимостьРасписания;
		
КонецПроцедуры

&НаКлиенте
Процедура НастроитьРасписаниеЗавершение(РасписаниеЗадания, ИмяЗадания) Экспорт
	
	Если РасписаниеЗадания = Неопределено Тогда
		Возврат;
	КонецЕсли;
	
	Элемент = Элементы[ИмяЗадания];
	Если Элемент <> Неопределено И РасписаниеЗадания <> Неопределено Тогда
		Элемент.Заголовок = РасписаниеЗадания;
	КонецЕсли;
	
	Оповестить(
		"СинхронизацияТорговыхПредложений_ПриИзменении", ИспользоватьАвтоматическуюПубликациюТорговыхПредложений);
	
КонецПроцедуры

&НаСервере
Процедура ПриИзмененииНастроекEDI()
	
	Если Не ОбщегоНазначения.ПодсистемаСуществует("ЭлектронноеВзаимодействие.СервисEDI") Тогда
		Возврат;
	КонецЕсли;
	
	ОбщийМодульНастройкиEDI = ОбщегоНазначения.ОбщийМодуль("НастройкиEDI");
	ЕстьНастройкиОрганизаций = ОбщийМодульНастройкиEDI.ЕстьНастройкиОрганизаций();
	
	ТекстГиперссылкиНастройки = ?(ЕстьНастройкиОрганизаций, НСтр("ru = 'Настройки обмена заказами'"), НСтр("ru = 'Настроить обмен заказами'"));
	ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы,
		"ОбработкаСервисEDIНастройки", "Заголовок", ТекстГиперссылкиНастройки);
	ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы,
		"ГруппаИнформацияНастройкиEDI", "Видимость", Константа_ИспользоватьОбменEDI И Не ЕстьНастройкиОрганизаций);
	
КонецПроцедуры

////////////////////////////////////////////////////////////////////////////////

&НаСервереБезКонтекста
Функция НачатьПроверкуРегламентныхЗаданийНаСервере(ИдентификаторФормы, Операция = "ПоУмолчанию")
	
	МодульСинхронизацияЭДО = ОбщегоНазначения.ОбщийМодуль("СинхронизацияЭДО");
	Возврат МодульСинхронизацияЭДО.НачатьПроверкуНастроекРегламентныхЗаданий(
		ИдентификаторФормы, Операция);
	
КонецФункции

&НаКлиенте
Процедура ОжидатьЗавершенияПроверкиНастроекРегламентныхЗаданий(ИнициировалПользователь, Операция)
	
	Контекст = Новый Структура;
	Контекст.Вставить("ИнициировалПользователь", ИнициировалПользователь);
	Контекст.Вставить("Операция", Операция);
	МодульСинхронизацияЭДОКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СинхронизацияЭДОКлиент");
	ОповещениеОЗавершении = Новый ОписаниеОповещения("ПроверитьНастройкиРегламентныхЗаданийЭДООбработкаРезультата",
		ЭтотОбъект, Контекст);
	МодульСинхронизацияЭДОКлиент.ОжидатьЗавершенияПроверкиНастроекРегламентныхЗаданий(ПроверкаНастроекОтправкиПолученияЭД,
		ОповещениеОЗавершении, ИнициировалПользователь);
	
КонецПроцедуры

&НаКлиенте
Функция ОперацияНастройкиРегламентногоЗадания_Отправка()
	
	МодульСинхронизацияЭДОКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("СинхронизацияЭДОКлиентСервер");
	Операция = МодульСинхронизацияЭДОКлиентСервер.ОперацииПроверкиНастроекРегламентныхЗаданий().Отправка;
	
	Возврат Операция;
	
КонецФункции

&НаКлиенте
Функция ОперацияНастройкиРегламентногоЗадания_Получение()
	
	МодульСинхронизацияЭДОКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("СинхронизацияЭДОКлиентСервер");
	Операция = МодульСинхронизацияЭДОКлиентСервер.ОперацииПроверкиНастроекРегламентныхЗаданий().Получение;
	
	Возврат Операция;
	
КонецФункции

&НаКлиенте
Функция ОперацияНастройкиРегламентногоЗадания_ПолучениеПоТокенам()
	
	МодульСинхронизацияЭДОКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("СинхронизацияЭДОКлиентСервер");
	Операция = МодульСинхронизацияЭДОКлиентСервер.ОперацииПроверкиНастроекРегламентныхЗаданий().ПолучениеПоТокенам;
	
	Возврат Операция;
	
КонецФункции

&НаКлиенте
Функция ИмяРегламентногоЗаданияПометкаНаУдалениеТранспортныхКонтейнеровЭДО()
	
	МодульСинхронизация = ОбщегоНазначенияКлиент.ОбщийМодуль("СинхронизацияЭДОКлиентСервер");
	ИмяЗадания = МодульСинхронизация.ИмяРегламентногоЗаданияПометкаНаУдалениеТранспортныхКонтейнеровЭлектронныхДокументов();
	
	Возврат ИмяЗадания;
	
КонецФункции

&НаКлиенте
Функция ИмяРегламентногоЗаданияОтправкаЭлектронныхДокументов()
	
	МодульСинхронизация = ОбщегоНазначенияКлиент.ОбщийМодуль("СинхронизацияЭДОКлиентСервер");
	ИмяЗадания = МодульСинхронизация.ИмяРегламентногоЗаданияОтправкаЭлектронныхДокументов();
	
	Возврат ИмяЗадания;
	
КонецФункции

&НаКлиенте
Функция ИмяРегламентногоЗаданияПолучениеЭлектронныхДокументов()
	
	МодульСинхронизация = ОбщегоНазначенияКлиент.ОбщийМодуль("СинхронизацияЭДОКлиентСервер");
	ИмяЗадания = МодульСинхронизация.ИмяРегламентногоЗаданияПолучениеЭлектронныхДокументов();
	
	Возврат ИмяЗадания;
	
КонецФункции

////////////////////////////////////////////////////////////////////////////////

&НаКлиенте
Функция ИмяРегламентногоЗаданияПроверкаНовыхЭлектронныхДокументов()
	
	МодульСинхронизация = ОбщегоНазначенияКлиент.ОбщийМодуль("СинхронизацияЭДОКлиентСервер");
	ИмяЗадания = МодульСинхронизация.ИмяРегламентногоЗаданияПроверкаНовыхЭлектронныхДокументов();
	
	Возврат ИмяЗадания;
	
КонецФункции

&НаКлиенте
Процедура ПроверитьНастройкиРегламентныхЗаданийЭДООбработкаРезультата(Результат, Контекст) Экспорт
	
	Если Результат = Неопределено Тогда
		Возврат;
	КонецЕсли;
	
	РезультатПроверкиНастроекОтправкиПолученияЭД = Результат;
	РезультатПроверкиНастроек = РезультатПроверкиНастроекОтправкиПолученияЭД;
	
	Если Контекст.ИнициировалПользователь Тогда
		
		Если РезультатПроверкиНастроек.Успех Тогда
			
			Если Контекст.Операция = ОперацияНастройкиРегламентногоЗадания_Отправка() Тогда
				
				ИспользоватьАвтоматическуюОтправкуЭД = Истина;
				ИзменитьИспользованиеЗадания(ИмяРегламентногоЗаданияОтправкаЭлектронныхДокументов(),
					ИспользоватьАвтоматическуюОтправкуЭД);
				Элементы.ОтправкаЭлектронныхДокументов.Доступность = ИспользоватьАвтоматическуюОтправкуЭД;
				
			ИначеЕсли Контекст.Операция = ОперацияНастройкиРегламентногоЗадания_Получение() Тогда
				
				ИспользоватьАвтоматическоеПолучениеЭД = Истина;
				ИзменитьИспользованиеЗадания(ИмяРегламентногоЗаданияПолучениеЭлектронныхДокументов(),
					ИспользоватьАвтоматическоеПолучениеЭД);
				Элементы.ПолучениеЭлектронныхДокументов.Доступность = ИспользоватьАвтоматическоеПолучениеЭД;
				
				Если ИспользоватьАвтоматическоеПолучениеЭДПоТокенам Тогда
					ИспользоватьАвтоматическоеПолучениеЭДПоТокенам = Ложь;
					ИзменитьИспользованиеАвтоматическогоПолученияЭДПоТокенам(
						ИспользоватьАвтоматическоеПолучениеЭДПоТокенам);
				КонецЕсли;
				
			ИначеЕсли Контекст.Операция = ОперацияНастройкиРегламентногоЗадания_ПолучениеПоТокенам() Тогда
				
				ИспользоватьАвтоматическоеПолучениеЭДПоТокенам = Истина;
				ИзменитьИспользованиеАвтоматическогоПолученияЭДПоТокенам(ИспользоватьАвтоматическоеПолучениеЭДПоТокенам);
				
				Если ИспользоватьАвтоматическоеПолучениеЭД Тогда
					ИспользоватьАвтоматическоеПолучениеЭД = Ложь;
					ИзменитьИспользованиеЗадания(ИмяРегламентногоЗаданияПолучениеЭлектронныхДокументов(),
						ИспользоватьАвтоматическоеПолучениеЭД);
					Элементы.ПолучениеЭлектронныхДокументов.Доступность = ИспользоватьАвтоматическоеПолучениеЭД;
					Элементы.КнопкаЕстьПроблемаПолучение.Видимость = Ложь;
				КонецЕсли;
				
			КонецЕсли;
			
		Иначе
			
			ОткрытьФормуПомощникаНастройкиОтправкиПолученияЭД(Контекст.Операция);
			
		КонецЕсли;
		
	Иначе
		
		Если Не РезультатПроверкиНастроек.Успех Тогда
			
			// Проверка была запущена при создании формы. Нужно обратить внимание пользователя на проблему.
			Элементы.КнопкаЕстьПроблемаОтправка.Видимость  = ИспользоватьАвтоматическуюОтправкуЭД;
			Элементы.КнопкаЕстьПроблемаПолучение.Видимость = ИспользоватьАвтоматическоеПолучениеЭД;
			
			Если Не РезультатПроверкиНастроек.ЕстьКриптоПровайдер
				Или Не РезультатПроверкиНастроек.ПроверкаПодписи
				Или Не РезультатПроверкиНастроек.РежимРаботы Тогда
				Элементы.КнопкаЕстьПроблемаПолученияПоТокенам.Видимость = ИспользоватьАвтоматическоеПолучениеЭДПоТокенам;
			КонецЕсли;
			
		КонецЕсли;
		
	КонецЕсли;
		
КонецПроцедуры

&НаСервере
Процедура РазблокироватьРаботуСВнешнимиРесурсамиНаСервере()
	
	РегламентныеЗаданияСервер.РазблокироватьРаботуСВнешнимиРесурсами();
	
	ПрочитатьУстановитьДоступность();
	
КонецПроцедуры

&НаСервере
Функция ВнутренниеДокументыИспользуютсяИлиЕстьНастройки()
	
	ЕстьОбменСКонтрагентами = ОбщегоНазначения.ПодсистемаСуществует("ЭлектронноеВзаимодействие.ОбменСКонтрагентами");
	
	Если ЕстьОбменСКонтрагентами Тогда
		МодульНастройкиЭДО = ОбщегоНазначения.ОбщийМодуль("НастройкиЭДО");
		
		Возврат МодульНастройкиЭДО.ИспользуютсяВнутренниеДокументы()
			Или МодульНастройкиЭДО.ЕстьНастройкиВнутреннегоЭДО();
		
	КонецЕсли;
	
	Возврат Ложь;
	
КонецФункции

&НаСервереБезКонтекста
Функция ЕстьПравоНастройкиИспользованияВнутреннегоЭДО(ВыводитьСообщение) 
	
	ЕстьОбменСКонтрагентами = ОбщегоНазначения.ПодсистемаСуществует("ЭлектронноеВзаимодействие.ОбменСКонтрагентами");
	Если ЕстьОбменСКонтрагентами Тогда
		МодульНастройкиЭДО = ОбщегоНазначения.ОбщийМодуль("НастройкиЭДО");
		Возврат МодульНастройкиЭДО.ЕстьПравоНастройкиИспользованияВнутреннегоЭДО(ВыводитьСообщение);
	КонецЕсли;
	
	Возврат Ложь;
	
КонецФункции

&НаСервереБезКонтекста
Функция НачатьВыполнениеДействийПередИзменениемИспользованияУтверждения(НовоеЗначение, ИдентификаторФормы)
	
	МодульНастройкиЭДО = ОбщегоНазначения.ОбщийМодуль("НастройкиЭДО");
	Возврат МодульНастройкиЭДО.НачатьВыполнениеДействийПередИзменениемИспользованияУтверждения(НовоеЗначение,
		ИдентификаторФормы);
	
КонецФункции

&НаКлиенте
Процедура ОжидатьЗавершенияВыполненияДействийПередИзменениемИспользованияУтверждения(ДлительнаяОперация)
	
	МодульНастройкиЭДОКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("НастройкиЭДОКлиент");
	ОповещениеОЗавершении = Новый ОписаниеОповещения("ПослеВыполненияДействийПередИзменениемИспользованияУтверждения",
		ЭтотОбъект);
	МодульНастройкиЭДОКлиент.ОжидатьЗавершенияВыполненияДействийПередИзменениемИспользованияУтверждения(ДлительнаяОперация,
		ОповещениеОЗавершении);
	
КонецПроцедуры

&НаКлиенте
Процедура ПослеВыполненияДействийПередИзменениемИспользованияУтверждения(Результат, ДополнительныеПараметры) Экспорт
	
	Если Результат = Неопределено Тогда
		Возврат;
	КонецЕсли;
	
	Если Не Результат.Отказ Тогда
		Константа_ОтправлятьВходящиеДокументыНаУтверждение = Не Константа_ОтправлятьВходящиеДокументыНаУтверждение;
		Подключаемый_ПриИзмененииРеквизита(Элементы.ОтправлятьВходящиеДокументыНаУтверждение);
	КонецЕсли;
	
	ОбработкаНеисправностейБЭДКлиент.ОбработатьОшибки(Результат.КонтекстДиагностики);
	
КонецПроцедуры

// Параметры:
//  Использовать - Булево
&НаКлиенте
Процедура ИзменитьИспользованиеАвтоматическогоПолученияЭДПоТокенам(Использовать)
	
	МодульАвтоматическоеПолучениеЭДОКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("АвтоматическоеПолучениеЭДОКлиент");
	
	Если Использовать Тогда
		Оповещение = Новый ОписаниеОповещения("ИзменитьИспользованиеАвтоматическогоПолученияЭДПоТокенамЗавершение",
			ЭтотОбъект);
		МодульАвтоматическоеПолучениеЭДОКлиент.ВключитьИспользованиеТокеновДоступа(Оповещение, ЭтотОбъект);
	Иначе
		МодульАвтоматическоеПолучениеЭДОКлиент.Отключить();
		ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы,
			"СостоянияАвтоматическогоПолученияЭДО", "Видимость", ИспользоватьАвтоматическоеПолучениеЭДПоТокенам);
		ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы,
			"КнопкаЕстьПроблемаПолученияПоТокенам", "Видимость", Ложь);
	КонецЕсли;
	
КонецПроцедуры

// Параметры:
//  Результат - См. АвтоматическоеПолучениеЭДОКлиент.ВключитьИспользованиеТокеновДоступаЗавершение
//  Контекст - Неопределено
&НаКлиенте
Процедура ИзменитьИспользованиеАвтоматическогоПолученияЭДПоТокенамЗавершение(Результат, Контекст) Экспорт
	
	ИспользоватьАвтоматическоеПолучениеЭДПоТокенам = Результат.Использовать;
	
	ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы,
		"СостоянияАвтоматическогоПолученияЭДО", "Видимость", ИспользоватьАвтоматическоеПолучениеЭДПоТокенам);
	
	ОбработкаНеисправностейБЭДКлиент.ОбработатьОшибки(Результат.КонтекстДиагностики);
	
КонецПроцедуры

#КонецОбласти

Связанные материалы