13481

Программирование форм

Лабораторная работа

Информатика, кибернетика и программирование

Программирование форм Лабораторная работа Постановка задачи Спроектируем конфигурацию позволяющую контролировать внесение оплаты за обучение. Созданная разработка будет обеспечивать выписку квитанций на оплату и вести учет сделанных учащимися платежей. Пусть ...

Русский

2013-05-11

235 KB

1 чел.

Программирование форм

Лабораторная работа

Постановка задачи

Спроектируем конфигурацию, позволяющую контролировать внесение оплаты за обучение. Созданная разработка будет обеспечивать выписку квитанций на оплату и вести учет сделанных учащимися платежей.

Пусть организация устанавливает помесячную индексацию оплаты за обучение.

Учащийся может заплатить всю сумму (и тогда он ничего учебному заведению не должен). При этом если он прекратит обучение, то учебное заведение вернет ему часть суммы за не полностью предоставленную услугу.

Если учащийся платит не за весь период, то ему выписывается квитанция. Оплатив квитанцию, он получает следующую и т.д.

Представим все в табличной форме:

Номер месяца

Год

Вид тарифа

Стоимость

9

2008

Основной

2000

10

2008

Основной

2020

9

2008

Сокращенная форма

2100

10

2008

Сокращенная форма

2150

Вид тарифа определяет различные формы обучения. Каждому учащемуся в зависимости от выбранной формы обучения устанавливается определенный вид тарифа.

Номер договора

ФИО студента

ФИО плательщика

Число оплачиваемых месяцев

Вид тарифа

100/234

Петров Петр Петрович

Петров Иван Иванович

36

Основной

101/234

Иванов Иван Иванович

Иванов Петр Иванович

36

Основной

102/234

Сидорова Ольга Николаевна

Сидорова Ольга Николаевна

32

Сокращенная форма

103/234

Сидоров Олег Петрович

Сидоров Олег Петрович

32

Сокращенная форма

Задача 1. Создание вспомогательного справочника ВидТарифа.

1. Создайте базу МояБаза3 и откройте в режиме конфигуратора.

2. Создайте справочник ВидТарифа без дополнительных реквизитов.

3. Перейдите в режим 1С:Предприятие и заполните созданный справочник. Затем вернитесь в окно конфигуратора.

Задача 2. Создание регистра сведений Тарифы.

1. Создайте непериодический регистр сведений Тарифы:

2. Перейдите на закладку Данные и укажите измерения: НомерМесяца (тип данных – число) и Год (тип данных – число). В окне свойств данных реквизитов установите опцию Индексировать. Затем укажите измерение ВидТарифа (тип данных – СправочникСсылка.ВидТарифа). В окне свойств данного реквизита укажите, что данное измерение ведущее. Ресурс регистра – Стоимость (тип данных -Число).

3. Перейдите в режим 1С:Предприятие и заполните созданный регистр. Затем вернитесь в окно конфигуратора.

4. В окне редактирования объекта конфигурации Тарифы перейдите на закладку Формы и щелкните по кнопке напротив поля Списка в группе Основные формы.

5. В появившемся окне укажите форма списка и щелкните по кнопке Готово.

6. Выполните двойной щелчок по полю ввода номера месяца. В появившемся окне свойств установите МинимальноеЗначение – 1 и МаксимальноеЗначение – 12.

7. Аналогичную процедуру выполните для поля Год.

Задача 3. Создание справочника Договоры.

1. Создайте справочник Договоры. Кроме обязательных реквизитов добавьте: ФИОучащегося (тип данных – строка не более 100 символов); ФИОплательщика (тип данных – строка не более 100 символов), ДатаДоговора (тип данных – дата); ВидТарифа (тип данных – СправочникСсылка.ВидТарифа); КоличествоОплачиваемыхМесяцев (тип данных - число).

2. Перейдите в режим 1С:Предприятие и заполните созданный справочник. Затем вернитесь в окно конфигуратора.

Задача 4. Создание регистра сведений Квитанции.

1. Создайте периодический регистр сведений Квитанции:

2. Перейдите на закладку Данные и укажите измерения: Договор (тип данных – СправочникСсылка.Договоры, в окне свойств данного реквизита укажите, что данное измерение ведущее) и Период (добавляется автоматически). Ресурс регистра – СуммаПоКвитанции (тип данных – Число). Реквизиты регистра – Оплачено (тип данных – булево); МесяцНачала, ГодНачала, МесяцОкончания, ГодОкончания (тип данных – число).

