Движения.ОплатыСтудентов.Записывать = Истина;
Движение = Движения.ОплатыСтудентов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Студент = Студент;
// Движение.Курс = 1
// Движение.СуммаОплаты = Объект.ОплатаКурс1; - так соответственно для 2,3,4 курсов?
Если ОтчетКурс1=Истина Тогда //Где ОтчетКурс1 параметр вывода отчета
а= Общая сумма задолженности - ОстатокЗадолженности;
б= а - ЦенаКурс1;
Возврат б;
A=22500;
B=8580;
x1 = 4000;
x2 = 4200;
x3 = 4500;
x4 = 4800;
x5 = 5000;
Оплачено = А-В;
Если Оплачено > (х1+х2+х3+х4+х5) Тогда
сообщить("Оплачено больше чем необходимо");
ИначеЕсли Оплачено = (х1+х2+х3+х4+х5) Тогда
сообщить("Оплачено 5 курсов");
ИначеЕсли Оплачено > (х1+х2+х3+х4) Тогда
сообщить("Оплачено 4 курса и часть 5го");
ИначеЕсли Оплачено = (х1+х2+х3+х4) Тогда
сообщить("Оплачено 4 курса");
ИначеЕсли Оплачено > (х1+х2+х3) Тогда
сообщить("Оплачено 3 курса и часть 4го");
ИначеЕсли Оплачено = (х1+х2+х3) Тогда
сообщить("Оплачено 3 курса");
ИначеЕсли Оплачено > (х1+х2) Тогда
сообщить("Оплачено 2 курса и часть 3го");
ИначеЕсли Оплачено = (х1+х2) Тогда
сообщить("Оплачено 2 курса");
ИначеЕсли Оплачено > х1 Тогда
сообщить("Оплачено 1 курс и часть 2го");
ИначеЕсли Оплачено = х1 Тогда
сообщить("Оплачено 1 курс");
ИначеЕсли Оплачено < х1 и А > 0 Тогда
сообщить("Оплачено меньше одного курса");
Иначе
сообщить("Оплат нет");
КонецЕсли;
! | Правила, п .13 |
//Цена за первый курс
Движения.ОплатыСтудентов.Записывать = Истина;
Движение = Движения.ОплатыСтудентов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Студент = Студент;
Движение.ВидУслуги = Перечисления.ВидыУслуг.Образование;
Движение.Курс=Перечисления.НомерКурса.Первый;
Движение.СуммаОплаты = Студент.Цена1курс;
//Цена за второй курс
Движения.ОплатыСтудентов.Записывать = Истина;
Движение = Движения.ОплатыСтудентов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Студент = Студент;
Движение.ВидУслуги = Перечисления.ВидыУслуг.Образование;
Движение.Курс=Перечисления.НомерКурса.Второй;
Движение.СуммаОплаты = Студент.Цена2курс;
//Цена за третий курс
Движения.ОплатыСтудентов.Записывать = Истина;
Движение = Движения.ОплатыСтудентов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Студент = Студент;
Движение.ВидУслуги = Перечисления.ВидыУслуг.Образование;
Движение.Курс=Перечисления.НомерКурса.Третий;
Движение.СуммаОплаты = Студент.Цена3курс;
//Цена за четвертый курс
Движения.ОплатыСтудентов.Записывать = Истина;
Движение = Движения.ОплатыСтудентов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Студент = Студент;
Движение.ВидУслуги = Перечисления.ВидыУслуг.Образование;
Движение.Курс=Перечисления.НомерКурса.Червертый;
Движение.СуммаОплаты = Студент.Цена4курс;
//Цена за пятый курс
Движения.ОплатыСтудентов.Записывать = Истина;
Движение = Движения.ОплатыСтудентов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Студент = Студент;
Движение.ВидУслуги = Перечисления.ВидыУслуг.Образование;
Движение.Курс=Перечисления.НомерКурса.Пятый;
Движение.СуммаОплаты = Студент.Цена5курс;
Процедура ОбработкаПроведения(Отказ, Режим)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ОплатыСтудентовОстатки.Студент,
| ОплатыСтудентовОстатки.ВидУслуги,
| ОплатыСтудентовОстатки.Курс,
| ОплатыСтудентовОстатки.СуммаОплатыОстаток
|ИЗ
| РегистрНакопления.ОплатыСтудентов.Остатки КАК ОплатыСтудентовОстатки
|ГДЕ
| ОплатыСтудентовОстатки.Студент = &Студент
| И ОплатыСтудентовОстатки.ВидУслуги = &ВидУслуги";
Запрос.УстановитьПараметр("ВидУслуги", ВидУслуги);
Запрос.УстановитьПараметр("Студент", Студент);
Результат = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Если ВыборкаДетальныеЗаписи.Курс=Перечисления.НомерКурса.Первый Тогда
х1=ВыборкаДетальныеЗаписи.СуммаОплатыОстаток;
ИначеЕсли ВыборкаДетальныеЗаписи.Курс=Перечисления.НомерКурса.Второй Тогда
х2=ВыборкаДетальныеЗаписи.СуммаОплатыОстаток;
ИначеЕсли ВыборкаДетальныеЗаписи.Курс=Перечисления.НомерКурса.Третий Тогда
х3=ВыборкаДетальныеЗаписи.СуммаОплатыОстаток;
ИначеЕсли ВыборкаДетальныеЗаписи.Курс=Перечисления.НомерКурса.Червертый Тогда
х4=ВыборкаДетальныеЗаписи.СуммаОплатыОстаток;
ИначеЕсли ВыборкаДетальныеЗаписи.Курс=Перечисления.НомерКурса.Пятый Тогда
х5=ВыборкаДетальныеЗаписи.СуммаОплатыОстаток;
КонецЕсли;
КонецЦикла;
// регистр ОплатыСтудентов Приход
Движения.ОплатыСтудентов.Записывать = Истина;
Движение = Движения.ОплатыСтудентов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Студент = Студент;
Движение.СуммаОплаты = Сумма;
Движение.ВидУслуги=ВидУслуги;
КонецПроцедуры
Если Сумма>х1 Тогда
Сообщить("Сумма проплаты превышает задолженность, введите сумма не больше " + x1$
КонецЕсли;
Ноль=0;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ОплатыСтудентовОстатки.Студент,
| ОплатыСтудентовОстатки.ВидУслуги,
| ОплатыСтудентовОстатки.Курс,
| ОплатыСтудентовОстатки.СуммаОплатыОстаток
|ИЗ
| РегистрНакопления.ОплатыСтудентов.Остатки КАК ОплатыСтудентовОстатки
|ГДЕ
| ОплатыСтудентовОстатки.Студент = &Студент
| И ОплатыСтудентовОстатки.ВидУслуги = &ВидУслуги
| И ОплатыСтудентовОстатки.СуммаОплатыОстаток < &Ноль";
Запрос.УстановитьПараметр("ВидУслуги", ВидУслуги);
Запрос.УстановитьПараметр("Студент", Студент);
<...>
| И ОплатыСтудентовОстатки.СуммаОплатыОстаток < 0";
ВЫБРАТЬ
ОплатыСтудентовОстатки.Студент,
ОплатыСтудентовОстатки.ВидУслуги,
ОплатыСтудентовОстатки.Курс,
ОплатыСтудентовОстатки.СуммаОплатыОстаток
ИЗ
РегистрНакопления.ОплатыСтудентов.Остатки КАК ОплатыСтудентовОстатки
ГДЕ ОплатыСтудентовОстатки.Студент = Обьект.Студент
И ОплатыСтудентовОстатки.ВидУслуги = Обьект.ВидУслуги
ЭлементФормыДинамическийСписок.Параметры.УстановитьЗначениеПараметра("Студент", Объект.Студент);
ЭлементФормыДинамическийСписок.Параметры.УстановитьЗначениеПараметра("ВидУслуги", Объект.ВидУслуги);