Счет-фактура полученный / Список документов-оснований / Модуль формы

файл

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

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

	Для Каждого СтрокаСписка Из Параметры.СписокДокументовОснований Цикл
		СтрокаПолучательПлатежа = ДокументыОснования.Добавить();
		СтрокаПолучательПлатежа.ДокументОснование = СтрокаСписка.Значение;
	КонецЦикла;
	
	Организация = Параметры.Организация;
	Контрагент  = Параметры.Контрагент;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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