Альтернатива накопительной системы скидок в конфигурации "Управление торговлей, редакция 11.1"

25.09.14

Разработка - Механизмы типовых конфигураций

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

Файлы

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

Наименование Скачано Купить файл
Схема компоновки данных для получения сегмента партнеров исходя из истории продаж сегмента номенклатуры
.xml 13,85Kb ver:1.0
0 2 500 руб. Купить

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

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

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

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

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

Эта статья не претендует на внесение в "конституцию", возможно многие и сами дошли до этого, но я счёл полезным поделится своими знаниями.

Всё началось с того, что мне поручили внедрить накопительную систему скидок в нашей организации. Не долго думая создал маркетинговое мероприятие со скидкой в 10%, в которой выбрал только одно условие скидки, а именно: "сумма проданного товара за весь период более 10000 рублей". Сохранил. Создал заказ клиента, накидал товаров и с довольной "миной" нажал на "Расчетать скидки (наценки)". Шикарно, скидка назначилась. Я, довольный собой и типовыми возможностями УТ11, кинулся дополнять созданное ранее маркетинговое мероприятие новыми скидками и условиями. В клочке бумажки, который мне снизашёл сверку был вкраце обрисованы всевозможные скидки и условия акции.

Примерная таблица:

    за 24 месяца за 20 месяцев за 16 месяцев за 12 месяцев
Сегмент номенклатуры После первой покупки от 10000 руб. от 20000 руб. от 30000 руб. от 40000 руб.
Сегмент1  1,5  2  2,5  3
Сегмент2  1,5  2  2,5  3  3,5
Сегмент3  2 2,5   3  3,5  4
Сегмент4  2,5  3  3,5  4  4,5
Сегмент5  3  3,5  4  4,5  5
Сегмент6   3,5  4  4,5  5  5,5

 

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

Не вопрос, подумал я, УТ11 это умеет и родилось это:

Настройка условия

В итоге вышло следующее:

Скидка в 1,5% на товар сегмента Сегмент1

Сохранив и опробовав на заказе клиента я как заводной начал шлёпать подобные скидки для остальных условий таблицы.

Через минут 30 всё было готово. Зову "надзорный орган" и демонстрирую своё произведение искусства, демонстративно создаю заказ клиента напихиваю туда товар из разных сегментов и жму "Рассчитать скидки (наценки)" и ...

Ждём...

Ждём...

Кофе попьём?

Не, подождём.

(Спустя 40 секунд, замечу сразу, база не файловая)

Всё расчиталось как и положено, но что-то мне не нравится взгляд "надзорного органа". Осознав причиву взгляда и пообещав разобраться, начинаю копать конфигуратор и смотреть как в УТ11 считаются скидки. МОЩНО!. Одним запросом. Принимаю решение оптимизировать расчёт и распилить запрос на несколько и смотря на результат одного запроса принимать решение о необходимости выполнять следующий запрос или "перепрыгнуть" на другой. Ушёл домой.

Заснуть не мог долго, мысли витали в голове. Одну из них я смог поймать. Идея заключалась в том, чтобы не проверять каждый раз накопленную сумму, а вычислять её раз в день и запоминать, а именно заполнять сегмент партнеров для каждой категории скидки. Поняв, что это верная мысль, я смог уснуть.

На работу я ехал с необыновенным удовольствием, желая побыстрее разобраться с этой проблемой.

В итоге я написал свой запрос для схемы СКД сегмента партнёров, который учитывал покупки партнёра определённого сегмента номенклатуры и период.


ВЫБРАТЬ
	АналитикаУчетаНоменклатуры.КлючАналитики
ПОМЕСТИТЬ ВТ_Ключи
ИЗ
	РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НоменклатураСегмента КАК НоменклатураСегмента
		ПО АналитикаУчетаНоменклатуры.Номенклатура = НоменклатураСегмента.Номенклатура
			И АналитикаУчетаНоменклатуры.Характеристика = НоменклатураСегмента.Характеристика
ГДЕ
	НоменклатураСегмента.Сегмент = &Сегмент
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
	ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаПоПартнерам.Партнер КАК Ссылка