3. Создайте обработку УчетКвитанций. В окне редактирования объекта конфигурации перейдите на закладку Формы и щелкните по кнопке в разделе Основная форма обработки. Выберите тип формы – Произвольная форма и щелкните но кнопке Готово.

4. На полученной форме разместите элемент Рамка группы. В качестве подписи группы укажите – Информация о договоре.

5. В созданной рамке расположите поле ввода с именем Договор. Тип данных – СправочникСсылка.Договоры.

6. Затем расположите Надписи: четыре – поясняющие и три заполняются автоматически  при выборе договора (в окне свойств не заполняйте свойство Заголовок).

7. Заполните следующую часть формы: Создайте рамку Информация о тарифе. В ней расположите два поля ввода – для указания месяца и года, надписи НазваниеТарифа и ТарифЗаМесяц заполняются автоматически, затем создайте кнопку РасчетТарифа.

8. Разместите информацию в рамках Информация о последней оплате и Расчет следующей оплаты.

8. Сделайте так, чтобы при открытии формы автоматически заполнялись поля МесяцПроизведенияОплаты и ГодПроизведенияОплаты, исходя из информации о сегодняшней дате. Для этого выполните двойной щелчок в области формы и в окне свойств щелкните по кнопке в разделе События напротив пункта ПриОткрытии. Напишите фрагмент кода:

Процедура ПриОткрытии()

ЭлементыФормы.МесяцПроизведенияОплаты.Значение = Месяц(ТекущаяДата());

ЭлементыФормы.ГодПроизведенияОплаты.Значение = Год(ТекущаяДата());

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

9. Сделайте так, чтобы при выборе номера договора автоматически заполнялись поля МесяцДоговора, ГодДоговора, НазваниеТарифа и Учащийся исходя из информации о договоре. Для этого выполните двойной щелчок в области элемента Договор и в окне свойств щелкните по кнопке в разделе События напротив пункта ПриИзменении. Напишите фрагмент кода:

Процедура ДоговорПриИзменении(Элемент)

Договор = ЭлементыФормы.Договор.Значение;

ЭлементыФормы.Учащийся.Значение = Договор.ФИОучащегося;

ЭлементыФормы.МесяцДоговора.Значение = Месяц(Договор.ДатаДоговора);

ЭлементыФормы.ГодДоговора.Значение = Год(Договор.ДатаДоговора);

ЭлементыФормы.НазваниеТарифа.Значение = Договор.ВидТарифа;

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

10. Перейдите в режим 1С:Предприятие и проверьте работу процедур. Затем вернитесь в окно конфигуратора.

11. Модифицируйте процедуру, чтобы автоматически заполнялся ТарифЗаМесяц:

Процедура ДоговорПриИзменении(Элемент)

Договор = ЭлементыФормы.Договор.Значение;

ЭлементыФормы.Учащийся.Значение = Договор.ФИОучащегося;

ЭлементыФормы.МесяцДоговора.Значение = Месяц(Договор.ДатаДоговора);

ЭлементыФормы.ГодДоговора.Значение = Год(Договор.ДатаДоговора);

ЭлементыФормы.НазваниеТарифа.Значение = Договор.ВидТарифа;

Запрос = Новый Запрос;

Запрос.Текст = "ВЫБРАТЬ *

|ИЗ РегистрСведений.Тарифы

|ГДЕ ВидТарифа.Наименование=&НазваниеТарифа И

|НомерМесяца=&Месяц И

|Год=&Год";

Запрос.УстановитьПараметр("НазваниеТарифа",ЭлементыФормы.НазваниеТарифа.Значение);

Запрос.УстановитьПараметр("Месяц",ЭлементыФормы.МесяцПроизведенияОплаты.Значение);

Запрос.УстановитьПараметр("Год",ЭлементыФормы.ГодПроизведенияОплаты.Значение);

Результат = Запрос.Выполнить().Выбрать();

Если Результат.Следующий()>0 Тогда

 ЭлементыФормы.ТарифЗаМесяц.Значение = Результат.Стоимость;

Иначе

 ЭлементыФормы.ТарифЗаМесяц.Значение = 0;

 Сообщить("По указанным данным информации о тарифе нет");

