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