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