КонецЕсли;

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

12. Модифицируйте процедуру, чтобы внутри рамки ИнформацияОПослледнейОплаченнойКвитанции, автоматически заполнялась информация о самой свежей квитанции, по которой учащийся внес оплату:

Процедура ДоговорПриИзменении(Элемент)

Договор = ЭлементыФормы.Договор.Значение;

ЭлементыФормы.Учащийся.Значение = Договор.ФИОучащегося;

ЭлементыФормы.МесяцДоговора.Значение = Месяц(Договор.ДатаДоговора);

ЭлементыФормы.ГодДоговора.Значение = Год(Договор.ДатаДоговора);

ЭлементыФормы.НазваниеТарифа.Значение = Договор.ВидТарифа;

Запрос = Новый Запрос;

Запрос.Текст = "ВЫБРАТЬ *

|ИЗ РегистрСведений.Тарифы

|ГДЕ ВидТарифа.Наименование=&НазваниеТарифа И

|НомерМесяца=&Месяц И

|Год=&Год";

Запрос.УстановитьПараметр("НазваниеТарифа",ЭлементыФормы.НазваниеТарифа.Значение);

Запрос.УстановитьПараметр("Месяц",ЭлементыФормы.МесяцПроизведенияОплаты.Значение);

Запрос.УстановитьПараметр("Год",ЭлементыФормы.ГодПроизведенияОплаты.Значение);

Результат = Запрос.Выполнить().Выбрать();

Если Результат.Следующий()>0 Тогда

 ЭлементыФормы.ТарифЗаМесяц.Значение = Результат.Стоимость;

Иначе

 ЭлементыФормы.ТарифЗаМесяц.Значение = 0;

 Сообщить("По указанным данным информации о тарифе нет");

КонецЕсли;

ЭлементыФормы.МесяцНачалаИнтервала.Значение = "";

ЭлементыФормы.ГодНачалаИнтервала.Значение = "";

ЭлементыФормы.МесяцОкончанияИнтервала.Значение = "";

ЭлементыФормы.ГодОкончанияИнтервала.Значение = "";

Запрос2 = Новый Запрос;

Запрос2.Текст = "ВЫБРАТЬ *

|ИЗ РегистрСведений.Квитанции

|ГДЕ Договор=&Договор И

|Оплачено=&Индикатор";

Запрос2.УстановитьПараметр("Договор",ЭлементыФормы.Договор.Значение);

Запрос2.УстановитьПараметр("Индикатор",Ложь);

Результат = Запрос2.Выполнить().Выбрать();

Если Результат.Следующий()>0 Тогда

 Сообщить("По данному договору есть неоплаченная квитанция");

 Возврат;

КонецЕсли;

   СтруктураОтбора = Новый Структура;

СтруктураОтбора.Вставить("Договор",Договор);

ВыборкаЗаписей = РегистрыСведений.Квитанции.Выбрать(,,СтруктураОтбора);

Пока ВыборкаЗаписей.Следующий() Цикл

 Если ЭлементыФормы.МесяцНачалаИнтервала.Значение="" Тогда

  ЭлементыФормы.МесяцНачалаИнтервала.Значение=ВыборкаЗаписей.МесяцНачала;

  ЭлементыФормы.ГодНачалаИнтервала.Значение=ВыборкаЗаписей.ГодНачала;

  ЭлементыФормы.МесяцОкончанияИнтервала.Значение=ВыборкаЗаписей.МесяцОкончания;

  ЭлементыФормы.ГодОкончанияИнтервала.Значение=ВыборкаЗаписей.ГодОкончания;

 Иначе

  Дата1 = Число(ЭлементыФормы.МесяцОкончанияИнтервала.Значение)+12*Число(ЭлементыФормы.ГодОкончанияИнтервала.Значение);

  Дата2 = ВыборкаЗаписей.МесяцОкончания+12*ВыборкаЗаписей.ГодОкончания;

  Если Дата2 > Дата1 Тогда

  ЭлементыФормы.МесяцНачалаИнтервала.Значение=ВыборкаЗаписей.МесяцНачала;

  ЭлементыФормы.ГодНачалаИнтервала.Значение=ВыборкаЗаписей.ГодНачала;

  ЭлементыФормы.МесяцОкончанияИнтервала.Значение=ВыборкаЗаписей.МесяцОкончания;

  ЭлементыФормы.ГодОкончанияИнтервала.Значение=ВыборкаЗаписей.ГодОкончания;

 КонецЕсли;

