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