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