Варианты графиков кредитов и депозитов / Форма элемента / Модуль формы

файл

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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа.
		Возврат;
	КонецЕсли;
	
	ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(Объект, ЭтотОбъект);
	
	СсылкаКопирования = Параметры.ЗначениеКопирования;
	Если Не СсылкаКопирования.Пустая() Тогда
		ПрочитатьНаборГрафика("ГрафикТраншей", СсылкаКопирования);
		ПрочитатьНаборГрафика("ГрафикОплат", СсылкаКопирования);
		ПрочитатьНаборГрафика("ГрафикНачислений", СсылкаКопирования);
	КонецЕсли;
	
	Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
		ПриЧтенииСозданииНаСервере();
	КонецЕсли;
	
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
	
	СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка);
	
	ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
	
КонецПроцедуры

&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
	
	ПрочитатьНаборГрафика("ГрафикТраншей", ТекущийОбъект.Ссылка);
	ПрочитатьНаборГрафика("ГрафикОплат", ТекущийОбъект.Ссылка);
	ПрочитатьНаборГрафика("ГрафикНачислений", ТекущийОбъект.Ссылка);
	
	ОбновитьСвязанныеДанные();
	
	ПриЧтенииСозданииНаСервере();
	
	МодификацияКонфигурацииПереопределяемый.ПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);
	
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
	
КонецПроцедуры

&НаСервере
Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)
	
	СуммаЛимита = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Владелец, "СуммаЛимита");
	
	Если ЗначениеЗаполнено(СуммаЛимита) Тогда
		Набор = НаборГрафика("ГрафикТраншей", Объект.Ссылка);
		СуммаТраншей = Набор.Итог("Сумма");
		
		Если СуммаТраншей > СуммаЛимита Тогда
			ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
				СтрШаблон(НСтр("ru='Сумма траншей превосходит заданный лимит в %1 %2 по договору!'"), СуммаЛимита, ВалютаДоговора),
				,,, Отказ);
		КонецЕсли;
	КонецЕсли;
	
КонецПроцедуры

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

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

&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
	
	ПрочитатьНаборГрафика("ГрафикТраншей", ТекущийОбъект.Ссылка);
	ПрочитатьНаборГрафика("ГрафикОплат", ТекущийОбъект.Ссылка);
	ПрочитатьНаборГрафика("ГрафикНачислений", ТекущийОбъект.Ссылка);
	
	МодификацияКонфигурацииПереопределяемый.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
	
КонецПроцедуры

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

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
	
	ОбновитьИтогиОплат();
	ОбновитьИтогиНачислений();
	
КонецПроцедуры

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

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

&НаКлиенте
Процедура ВладелецПриИзменении(Элемент)
	
	НастроитьФормуПоДоговору();
	
КонецПроцедуры

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

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

