Код IT Загрузка примера кода…

1С (BSL) main.bsl
Функция РассчитатьСуммуСоСкидкой(Сумма, ПроцентСкидки) Экспорт
    Если ПроцентСкидки < 0 Или ПроцентСкидки > 100 Тогда
        ВызватьИсключение "Скидка должна быть в диапазоне 0..100";
    КонецЕсли;

    Возврат Сумма - (Сумма * ПроцентСкидки / 100);
КонецФункции

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

    Возврат Сумма - (Сумма * ПроцентСкидки / 100);
КонецФункции

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