КонецЕсли;

КонецЦикла;

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

13. Модифицируйте процедуру, чтобы внутри рамки ИнформацияОПослледнейОплаченнойКвитанции, автоматически заполнялась информация о месяце и годе, с которого учащийся должен внести оплату:

Процедура ДоговорПриИзменении(Элемент)

Договор = ЭлементыФормы.Договор.Значение;

ЭлементыФормы.Учащийся.Значение = Договор.ФИОучащегося;

ЭлементыФормы.МесяцДоговора.Значение = Месяц(Договор.ДатаДоговора);

ЭлементыФормы.ГодДоговора.Значение = Год(Договор.ДатаДоговора);

ЭлементыФормы.НазваниеТарифа.Значение = Договор.ВидТарифа;

Запрос = Новый Запрос;

Запрос.Текст = "ВЫБРАТЬ *

|ИЗ РегистрСведений.Тарифы

|ГДЕ ВидТарифа.Наименование=&НазваниеТарифа И

|НомерМесяца=&Месяц И

|Год=&Год";

Запрос.УстановитьПараметр("НазваниеТарифа",ЭлементыФормы.НазваниеТарифа.Значение);

Запрос.УстановитьПараметр("Месяц",ЭлементыФормы.МесяцПроизведенияОплаты.Значение);

Запрос.УстановитьПараметр("Год",ЭлементыФормы.ГодПроизведенияОплаты.Значение);

Результат = Запрос.Выполнить().Выбрать();

Если Результат.Следующий()>0 Тогда

 ЭлементыФормы.ТарифЗаМесяц.Значение = Результат.Стоимость;

Иначе

 ЭлементыФормы.ТарифЗаМесяц.Значение = 0;

 Сообщить("По указанным данным информации о тарифе нет");

КонецЕсли;

ЭлементыФормы.МесяцНачалаИнтервала.Значение = "";

ЭлементыФормы.ГодНачалаИнтервала.Значение = "";

ЭлементыФормы.МесяцОкончанияИнтервала.Значение = "";

ЭлементыФормы.ГодОкончанияИнтервала.Значение = "";

Запрос2 = Новый Запрос;

Запрос2.Текст = "ВЫБРАТЬ *

|ИЗ РегистрСведений.Квитанции

|ГДЕ Договор=&Договор И

|Оплачено=&Индикатор";

Запрос2.УстановитьПараметр("Договор",ЭлементыФормы.Договор.Значение);

Запрос2.УстановитьПараметр("Индикатор",Ложь);

Результат = Запрос2.Выполнить().Выбрать();

Если Результат.Следующий()>0 Тогда

 Сообщить("По данному договору есть неоплаченная квитанция");

 Возврат;

КонецЕсли;

   СтруктураОтбора = Новый Структура;

СтруктураОтбора.Вставить("Договор",Договор);

ВыборкаЗаписей = РегистрыСведений.Квитанции.Выбрать(,,СтруктураОтбора);

Пока ВыборкаЗаписей.Следующий() Цикл

 Если ЭлементыФормы.МесяцНачалаИнтервала.Значение="" Тогда

  ЭлементыФормы.МесяцНачалаИнтервала.Значение=ВыборкаЗаписей.МесяцНачала;

  ЭлементыФормы.ГодНачалаИнтервала.Значение=ВыборкаЗаписей.ГодНачала;

  ЭлементыФормы.МесяцОкончанияИнтервала.Значение=ВыборкаЗаписей.МесяцОкончания;

  ЭлементыФормы.ГодОкончанияИнтервала.Значение=ВыборкаЗаписей.ГодОкончания;

 Иначе

  Дата1 = Число(ЭлементыФормы.МесяцОкончанияИнтервала.Значение)+12*Число(ЭлементыФормы.ГодОкончанияИнтервала.Значение);

  Дата2 = ВыборкаЗаписей.МесяцОкончания+12*ВыборкаЗаписей.ГодОкончания;

  Если Дата2 > Дата1 Тогда

  ЭлементыФормы.МесяцНачалаИнтервала.Значение=ВыборкаЗаписей.МесяцНачала;

  ЭлементыФормы.ГодНачалаИнтервала.Значение=ВыборкаЗаписей.ГодНачала;

  ЭлементыФормы.МесяцОкончанияИнтервала.Значение=ВыборкаЗаписей.МесяцОкончания;

  ЭлементыФормы.ГодОкончанияИнтервала.Значение=ВыборкаЗаписей.ГодОкончания;

 КонецЕсли;