&НаКлиенте
Процедура ТаблицаГрафикаПередОкончаниемРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования, Отказ)
	
	УказаннаяСумма = Элемент.ТекущиеДанные.Проценты + Элемент.ТекущиеДанные.Комиссия;
	
	Если Элемент.Имя = "Оплаты" Тогда
		УказаннаяСумма = УказаннаяСумма + Элемент.ТекущиеДанные.Сумма;
	КонецЕсли;
	
	Если УказаннаяСумма = 0 И (НЕ НоваяСтрока ИЛИ НЕ ОтменаРедактирования) Тогда
		Текст = НСтр("ru='В строке должна быть указана хотя бы одна из сумм!'");
		Если Не НоваяСтрока И ОтменаРедактирования Тогда
			Текст = НСтр("ru='Строки с нулевыми суммами не могут быть записаны!
			|Удалите всю строку целиком.'");
		КонецЕсли;
		ПоказатьПредупреждение(, Текст);
		Отказ = Истина;
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ТраншиПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
	
	Объект.СуммаТраншей = ГрафикТраншей.Итог("Сумма");
	ОбновитьДаты();
	
КонецПроцедуры

&НаКлиенте
Процедура ТраншиПослеУдаления(Элемент)
	
	Объект.СуммаТраншей = ГрафикТраншей.Итог("Сумма");
	ОбновитьДаты();
	
КонецПроцедуры

&НаКлиенте
Процедура ОплатыПослеУдаления(Элемент)
	
	ОбновитьИтогиОплат();
	
КонецПроцедуры

&НаКлиенте
Процедура ОплатыПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
	
	ОбновитьИтогиОплат();
	
КонецПроцедуры

&НаКлиенте
Процедура НачисленияПослеУдаления(Элемент)
	
	ОбновитьИтогиНачислений();
	
КонецПроцедуры

&НаКлиенте
Процедура НачисленияПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
	
	ОбновитьИтогиНачислений();
	
КонецПроцедуры

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

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

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

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

&НаКлиенте
Процедура ЗагрузитьГрафикТраншей(Команда)
	
	ЗагрузитьГрафик("ГрафикТраншей");
	
КонецПроцедуры

&НаКлиенте
Процедура ЗагрузитьГрафикОплат(Команда)
	
	ЗагрузитьГрафик("ГрафикОплат");
	
КонецПроцедуры

&НаКлиенте
Процедура ЗагрузитьГрафикНачислений(Команда)
	
	ЗагрузитьГрафик("ГрафикНачислений");
	
КонецПроцедуры

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

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

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

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

&НаСервере
Процедура ЗагрузитьГрафикЗавершениеНаСервере(ТипГрафика, АдресНабораЗаписей)
	
	НаборЗаписей = ОбщегоНазначения.ЗначениеИзСтрокиXML(ПолучитьИзВременногоХранилища(АдресНабораЗаписей));
	ЗначениеВРеквизитФормы(НаборЗаписей, ТипГрафика);
	
КонецПроцедуры

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

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

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

&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
	ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды

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

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

Процедура ПриЧтенииСозданииНаСервере()
	
	НастроитьФормуПоДоговору();
	
КонецПроцедуры

&НаКлиенте
Процедура ОбновитьДаты()
	
	Если ГрафикТраншей.Количество() > 0 Тогда
		ГрафикТраншей.Сортировать("Период");
		ДатаПервогоТранша = ГрафикТраншей[0].Период;
	Иначе
		ДатаПервогоТранша = Неопределено;
	КонецЕсли;
	
	Если ГрафикОплат.Количество() > 0 Тогда
		ГрафикОплат.Сортировать("Период");
		ДатаПоследнегоПлатежа = ГрафикОплат[ГрафикОплат.Количество()-1].Период;
	Иначе
		ДатаПоследнегоПлатежа = Неопределено;
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ОбновитьИтогиНачислений()
	
	НачисленияПроцентов = ГрафикНачислений.Итог("Проценты");
	НачисленияКомиссии = ГрафикНачислений.Итог("Комиссия");
	ГрафикНачислений.Сортировать("Период");
	
КонецПроцедуры

&НаКлиенте
Процедура ОбновитьИтогиОплат()
	
	СуммаОплаты = ГрафикОплат.Итог("Сумма");
	СуммаПроцентов = ГрафикОплат.Итог("Проценты");
	СуммаКомиссии = ГрафикОплат.Итог("Комиссия");
	ОбновитьДаты();
	
КонецПроцедуры

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

&НаСервере
Процедура ПрочитатьНаборГрафика(ТипГрафика, Ссылка)
	
	Набор = НаборГрафика(ТипГрафика, Ссылка);
	Набор.Прочитать();
	ЗначениеВРеквизитФормы(Набор, ТипГрафика);
	
КонецПроцедуры

&НаСервере
Процедура ЗаписатьНаборГрафика(ТипГрафика, Ссылка)
	
	Набор = НаборГрафика(ТипГрафика, Ссылка);
	Набор.Заполнить(Новый Структура("ВариантГрафика", Ссылка));
	
	МассивРесурсов = Новый Массив;
	РесурсыНабора = Набор.Метаданные().Ресурсы;
	Для Каждого РесурсНабора Из РесурсыНабора Цикл
		МассивРесурсов.Добавить(РесурсНабора.Имя);
	КонецЦикла;
	
	ДанныеНабора = Набор.Выгрузить();
	ДанныеНабора.Свернуть("Период,ВариантГрафика", СтрСоединить(МассивРесурсов, ","));
	Набор.Загрузить(ДанныеНабора);
	
	Набор.Записать();
	
КонецПроцедуры

&НаСервере
Функция НаборГрафика(ТипГрафика, Ссылка)
	
	Если ТипГрафика = "ГрафикНачислений" Тогда
		ИмяРегистра = Метаданные.РегистрыСведений.ГрафикНачисленийКредитовИДепозитов.Имя;
	ИначеЕсли ТипГрафика = "ГрафикОплат" Тогда
		ИмяРегистра = Метаданные.РегистрыСведений.ГрафикОплатКредитовИДепозитов.Имя;
	ИначеЕсли ТипГрафика = "ГрафикТраншей" Тогда
		ИмяРегистра = Метаданные.РегистрыСведений.ГрафикТраншейКредитовИДепозитов.Имя;
	Иначе
		ВызватьИсключение СтрШаблон(НСтр("ru='Не определен регистр сведений для хранения данных графика ""%1""'"), ТипГрафика);
	КонецЕсли;
	
	Набор = РеквизитФормыВЗначение(ТипГрафика, Тип("РегистрСведенийНаборЗаписей." + ИмяРегистра)); // РегистрСведенийНаборЗаписей
	Набор.Отбор.ВариантГрафика.Установить(Ссылка);
	
	Возврат Набор;
	
КонецФункции

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

&НаСервере
Процедура ОбновитьСвязанныеДанные()
	
	ДанныеГрафика = Справочники.ВариантыГрафиковКредитовИДепозитов.ИтогиГрафика(Объект.Ссылка);
	ЗаполнитьЗначенияСвойств(ЭтаФорма, ДанныеГрафика, "СуммаОплаты, НачисленияПроцентов, НачисленияКомиссии");
	
КонецПроцедуры

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

&НаКлиенте
Процедура ОбработкаОтветаНаВопросИгнорировать(Ответ, ЗакрыватьПослеЗаписи) Экспорт
	
	Если Ответ = КодВозвратаДиалога.Нет Тогда
		Возврат;
	КонецЕсли;
	
	ВыполнитьЗаписьОбъекта(ЗакрыватьПослеЗаписи);
	
КонецПроцедуры

&НаКлиенте
Процедура ВыполнитьЗаписьОбъекта(ЗакрыватьПослеЗаписи = Ложь)
	
	Записать();
	Если ЗакрыватьПослеЗаписи Тогда
		Закрыть();
	КонецЕсли;
	
КонецПроцедуры

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

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