Создание своих автоматических скидок в УТ 11.4

18.08.21

Учетные задачи - Ценообразование, анализ цен

Разбирался тут недавно с механизмом автоматического расчёта скидок/наценок для УТ 11.4 по произвольному алгоритму. Т.к. механизм не простой и требуется не часто, решил выложить здесь свои изыскания, и сам смогу подсмотреть и может сэкономлю кому много времени.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Скидка процент за определённое количество товара
.epf 10,82Kb
85 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

В некоторый конфигурациях 1С есть такие особые виды внешних обработок, как «Расчет скидки/наценки» и «Проверка условия предоставления скидки/наценки», они слабо документированы (я не нашёл нормального мануала), по этому сам разбирался. Если кто даст ссылку на мануал, буду благодарен.

Первое и главное, где взять шаблон, чтобы не изобретать велосипед? Оказывается в демо-конфигурации 1С:Управление торговлей 11.4 уже есть две таких обработки:

  1. условие предоставления скидки за ассортимент — проверка условия;
  2. скидка/наценка процент за способ доставки — расчёт скидки.

Регистрация обработки происходит стандартным образом, однако все основные данные заполняются по умолчанию в функций ПараметрыРегистрацииВнешнейОбработкиСкидкиНаценки() или ПараметрыРегистрацииВнешнейОбработкиУсловияПредоставленияСкидокНаценок() общего модуля СкидкиНаценкиСервер. В данные процедуры передаются только Наименование и Информация. Зря не дали возможность передавать версию обработки, ну да ладно, всегда можно самому добавить данный функционал.

Соответственно один вид обработки отвечает непосредственно за расчёт скидок/наценок, а второй за условие применения тех или иных скидок/наценок. Соответственно одновременно и условия и методику расчёта описать в одной обработке нельзя. Причём, если вы реализуете произвольный алгоритм расчёта скидок, то наложить отбор на номенклатуру или сформировать условие для скидки уже нельзя. Взялись сами считать, вот и считаем. 

Рассмотрим механизм расчёта скидок, проверку условия изучим позже.

Расчёт начинается в процедуре Рассчитать() общего модуля СкидкиНаценкиСервер, там в зависимости от вида документа, запускается своя процедура расчёта. В этих процедурах формируется первый параметр ПараметрыРасчета, в котором много всего, что может пригодиться для работы, например, товары в виде таблицы значений и объект, т. е. документ или форма для которого вызван расчёт скидок.

Вторым шагом формируется параметр ДеревоСкидок, как результат запроса к справочнику СкидкиНаценки. Полученные параметры передаются процедуре РассчитатьСкидкиРекурсивно(), которая рассчитывает скидку для каждой строки дерева скидок.

Непосредственный расчёт происходит в процедуре РассчитатьСкидку() с параметрами СтрокаДерева и ПараметрыРасчета, где по типу параметра СтрокаДерева.СпособПредоставления определяется алгоритм расчёта скидок, именно тут запускается процедура расчёта скидок, расположенная в модуле объекта внешней обработки. Расчёт запускается в безопасном режиме!

Есть ещё один важный параметр, на основании которого рассчитываются скидки, а именно наши настройки из внешней обработки, их нужно как-то передать в алгоритм расчёта. Мы должны их оформить в структуру и определённым образом организовать выгрузку во временное хранилище (см. пример,  функцию СохранитьНастройкиВнешнейОбработки() в модуле формы), потом эти настройки «как есть» будут сохранены в реквизите ПараметрыВнешнейОбработки элемента справочника СкидкиНаценки, а во время запуска нашей процедуры будут переданы в качестве параметра Настройки.

В итоге в процедуру Рассчитать модуля объекта внешней обработки передаются следующие параметры:

  • СкидкаНаценка — соответствующие данные элемента справочника СкидкиНаценки;
  • Настройки — полученные из хранилища значение наши настройки в виде структуры;
  • Товары — выборка из переменной ПараметрыРасчета.Товары с отбором по условию, в случае, если скидка применяется не ко всем товарам (т.к. отбор по товарам не осуществляется, то это все товары).
  • ПараметрыРасчета — большая структура со всеми данными для расчёта скидки.

Теперь как считать? Результатом расчёта должна быть таблица значений с колонками, описанными в процедуре ПустаяТаблицаСкидокСРасшифровкой() общего модуля СкидкиНаценкиСервер. Данные в таблицу значений вносятся специальными процедурами:

  • ПрименитьЗначениеСкидкиКТовару() — это применение скидки к конкретному товару;
  • РаспределитьЗначениеСкидкиНаТовары() — распределение скидки между всеми товарами пропорционально их стоимости.

