В программах 1С используется достаточно мощный механизм управления скидками. Но бывает такая ситуация, когда функционала все равно не хватает и нужно написать свой собственный алгоритм расчета скидки.
Для таких ситуаций предусмотрена возможность написания внешней обработки, которая будет рассчитывать скидку по нашим правилам.
Давайте рассмотрим пример на программе 1С:Управление торговлей.
И так нам требуется чтобы скидка на товар устанавливалась случайным образом. Назовем такую скидку — Колесо фортуны!
Я опишу общий принцип работы. Пример обработки можно будет скачать внизу статьи.
1️⃣ Создаем внешнею обработку
Для начала нам нужно создать внешнею обработку в модуле объекта которой необходимо создать несколько предопределенных процедур:
- СведенияОВнешнейОбработке() — Описание нашей обработки, служебная функция библиотеки стандартных подсистем:
- СпособПрименения() — Когда будет применяться скидка
- Автонаименование(Настройки) — Название скидки
- ИмяФормыНастроек() — Имя формы, в которой можно сделать дополнительные настройки
- ОписаниеДействия(Настройки) — Описание скидки в форме настройки
2️⃣ Форма настройки
1. В форме настройки мы зададим нижнею и верхнею границу нашей случайной скидки:
2. В модуле формы пропишем программный код, который будет отвечать за сохранение настроек:
3️⃣ Расчет скидки
1. Вернемся в модуль объекта обработки и добавить еще одну функцию — Рассчитать(). В этой функции происходит непосредственный расчет скидки. Тут все просто берем случайное число из нашего диапазона процента скидок и высчитываем сумму скидки.
4️⃣ Подключение обработки
1. Наша обработка готова, сохраняем ее и подключаем к нашей базе. Для этого переходим в раздел НСИ и администрирование — Печатные формы, отчеты и обработки, далее Дополнительные отчеты и обработки
2. Подключаем обработку:
5️⃣ Настройка скидки
1. Переходим в раздел CRM и маркетинг — Скидки (наценки)
2. Создаем нашу скидку
3. Настраивается скидка, как и все остальные, единственное по кнопке настройка можно задать наши параметры применения скидки
6️⃣ Проверка работы
1. Открываем любой заказ клиента и рассчитываем скидки. Готово!
2. Так же можно проверить применимость скидки открыв форму информации о скидках наценках из формы заказа
7️⃣ Скачать пример обработки
Обработка находится в этом посте, который доступен только подписчикам