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

25.09.14

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
Схема компоновки данных для получения сегмента партнеров исходя из истории продаж сегмента номенклатуры
.xml 13,85Kb
0
0 Скачать (1 SM) Купить за 1 850 руб.

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

Всё началось с того, что мне поручили внедрить накопительную систему скидок в нашей организации. Не долго думая создал маркетинговое мероприятие со скидкой в 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С v8.3 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Россия Бесплатно (free)

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

20.08.2024    934    PROSTO-1C    0    

14

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

Эта ошибка была обнаружена мной в типовой конфигурации 1С:Комплексная автоматизация 2 (2.5.16.115), БСП версия 3.1.9.302. Возникает она после того, как вы добавляете в расширение бизнес-процесс или задачу, выполняете обновление идентификаторов метаданных расширений, но ошибка при записи любого элемента справочника "Профили групп доступа" всё равно остаётся.

01.07.2024    1189    Vidz    0    

7

Механизмы типовых конфигураций Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Очень часто в написании кода требуется обращаться к предопределённым значениям. Если идёт обращение к типовым предопределённым значениям, то проблем не возникает.

24.06.2024    903    olja-ljaaa    0    

3

Механизмы типовых конфигураций Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Статистическая выборка сценариев и точек изменения отчетов на общей форме ФормаОтчета в типовых конфигурациях. Примеры кода.

03.06.2024    3794    Serg2000mr    32    

104

Механизмы типовых конфигураций Ценообразование, анализ цен Программист Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Россия Абонемент ($m)

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

1 стартмани

11.04.2024    891    tango    5    

3

Механизмы типовых конфигураций Программист Платформа 1С v8.3 1С:Управление торговлей 11 Россия Абонемент ($m)

Какому-либо элементу списка сопоставляется числовое значение, зависящее от других значений, причем эта зависимость изменяется от элемента к элементу. Так, в справочнике "Валюты" курс какой-либо валюты может быть задан формулой (или даже запросом) от значения другой валюты. А в справочнике "Виды цен" формула определяет расчет цены для товарной позиции, т.е. элементов справочника "Номенклатура", у которых в карточке указан этот вид цены. А в 1С:ERP, например, этот механизм используется в ресурсной спецификации.

10 стартмани

11.04.2024    775    tango    5    

4

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

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

08.04.2024    1061    tango    0    

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