Соглашения об условиях продаж / Форма оплаты / Модуль формы

файл
#Область ОписаниеПеременных

&НаКлиенте
Перем ВыполняетсяЗакрытие;

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

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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура ЭтапыГрафикаОплатыПослеУдаления(Элемент)
	
	РассчитатьИтоговыеПоказателиСоглашенияСКлиентом(ЭтаФорма);
	
КонецПроцедуры

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

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

&НаКлиенте
Процедура ПроцентПлатежаПредоплатаПриИзменении(Элемент)
	
	ПроцентПлатежаПриИзменении(ПроцентПлатежаПредоплата, ПроцентПлатежаКредит);
	
КонецПроцедуры

&НаКлиенте
Процедура ПроцентПлатежаКредитПриИзменении(Элемент)
	
	ПроцентПлатежаПриИзменении(ПроцентПлатежаКредит, ПроцентПлатежаПредоплата);
	
КонецПроцедуры

&НаКлиенте
Процедура ПроцентЗалогаЗаТаруПредоплатаПриИзменении(Элемент)
	
	ПроцентПлатежаПриИзменении(ПроцентЗалогаЗаТаруПредоплата, ПроцентЗалогаЗаТаруКредит);
	
КонецПроцедуры

&НаКлиенте
Процедура ПроцентЗалогаЗаТаруКредитПриИзменении(Элемент)
	
	ПроцентПлатежаПриИзменении(ПроцентЗалогаЗаТаруКредит, ПроцентЗалогаЗаТаруПредоплата);
	
КонецПроцедуры

&НаКлиенте
Процедура ЭтапыГрафикаОплатыВариантОтсчетаПриИзменении(Элемент)
	
	ТекущиеДанные = Элементы.ЭтапыГрафикаОплаты.ТекущиеДанные;
	Если ТекущиеДанные <> Неопределено Тогда
		
		Если (ТекущиеДанные.ВариантОплаты = ПредопределенноеЗначение("Перечисление.ВариантыКонтроляОплатыКлиентом.АвансДоОбеспечения")
				ИЛИ ТекущиеДанные.ВариантОплаты = ПредопределенноеЗначение("Перечисление.ВариантыКонтроляОплатыКлиентом.ПредоплатаДоОтгрузки")
				ИЛИ ТекущиеДанные.ВариантОплаты = ПредопределенноеЗначение("Перечисление.ВариантыКонтроляОплатыКлиентом.ПустаяСсылка"))
			И (ТекущиеДанные.ВариантОтсчета = ПредопределенноеЗначение("Перечисление.ВариантыОтсчетаДатыПлатежа.ОтДатыОтгрузки")
				ИЛИ ТекущиеДанные.ВариантОтсчета = ПредопределенноеЗначение("Перечисление.ВариантыОтсчетаДатыПлатежа.ОтДатыПереходаПраваСобственности")) Тогда
			ТекущиеДанные.ВариантОплаты = ПредопределенноеЗначение("Перечисление.ВариантыКонтроляОплатыКлиентом.КредитСдвиг");
		ИначеЕсли ТекущиеДанные.ВариантОтсчета = ПредопределенноеЗначение("Перечисление.ВариантыОтсчетаДатыПлатежа.ДоДатыОтгрузки") 
				И (ТекущиеДанные.ВариантОплаты = ПредопределенноеЗначение("Перечисление.ВариантыКонтроляОплатыКлиентом.КредитСдвиг")
					ИЛИ  ТекущиеДанные.ВариантОплаты = ПредопределенноеЗначение("Перечисление.ВариантыКонтроляОплатыКлиентом.ПустаяСсылка")) Тогда
			ТекущиеДанные.ВариантОплаты = ПредопределенноеЗначение("Перечисление.ВариантыКонтроляОплатыКлиентом.ПредоплатаДоОтгрузки");
		КонецЕсли;
		
	КонецЕсли;
	
КонецПроцедуры

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

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

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

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

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

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

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

&НаСервере
Процедура УстановитьУсловноеОформление()

	УсловноеОформление.Элементы.Очистить();

	//

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ЭтапыГрафикаОплатыПроцентПлатежа.Имя);

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

	Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.FireBrick);

	//

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ЭтапыГрафикаОплатыПроцентПлатежа.Имя);

	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ЭтапыГрафикаОплаты.НомерСтроки");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.МеньшеИлиРавно;
	ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("НомерСтрокиПолнойОплаты");

	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("НомерСтрокиПолнойОплаты");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
	ОтборЭлемента.ПравоеЗначение = 0;

	Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.Seagreen);

	//

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ЭтапыГрафикаОплатыПроцентЗалогаЗаТару.Имя);

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

	Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.FireBrick);

	//

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ЭтапыГрафикаОплатыПроцентЗалогаЗаТару.Имя);

	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ЭтапыГрафикаОплаты.НомерСтроки");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.МеньшеИлиРавно;
	ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("НомерСтрокиПолнойОплатыЗалога");

	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("НомерСтрокиПолнойОплатыЗалога");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
	ОтборЭлемента.ПравоеЗначение = 0;

	Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.Seagreen);

	//

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ЭтапыГрафикаОплатыПроцентПлатежа.Имя);

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ЭтапыГрафикаОплатыПроцентЗалогаЗаТару.Имя);

	ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
	ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;

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

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

	//

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ЭтапыГрафикаОплатыПроцентЗалогаЗаТару.Имя);

	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ТребуетсяЗалогЗаТару");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
	ОтборЭлемента.ПравоеЗначение = Ложь;

	Элемент.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);

	//

	Элемент = УсловноеОформление.Элементы.Добавить();
	
	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ПроцентПлатежаКредит.Имя);
	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ПроцентПлатежаПредоплата.Имя);

	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПроцентПлатежейОбщий");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
	ОтборЭлемента.ПравоеЗначение = 100;

	Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.FireBrick);

	//

	Элемент = УсловноеОформление.Элементы.Добавить();
	
	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ПроцентПлатежаКредит.Имя);
	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ПроцентПлатежаПредоплата.Имя);

	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПроцентПлатежейОбщий");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
	ОтборЭлемента.ПравоеЗначение = 100;

	Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.ЦветМорскойВолны);

	//

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

	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПроцентЗалогаОбщий");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
	ОтборЭлемента.ПравоеЗначение = 100;

	Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.FireBrick);
	
	//

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

	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПроцентЗалогаОбщий");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
	ОтборЭлемента.ПравоеЗначение = 100;

	Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.ЦветМорскойВолны);
	
	
КонецПроцедуры

&НаСервере
Функция ОплатаКорректна()

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

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

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

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

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

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

&НаКлиенте
Процедура ПроцентПлатежаПриИзменении(Процент, ЗависимыйПроцент)

	ЗависимыйПроцент = 100 - Процент;
	РассчитатьИтоговыеПоказателиСоглашенияСКлиентом(ЭтаФорма);

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

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

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

#Область Инициализация

ВыполняетсяЗакрытие = Ложь;

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

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