Пример 2

В следующем примере выполняется начисления скидки на чек, 3 рубля за каждую позицию.

Функция РассчетСкидок_ПолучитьМассивАктивныхСкидокИзКэша_ПостОбработка(Покупка, ВостСкидки) Экспорт
_Отказ = Ложь;
Если (Покупка = Неопределено) Тогда	// скидки на чне
КэшСкидокНаЧек = _Источник.ЛокКэшСкидок;
Если КэшСкидокНаЧек = Неопределено Тогда
Возврат _РезультатВызова;
КонецЕсли;
_КодСхемы = 1; //подобные реквизиты можно вынести в настройки логического модуля
_КодСкидки = 1;
ДанныеСхемы = КэшСкидокНаЧек.Найти(_КодСхемы, "Схема_Код");
Если ДанныеСхемы <> Неопределено Тогда
СтрокаСкидки = ДанныеСхемы.Скидки.Найти(_КодСкидки, "Скидка_Код");
Если СтрокаСкидки <> Неопределено Тогда
тЗнСкидки = ?(СтрокаСкидки.Скидка.ТипСкидки = 1, 1, -1);
СтрокаСкидки.Скидка.Значение = тЗнСкидки * _Источник.ФормаРегистрации.СоставЧека.Количество() * 3;
//Внимание! для скидок на позицию при изменении значения скидки необходимо предварительно преобразовать строку таблицы значений Скидка в структуру
КонецЕсли;
КонецЕсли;
КонецЕсли;
Возврат _РезультатВызова;
КонецФункции