Кассы / Форма получатели платежей при перемещении ДС / Модуль формы

файл

#Область ОбработчикиСобытийФормы

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа.
		Возврат;
	КонецЕсли;

	Для Каждого ПолучательПлатежа Из Параметры.СписокПолучателейПлатежей Цикл
		СтрокаПолучательПлатежа = ПолучателиПлатежейПриПеремещенииДС.Добавить();
		СтрокаПолучательПлатежа.ПолучательПлатежа = ПолучательПлатежа.Значение;
	КонецЦикла;
	ВалютаДенежныхСредств = Параметры.ВалютаДенежныхСредств;
	Владелец = Параметры.Владелец;
	Касса = Параметры.Касса;
	
	ТекстИнструкции = СтрШаблон(НСтр("ru = 'Доступны для добавления кассы организации %1. Валюта: %2.'"),
		Владелец, ВалютаДенежныхСредств);
	Элементы.ДекорацияИнструкция.Заголовок = ТекстИнструкции;

	СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка);

КонецПроцедуры

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

&НаКлиенте
Процедура ПеренестиДанныеЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт
	
	Отказ = ДополнительныеПараметры.Отказ;
	
	Ответ = РезультатВопроса;
	Если Ответ = КодВозвратаДиалога.Да Тогда
		ПеренестиДанные(Отказ);
	ИначеЕсли Ответ = КодВозвратаДиалога.Нет Тогда
		Модифицированность = Ложь;
		Закрыть();
	КонецЕсли;
	
КонецПроцедуры

#КонецОбласти

#Область ОбработчикиСобытийЭлементовШапкиФормы

&НаКлиенте
Процедура ПолучателиПлатежейПриПеремещенииДСПриИзменении(Элемент)
	
	Модифицированность = Истина;
	
КонецПроцедуры

#КонецОбласти

#Область ОбработчикиКомандФормы

&НаКлиенте
Процедура ЗаписатьИЗакрыть(Команда)
	
	ПеренестиДанные();
	
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда)
	
	СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда);
	
КонецПроцедуры

#КонецОбласти

#Область СлужебныеПроцедурыИФункции

#Область Прочее

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

#КонецОбласти

#КонецОбласти

Связанные материалы