Для примера предлагаю внешнюю обработку, реализующую начисление скидки от некоторого количества товара определённой номенклатуры. Т.е., допустим, за 1 штуку ничего не даём, за 2 - 20%, за 3 и далее- 40% за штуку. Пример настроек приведён выше на скриншоте, а сама обработка сделана на основе демонстрационных обработок из 1С:УТ 11.4.

Все исследования проводил на конфигурации Управление торговлей, редакция 11 (11.4.11.55) и потом проверял на 1С:Комплексная автоматизация 2 (2.4.11.46).

UPD: 18.08.2021 добавлена настройка для применения скидок ко всем товарам в документе.

Вступайте в нашу телеграмм-группу Инфостарт

скидка наценка

См. также

Загрузка и выгрузка в Excel Розничная торговля Логистика, склад и ТМЦ Ценообразование, анализ цен Прайсы Системный администратор Программист 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Загрузка номенклатуры из файлов Excel (xls, xlsx, ods, csv, mxl) в УТ11, КА 2, ERP 2, Розница 2. Задействованы все возможности конфигурации - заполнение реквизитов номенклатуры, дополнительных реквизитов и сведений, характеристики, доп.реквизиты и сведения характеристик. Дополнительные обработки для расширения возможностей.

12444 руб.

29.10.2014    234066    757    540    

502

Загрузка и выгрузка в Excel Логистика, склад и ТМЦ Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Эволюция не стоит на месте - новая удобная версия функциональной обработки для Вашего бизнеса! Что же Вы получаете? Удобный и интуитивно понятный интерфейс с 3-мя этапами работы. 2 режима - автоматический и ручной. Чтение XLSX, XLSM, CSV, XML/YML форматов без офиса, на любом сервере! Визуальное связывание колонок файла и реквизитов простым перетаскиванием колонок. Создание или обновление номенклатуры с иерархией, характеристик, доп. реквизитов, упаковок, загрузка практически неограниченного количества картинок на одну номенклатуру (с возможностью загрузки в несколько потоков одновременно), с хранением в томах или в базе. Загрузка номенклатуры поставщиков или поиск по их данным номенклатуры. Загрузка доп. реквизитов в характеристики. Загрузка штрихкодов с генерацией новых. Создание элементов справочников и ПВХ "на лету" для выбранных реквизитов. (Обновление от 14.05.2026, версия 9.3.1 - 10.7.2)

20740 руб.

20.11.2015    176638    427    397    

544

Сканер штрих-кода Терминал сбора данных Мобильная разработка Монитор заказов Оптовая торговля Розничная торговля Ценообразование, анализ цен Программист Пользователь 1С:Предприятие 8 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Простой мобильный ТСД (терминал сбора данных) сканер для 1С для смартфонов на iOS и Android, не требующий сложных настроек и установки дополнительных программ. Обмен между Вашей 1С и мобильным приложением осуществляется через облачный сервис и расширение конфигурации. Работает с конфигурациями УТ 11, ERP, КА2, Розница 2, Розница 3, УНФ 1.6, УНФ 3.0. Полнофункциональный демо-доступ для своей конфигурации можно запросить в настройках мобильного приложения - все необходимое придет на почту автоматически. Решение предназначено для считывания штрихкодов, а не для их создания и печати.

3050 руб.

22.04.2019    121839    722    205    

383

Логистика, склад и ТМЦ Мастера заполнения Ценообразование, анализ цен Бухгалтер Пользователь 1С:Предприятие 8 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Управленческий учет Платные (руб)

Исправление пересчета товаров, пересчет всех колонок по виду цен. Исправлено поведение стандартной команды Заполнения по виду цен. Расширение не меняющее логику работы. Удовлетворит большинство розничных продавцов, не нужно ничего пересчитывать руками, сразу видна недостача или излишки по выбранному виду цены

5084 руб.

28.06.2023    5393    13    5    

13

Логистика, склад и ТМЦ Ценообразование, анализ цен Пользователь 1С:Предприятие 8 1С:Управление торговлей 11 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Расширение позволяет выводить остатки по выбранным складам и выбранные цены в основных списках и формах выбора для продаж/закупок. Вывод цен/складов может быть настроен конкретно для каждого пользователя, если нужно ограничение по выводимым данным для разных пользователей.

2033 руб.

21.06.2022    13216    42    13    

25

