поля «Ціна покупки» (яке відбувається або автоматично - виходячи з даних регістра відомостей «ЦениЗакупокІПродаж», або безпосередньо користувачем), автоматично формується значення поля «Ціна продажу» , а при зміні поля «Матеріал» та «Кількість», поля «ЦенаПокупкі» і «ЦенаПродажі», а також «СуммаПокупкі» і «СуммаПродажі» так само змінюють своє значення.
РемонтниеРаботи
Реквізити
Клієнт
ВідОплати
НалічіеКарти
ТіпКарти
СуммаСкідкі
СуммаСкідкіРаботи
СуммаСкідкіМатеріали
КоеффіціентСкідкі
СуммаМатеріали
СуммаРаботи
СуммаОплати
Табличні частини
ІспользованниеМатеріали
матеріал
одиниця виміру
кількість
сума
Послуги
тип роботи
вид роботи
майстер
ціна
кількість
Форма документа (рис. 6)
Рис. 6 - Форма документа «Ремонтні роботи»
У даному документі реалізована оплата клієнта залежно від наявності у нього дисконтної картки.
Розглянемо, як це реалізовано в модулі:
Процедура УслугіВідРаботиПріІзмененіі (Елемент)
Знижка=ЕлементиФорми. КоеффіціентСкідкі. Значення;
СтрокаТаблічнойЧасті=ЕлементиФорми. Послуги. ТекущіеДанние;
СтрокаТаблічнойЧасті. Кількість=1;
Ціна=довідника. Види робіт. НайтіПоНаіменованію (ЕлементиФорми. Послуги. ТекущіеДанние. ТіпРаботи) .ВідиРаботи. Знайти (ЕлементиФорми. Послуги. ТекущіеДанние. ВідРаботи) .Стоимость;
Якщо Знижка=0 тоді
СтрокаТаблічнойЧасті. Ціна=Ціна * СтрокаТаблічнойЧасті. Кількість;
Інакше
СтрокаТаблічнойЧасті. Ціна=(Ціна - Ціна * Знижка) * СтрокаТаблічнойЧасті. Кількість;
КонецЕсли;
КонецПроцедури
Процедура ПріЗапісі (Відмова)
Знижка=ЕлементиФорми. КоеффіціентСкідкі. Значення;
ЕлементиФорми. Сума оплати. Значення=Послуги. Підсумок («Ціна») + ІспользованиеМатеріали. Підсумок («Сума»);
ЕлементиФорми. СуммаМатеріали. Значення=ІспользованиеМатеріали. Підсумок («Сума»);
ЕлементиФорми. СуммаРаботи. Значення=Послуги. Підсумок («Ціна»);
Якщо ЕлементиФорми. НалічіеКарти. Значення=Істина тоді
Повідомити («На даного клієнта поширюється дисконтна програма !!!");
ЕлементиФорми. СуммаСкідкіМатеріали. Значення=ЕлементиФорми. СуммаМатеріали. Значення * Знижка;
ЕлементиФорми. СуммаСкідкіРаботи. Значення=ЕлементиФорми. СуммаРаботи. Значення * Знижка;
СуммаСкідкі=СуммаСкідкіМатеріали + СуммаСкідкіРаботи;
ОбщаяСуммаЗаказаСУчетомСкідкі=СуммаОплати - (СуммаСкідкіМатеріали + СуммаСкідкіРаботи);
Інакше
Повідомити («Розрахунок зроблений без урахування знижок !!!");
ЕлементиФорми. ОбщаяСуммаЗаказаСУчетомСкідкі. Значення=ЕлементиФорми. Сума оплати. Значення;
СуммаСкідкіМатеріали=0;
СуммаСкідкіРаботи=0;
КонецЕсли;
КонецПроцедури
Процедура ИспользованыеМатериалыМатериалПриИзменении(Элемент)
Знижка=ЕлементиФорми. КоеффіціентСкідкі. Значення;
СтрокаТаблічнойЧасті=ЕлементиФорми. ІспользованиеМатеріали. ТекущіеДанние;
СтрокаТаблічнойЧасті. Кількість=1;
Відбір=Новий Структура;
Відбір. Вставити («Матеріал», СтрокаТаблічнойЧасті. Матеріал);
Ціна=РегістриСведеній. ЦениЗакупокІПродаж. ПолучітьПоследнее (Дата, Відбір) .ЦенаПродажі;
Якщо ЕлементиФорми. КоеффіціентСкідкі. Значення=0 тоді
СтрокаТаблічнойЧасті. Сума=Ціна * СтрокаТаблічнойЧасті. Кількість;
Інакше
СтрокаТаблічнойЧасті. Сума=(Ціна - Ціна * Знижка) * СтрокаТаблічнойЧасті. Кількість;
КонецЕсли; ...