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