КонецЕсли;

КонецЦикла;

Если ЭлементыФормы.МесяцОкончанияИнтервала.Значение <>"" Тогда

 ЭлементыФормы.МесяцНачалаОплаты.Значение = Число(ЭлементыФормы.МесяцОкончанияИнтервала.Значение)+1;

 Если Число(ЭлементыФормы.МесяцНачалаОплаты.Значение)>12 Тогда

  ЭлементыФормы.МесяцНачалаОплаты.Значение = Число(ЭлементыФормы.МесяцНачалаОплаты.Значение)-12;

  ЭлементыФормы.ГодНачалаОплаты.Значение = Число(ЭлементыФормы.ГодОкончанияИнтервала.Значение)+1;

 Иначе

  ЭлементыФормы.ГодНачалаОплаты.Значение = ЭлементыФормы.ГодОкончанияИнтервала.Значение;

 КонецЕсли;

 КонецЕсли;

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

14. Перейдите в режим 1С:Предприятие и заполните созданный справочник. Затем вернитесь в окно конфигуратора.

15. При нажатии на кнопку Расчет тарифа должен заново производиться расчет тарифа:

Процедура РасчетТарифаНажатие(Элемент)

Запрос = Новый Запрос;

Запрос.Текст = "ВЫБРАТЬ *

|ИЗ РегистрСведений.Тарифы

|ГДЕ ВидТарифа.Наименование=&НазваниеТарифа И

|НомерМесяца=&Месяц И

|Год=&Год";

Запрос.УстановитьПараметр("НазваниеТарифа",ЭлементыФормы.НазваниеТарифа.Значение);

Запрос.УстановитьПараметр("Месяц",ЭлементыФормы.МесяцПроизведенияОплаты.Значение);

Запрос.УстановитьПараметр("Год",ЭлементыФормы.ГодПроизведенияОплаты.Значение);

Результат = Запрос.Выполнить().Выбрать();

Если Результат.Следующий()>0 Тогда

 ЭлементыФормы.ТарифЗаМесяц.Значение = Результат.Стоимость;

Иначе

 ЭлементыФормы.ТарифЗаМесяц.Значение = 0;

 Сообщить("По указанным данным информации о тарифе нет");

КонецЕсли;

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

16. При нажатии на кнопку Расчет суммы должен заново производиться расчет стоимости:

Процедура РасчетСуммыНажатие(Элемент)

Количество = Число(ЭлементыФормы.КоличествоОплачиваемыхМесяцев.Значение);

ЦенаМесяц = Число(ЭлементыФормы.ТарифЗаМесяц.Значение);

Сумма = Количество*ЦенаМесяц;

ЭлементыФормы.СуммаОплаты.Значение = Сумма;

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

17. При нажатии на кнопку Записать квитанцию должна производиться запись квитанции в регистр Квитанции:

Процедура ЗаписатьКвитанциюНажатие(Элемент)

КоличествоМесяцев = Число(ЭлементыФормы.КоличествоОплачиваемыхМесяцев.Значение);

ВариантМесяца = КоличествоМесяцев + Число(ЭлементыФормы.МесяцНачалаОплаты.Значение)-1;

ВариантГода = Число(ЭлементыФормы.ГодНачалаОплаты.Значение);

Если ВариантМесяца > 12 Тогда

  ВариантМесяца = ВариантМесяца -12;

  ВариантГода = Число(ЭлементыФормы.ГодНачалаОплаты.Значение)+1;

КонецЕсли;

НаборЗаписей = РегистрыСведений.Квитанции.СоздатьНаборЗаписей();

НаборЗаписей.Отбор.Период.Установить(ТекущаяДата());

НоваяЗапись = НаборЗаписей.Добавить();

НоваяЗапись.Договор = Договор;

НоваяЗапись.Период = ТекущаяДата();

НоваяЗапись.МесяцНачала = ЭлементыФормы.МесяцНачалаОплаты.Значение;