Маркетплейсы Ценообразование, анализ цен Пользователь 1С 8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

В последнее время маркетплейсы регулярно и без предупреждения меняют комиссии на своих площадках, поэтому нужно постоянно контролировать и оперативно менять цены, чтобы не «прогореть». Какой-то товар может неожиданно попасть в категорию с другой комиссией или изменить весогабаритные характеристики, от которых сильно зависит стоимость логистики. Данные обработки помогут быстро выявить товары с наценкой ниже требуемой и установить рекомендуемую расчетную цену для выгрузки на маркетплейс.

6100 руб.

27.04.2026    543    3    0    

1

Задачи пользователя Ценообразование, анализ цен 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Оптовая торговля, дистрибуция, логистика Россия Платные (руб)

Расширение улучшает типовую обработку по подбору номенклатуры в документах: «Заказ клиента», «Реализация товаров и услуг», «Перемещение товаров», "Пересчет товаров", "Списание товаров", "Оприходование товаров", "Заказы поставщикам", "Приобретение товаров и услуг" Пользователь видит картинку с изображением товара, остатки на всех складах и цену в различных видах цен.

6100 руб.

03.10.2025    2452    9    6    

12
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. aspirator23 342 01.07.21 12:07 Сейчас в теме
Автоматические скидки реализованные через внешние обработки "тормозные". Мне кажется что их нужно как можно меньше использовать, хотя сам механизм удобный для создания нетипичных или сложных скидок. Проблема заключается в том что создаются временные внешние файлы и их создание медленно. При этом какого механизма повторного использования этих файлов я не нашел в конфигурации.
2. soulner 504 01.07.21 14:20 Сейчас в теме
(1) Да, конечно вы правы. Но в УТ стандартный набор скидок небольшой и часто хочется чего-то большего, а заметное торможение наблюдается только при большом количестве товаров. А папка временных файлов должна быть на быстром диске или в памяти, тогда торможение не особо заметно.
3. PanNataly 15.07.21 17:10 Сейчас в теме
Скачала файлик, Установила скидку при покупке более 23шт скидка 20%, в заказе 24 штуки. обработка выдала автоматическую скидку 1,67%. не поняла, по какой формуле считает
4. soulner 504 16.07.21 20:16 Сейчас в теме
(3) Вы правы, была ошибка. Исправил, обработку в публикации обновил, вам выслал ссылку на обработку без ошибок.
А формула там простая: в вашем случае с 1 до 23 шт нет скидки, а на 24-ю штуку скидка 20%, общая скидка должна быть 0.83%.
5. ilnur75 18.08.21 10:29 Сейчас в теме
а возможно сделать чтобы такая скидка применялась ко всей номенклатуре ?
6. soulner 504 18.08.21 12:35 Сейчас в теме
(5) Добавил настройку, обновил файл в публикации.
Прикрепленные файлы:
7. ilnur75 18.08.21 14:06 Сейчас в теме
скиньте пож-та мне новый файл.
9. пользователь 18.08.21 15:49
Сообщение было скрыто модератором.
...
8. пользователь 18.08.21 15:08
Сообщение было скрыто модератором.
...
10. пользователь 18.08.21 15:50
Сообщение было скрыто модератором.
...
11. ilnur75 18.08.21 16:01 Сейчас в теме
эту тему можно развить, например сделать возможность применения скидки учитывая не только колво по строке (т.е. по отдельному товару ), но и применить ко всем строкам таблицы товары. например 2 товара по 1 ед. На второй товар идет скидка.
12. soulner 504 18.08.21 16:06 Сейчас в теме
(11) Публикация как раз о том, как сделать самому то, что хочешь. Тут на всех не угодишь, надо конкретно под задачу делать обработку. Иначе получим сложные нечитаемые настройки и тормоза при расчёте скидки (как коллега в первом посте говорил). ИМХО.
13. SGordon1 05.04.22 12:22 Сейчас в теме
А бонусы так можно самому посчитать?
14. soulner 504 05.04.22 14:19 Сейчас в теме
(13) Нет, там в результате работы заполняется специальная таблица значений в которой указываются именно скидки или наценки.
SGordon1; +1 Ответить
15. MarryJane 39 20.02.23 18:33 Сейчас в теме
На основе, сделал скидку на "подарок (скидка 99%) на самый дешевый товар в чеке". Спасибки.
16. EduardStr 22.10.24 19:39 Сейчас в теме
Привет всем! Может кто-нибудь поделиться примером такой обработки ?
Для отправки сообщения требуется регистрация/авторизация