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