НоваяЗапись.ГодНачала = ЭлементыФормы.ГодНачалаОплаты.Значение;

НоваяЗапись.МесяцОкончания = ВариантМесяца;

НоваяЗапись.ГодОкончания = ВариантГода;

НоваяЗапись.СуммаПоКвитанции = ЭлементыФормы.СуммаОплаты.Значение;

НоваяЗапись.Оплачено = Ложь;

НаборЗаписей.Записать(Истина);

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

18. Запустите приложение Word и откройте документ blank.doc. Выполните коменду Вид|Панели инструментов|Элементы управления. Выберите тип элемента управления – поле и разместите поля в документе по образцу:

Вызовите окно свойств каждого поля и в разделе Name укажите имена: Pole_1, Pole_2, Pole_3, Pole_4, Pole_5, Pole_6, Pole_7, Pole_8, Pole_1_2, Pole_2_2, Pole_3_2, Pole_4_2, Pole_5_2, Pole_6_2, Pole_7_2, Pole_8_2,

19. При нажатии на кнопку Передача Word должен заново производиться расчет тарифа:

Процедура ПередачаWORDНажатие(Элемент)

МассивМесяцев = Новый Массив;

МассивМесяцев.Вставить(1,"янв.");

МассивМесяцев.Вставить(2,"февр.");

МассивМесяцев.Вставить(3,"март");

МассивМесяцев.Вставить(4,"апр.");

МассивМесяцев.Вставить(5,"май");

МассивМесяцев.Вставить(6,"июнь");

МассивМесяцев.Вставить(7,"июль");

МассивМесяцев.Вставить(8,"авг.");

МассивМесяцев.Вставить(9,"сент.");

МассивМесяцев.Вставить(10,"окт.");

МассивМесяцев.Вставить(11,"ноябр.");

МассивМесяцев.Вставить(12,"дек.");

МесяцНачала = ЭлементыФормы.МесяцНачалаОплаты.Значение;

ГодНачала = ЭлементыФормы.ГодНачалаОплаты.Значение;

Колич = ЭлементыФормы.КоличествоОплачиваемыхМесяцев.Значение;

appWD = Новый COMОбъект "Word.Application";

appWD.Visible = Истина;

appWD.Documents.Open("C:\blank.doc");

appWD.ActiveDocument.Pole_1.Text = Строка(ЭлементыФормы.Договор.Значение);

appWD.ActiveDocument.Pole_1_2.Text = Строка(ЭлементыФормы.Договор.Значение);

appWD.ActiveDocument.Pole_2.Text = "С "+"МассивМесяцев[МесяцНачала]"+" "+Строка(ГодНачала)+"-"+Строка(Колич)+"мес.";

appWD.ActiveDocument.Pole_2_2.Text = "С "+"МассивМесяцев[МесяцНачала]"+" "+Строка(ГодНачала)+"-"+Строка(Колич)+"мес.";

appWD.ActiveDocument.Pole_3.Text = ЭлементыФормы.Учащийся.Значение;

appWD.ActiveDocument.Pole_3_2.Text = ЭлементыФормы.Учащийся.Значение;

appWD.ActiveDocument.Pole_4 = "Оплата за обучение";

appWD.ActiveDocument.Pole_4_2 = "Оплата за обучение";

appWD.ActiveDocument.Pole_5 = Строка(ЭлементыФормы.СуммаОплаты.Значение);

appWD.ActiveDocument.Pole_5_2 = Строка(ЭлементыФормы.СуммаОплаты.Значение);

ПараметрыПредметаИсчисления = "рубль,рубля,рублей";

ФорматнаяСтрока = "Л=ru_RU";

ВыводимоеЧисло = ЭлементыФормы.СуммаОплаты.Значение;

appWD.ActiveDocument.Pole_6 = ЧислоПрописью(ВыводимоеЧисло,ФорматнаяСтрока,ПараметрыПредметаИсчисления);

appWD.ActiveDocument.Pole_7 = МассивМесяцев[ЭлементыФормы.МесяцПроизведенияОплаты.Значение];

appWD.ActiveDocument.Pole_8 = Строка(ЭлементыФормы.ГодПроизведенияОплаты.Значение);

appWD.ActiveDocument.Pole_6_2 = ЧислоПрописью(ВыводимоеЧисло,ФорматнаяСтрока,ПараметрыПредметаИсчисления);

