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