ПОМЕСТИТЬ ВТ_Партнеры
ИЗ
	РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(
			&НачалоПериода,
			&ОкончаниеПериода,
			Авто,
			АналитикаУчетаНоменклатуры В
				(ВЫБРАТЬ
					АналитикаУчетаНоменклатуры.КлючАналитики
				ИЗ
					ВТ_Ключи КАК АналитикаУчетаНоменклатуры)) КАК ВыручкаИСебестоимостьПродажОбороты
ГДЕ
	ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот > &СуммаВыручкиОборот
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	Партнеры.Ссылка КАК Партнер
{ВЫБРАТЬ
	Партнер}
ИЗ
	ВТ_Партнеры КАК Партнеры
{ГДЕ
	Партнеры.Ссылка.* КАК Партнер}

Для этого необходимо создать сегмент партнеров с периодическим обновлением, нажать на "редактировать" схемы компоновки данных. В открывшимся окне нажать "Загрузить схему из файла" и выбрать прикреплённый к этой статье файл:

Загрузка схемы компоновки 

После этого если нажать на "Редактировать схему компоновки" вы увидите изменённый запрос:

Новый запрос компоновки

а также новые параметры:

Новые параметры компоновки

В итоге введя следующие параметры в настройки компановки:

Заполнение параметров компоновки

мы получим сегмент партнеров с оборотом покупок за последние 24 месяца номенклатуры из сегмента "Сегмент1" на сумму более 10000 руб.

Теперь остаётся только поправить условия предоставления скидок в нашей накопительной системе.

Заменяем ранее созданное условие накопление на следующее:

Новое условие накопления

Финальная версия скидки с условиями выглядит так:

Финальные условия скидки

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

накопительная система скидок УТ11 скидки в УТ11 Управление торговлей 11 скидки в Управление торговлей 11

См. также

Инструментарий разработчика БСП (Библиотека стандартных подсистем) Механизмы типовых конфигураций Программист 1С 8.3 1С:ERP Управление предприятием 2 Абонемент ($m)

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

1 стартмани

20.03.2026    1053    InFlach    0    

6

Механизмы типовых конфигураций Программист Стажер 1С 8.3 1С:Зарплата и Управление Персоналом 3.x Бесплатно (free)

Интервальные регистры в 1С:ЗУП 3.1 заменяют тяжелые срезы последних, ускоряя отчеты по кадровым данным через интервалы ДатаНачала–ДатаОкончания. Разбираем отличия, примеры кода, плюсы и способы синхронизации.

12.03.2026    2558    AlexeyPROSTO_1C    4    

20

Механизмы типовых конфигураций Программист Стажер 1С 8.3 1С:Зарплата и Управление Персоналом 3.x Бесплатно (free)

Как в ЗУП работает механизм расстановки времени в регистрах сведений с помощью подписки на события?Рассматривается логика сдвигов для разных типов документов (прием, увольнение, отпуск) и дается инструкция по подключению нового регистра к этому механизму.

03.03.2026    1238    YA_1100893639    1    

7

Механизмы типовых конфигураций Программист 1С:Предприятие 8 1С:ERP Управление предприятием 2 Россия Бесплатно (free)

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

11.08.2025    7647    user1988284    0    

23
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. eeeio 127 25.09.14 16:58 Сейчас в теме
2. Pavean 27.09.14 14:21 Сейчас в теме
Было 40 секунд а стало сколько?
3. frutty 125 27.09.14 18:03 Сейчас в теме
(2) Pavean, а стало в 40 раз быстрее :)
4. Vitstav 3 30.04.15 08:34 Сейчас в теме
А не проще ли было присваивать клиенту определенный сегмент.... без изменения кода? По заданию? Есть же сегменты которые формируются периодически. Поставить расписание на ночь... и прописать те же самые условия... на утро перешерстив продажи ваш клиент получит нужный вам сегмент и писать ничего ненужно будет...
5. frutty 125 30.04.15 12:16 Сейчас в теме
(4) Vitstav, без обид, вы статью читали? в ней именно этот способ и описан.
Для отправки сообщения требуется регистрация/авторизация