appWD.ActiveDocument.Pole_7_2 = МассивМесяцев[ЭлементыФормы.МесяцПроизведенияОплаты.Значение];

appWD.ActiveDocument.Pole_8_2 = Строка(ЭлементыФормы.ГодПроизведенияОплаты.Значение);

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

20. Перейдите в режим 1С:Предприятие и проверьте работу. Затем вернитесь в окно конфигуратора.

Задача 5. Создание формы регистрации квитанций.

1. Создайте обработку РегистрацияОплаты.

2. Перейдите на закладку Формы и создайте форму. В верхней части расположим поле ввода Договор (тип данных – СправочникСсылка.Договоры). Затем разместим восемь элементов типа надпись и кнопку:

3. Напишите процедуру, осуществляющую поиск неоплаченной квитанции и отображение ее параметров:

Процедура ДоговорПриИзменении(Элемент)

ЭлементыФормы.Клиент.Значение = Договор.ФИОучащегося;

ЭлементыФормы.МесяцНачалаОплаты.Значение = "";

ЭлементыФормы.ГодНачалаОплаты.Значение = "";

ЭлементыФормы.МесяцОкончанияОплаты.Значение = "";

ЭлементыФормы.ГодОкончанияОплаты.Значение = "";

Запрос = Новый Запрос;

Запрос.Текст = "ВЫБРАТЬ *

|ИЗ РегистрСведений.Квитанции

|ГДЕ Договор=&Договор И

|Оплачено=&Индикатор";

Запрос.УстановитьПараметр("Договор",ЭлементыФормы.Договор.Значение);

Запрос.УстановитьПараметр("Индикатор",Ложь);

Результат = Запрос.Выполнить().Выбрать();

Если Результат.Следующий()>0 Тогда

ЭлементыФормы.МесяцНачалаОплаты.Значение = Результат.МесяцНачала;

ЭлементыФормы.ГодНачалаОплаты.Значение = Результат.ГодНачала;

ЭлементыФормы.МесяцОкончанияОплаты.Значение = Результат.МесяцОкончания;

ЭлементыФормы.ГодОкончанияОплаты.Значение = Результат.ГодОкончания;

КонецЕсли;

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

4. Запись информации об оплаченной квитанции:

Процедура УстановитьОплатуНажатие(Элемент)

Запись = РегистрыСведений.Квитанции.СоздатьМенеджерЗаписи();

Договор = ЭлементыФормы.Договор.Значение;

ВыборкаЗаписей=РегистрыСведений.Квитанции.Выбрать();

Пока ВыборкаЗаписей.Следующий()>0 Цикл

Если (ВыборкаЗаписей.Договор = Договор) И (ВыборкаЗаписей.Оплачено=Ложь) Тогда

 Запись.Период = ВыборкаЗаписей.Период;

 Запись.Договор = ВыборкаЗаписей.Договор;

 Запись.Прочитать();

 Если Запись.Выбран() Тогда

  Запись.Оплачено = Истина;

  Запись.Записать();

  Закрыть();

 КонецЕсли;

 Прервать;

КонецЕсли;

КонецЦикла;

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


 

А также другие работы, которые могут Вас заинтересовать

39470. МОРФОЛОГИЧЕСКОЕ ПРОЕКТИРОВАНИЕ: АНАЛИЗ И СИНТЕЗ ТЕХНИЧЕСКИХ РЕШЕНИЙ 69.5 KB
  В дополнение выбирают критерий качества с помощью которого из двух или нескольких допустимых вариантов технического решения выбирают наилучший. Рассмотрим далее как производят выявление эффективных комбинаций альтернативных вариантов принадлежащих одному столбцу. В каждом столбце путем объединения двух и более альтернативных вариантов выявляют эффективную взаимоусиливающую комбинацию со следующим свойством: она в значительно большей мере устраняет какойлибо недостаток недостатки или улучшает критерий качества чем отдельные...
39471. Оценка налоговых рисков- методы планирования налоговых проверок 129.5 KB
  Показатели налоговой нагрузки представлены в приложении . Таким образом величина налоговой нагрузки за 2006 г.ru Группа критериев отражающих показатели деятельности плательщика Отражение в бухгалтерской или налоговой отчетности убытков в организации в течение двух и более календарных лет. Несоответствие темпов роста расходов темпам роста доходов по данным налоговой финансовой отчетности: а неоднократное приближение менее 5 к предельному значению установленных Налоговым кодексом показателей предоставляющих право применять...
39472. НАЛОГИ И НАЛОГОБЛОЖЕНИЕ 399 KB
  Курсовая работа выполняется студентами после изучения соответствующих глав Налогового Кодекса РФ, литературных источников по теме и производственной практики. За время практики студент собирает на предприятии необходимый фактический материал по теме курсовой работы. После прохождения практики собранные материалы обобщаются и студент приступает к написанию курсовой работы
39473. Порядок характеристики налогоплательщика 367 KB
  Оценка налоговой нагрузки Описать режим налогообложения исходя из вида деятельности предприятия организационноправовой формы и действующего налогового законодательства. При этом последовательно указывается: В связи с какими обстоятельствами возникли обязанности налогоплательщика плательщика сборов налогового агента ; Описание объектов обложения; Особенности формирования налоговой базы; Применяемые налоговые ставки ; Порядок исчисления налога сбора; Порядок и сроки уплаты. Кирову ИНН: 4345001066 КПП: 434501001; ОКАТО...
39475. БУХГАЛТЕРСКИЙ УЧЕТ И АНАЛИЗ 358.5 KB
  Выполняя курсовую работу следует использовать действующие законодательные акты нормативные документы определяющие методологические основы порядок организации и ведения бухгалтерского учета в организациях: Федеральный Закон О бухгалтерском учете Положение по ведению бухгалтерского учета и бухгалтерской отчетности в РФ План счетов бухгалтерского учета Инструкцию по его применению и другие а также изучить литературу по теме курсовой работы. Излагая общие положения необходимо рассмотреть порядок документального оформления хозяйственных...
39476. Проектирование корпоративных мультисервисных сетей 495.5 KB
  Технология Ethernet известна прежде всего как технология локальных вычислительных сетей имевшая некоторое количество существенных недостатков которые не позволяли строить на ее основе нормально работающие мультисервисные сети. Целью курсовой работы является создание проекта МСС для данного комплекса на базе EthernetIPсети. КРАТКОЕ ОПИСАНИЕ УСЛУГ ПРОЕКТИРУЕМОЙ СЕТИ Услуги которые предоставляет проектируемая мультисервисная сеть: Передача речи телефонная связь – данная услуга будет реализована на базе средств IPтелефонии то есть будет...
39477. Барабанне сушило для сушки піску 63 KB
  Мета роботи: розрахувати горіння палива основні розміри сушила процес сушки тепловий баланс паливоспалювального пристрою для барабанного сушила для сушки піску. Розрахунок горіння палива основних розмірів сушила теплообміну теплового балансу паливо спалювального пристрою необхідно для проектування сушила. ТЕПЛОВИЙ БАЛАНС ГОРІННЯ ПАЛИВА БАРАБАН СУШИЛА ТЕПЛООБМІН ТЕМПЕРАТУРА ПРОДУКТИВНІСТЬ ДІАГРАМА ПАЛЬНИК МАТЕРІАЛ ЗАВАНТАЖУВАЛЬНИЙ ПРИСТРІЙ ОБ’ЄМ ВОЛОГИ РОЗРАХУНОК ПАЛИВОСПАЛЮВАЛЬНИЙ ПРИСТРІЙ.6 Розрахунок горіння...
39478. РАСЧЕТ ПОКАЗАТЕЛЕЙ РАЗРАБОТКИ ОДНОРОДНОГО ПЛАСТА НА ОСНОВЕ МОДЕЛИ НЕПОРШНЕВОГО ВЫТЕСНЕНИЯ НЕФТИ ВОДОЙ В УСЛОВИЯХ ЖЕСТКОГО ВОДОНАПОРНОГО РЕЖИМА 197.5 KB
  Для большинства пластов при вытеснении из них нефти водой характерно возникновение в порах раздробленных диспернированных глобул нефти. В местах пористых сред где путь движению нефти преграждается плотными скоплениями зерен породы в тупиковых зонах в поровых ловушках остаточная нефть сохраняется в виде неподвижных глобул не извлекаемых из пористой среды даже при ее бесконечной промывки. Возникновению неподвижных глобул способствуют также различие вязкостей нефти и воды и наличие у нефти неньютоновских свойств.