Вопрос по накопительным скидкам для двух организаций Комплексная Автоматизация 2.4

1. 1c_uZer 05.02.21 11:06 Сейчас в теме
Всем добрый день.! Подскажите пожалуйста, кто стакивался. у меня комплексная редакция 2.4. В ней две организации. у каждой организации две торговые точки. работают в одной базе. Суть в том, что требуется накопительная скидка и в принципе проблем настроить её нет. Но! продажи должны копиться по одному клиенту если он совершает покупки в организации1 и в организации2. то есть на данный момент если он купит в организации1 на 100к то скидка в зависимости от объёма продаж будет 10 процентов в этой же организации. и вот он с этой картой лояльности пришел в организацию2, так как там покупок не было предоставив карту скидку он не получит...база проанализирует что в организации2 покупок не было и скидку не даст...а хотелось бы чтобы еще учитывались продажи в организации1....может кто делал или есть какие-либо решения? или функционал типовой для таких случаев есть...
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. uriah 18 05.02.21 12:13 Сейчас в теме
(1)
Но! продажи должны копиться по одному клиенту если он совершает покупки в организации1 и в организации2. то есть на данный момент если он купит в организации1 на 100к то скидка в зависимости от объёма продаж будет 10 процентов в этой же организации. и вот он с этой картой лояльности пришел в организацию2, так как там покупок не было предоставив карту скидку он не получит

Стандартным функционалом никак не получится, т.к. карта лояльности привязывается к организации.
А доработку делать, слишком много условий нужно предусмотреть. Овчинка выделки не стоит.
3. Sergex 58 05.02.21 13:12 Сейчас в теме
(2)
Овчинка выделки не стоит.

Это смотря с чьей позиции. Если клиент не получит скидку в 10К рублей - печаль его будет велика...

А решение придумать можно, вот только доискаться до того места где при расчете скидки оборот продаж калькулируется и поменять там в запросе отбор с конкретной организации на список - дорогого стоит...
4. 1c_uZer 05.02.21 13:15 Сейчас в теме
(3)
ать можно, вот только доискаться до того места где при расчете скидки оборот продаж калькулируется и поменять там в запросе отбор с конкретной организации на список - дорогого стоит.
вот и я думаю....там подводных камней целая тьма...странно что не реализовано в типовом функционале.
5. uriah 18 05.02.21 13:27 Сейчас в теме
(3)
А решение придумать можно, вот только доискаться до того места где при расчете скидки оборот продаж калькулируется и поменять там в запросе отбор с конкретной организации на список - дорогого стоит...

Как раз найти это место, труда не составляет. Вопрос в другом, каким образом предусмотреть все те нюансы, которые возможны при назначении скидок, и при взаимозачете скидок, а также те проблемы, которые могут возникнуть.
6. Sergex 58 05.02.21 13:31 Сейчас в теме
(5) Я думаю страшного не будет так как если вы измените расчет оборотов по которым срабатывают условия так чтобы оборот данного клиента считался по всем орг а не по конкретной, тогда просто у всех скидок от суммы продаж оборот будет браться по всем орг (например).

На что это еще может повлиять кроме диапазона срабатывания условия скидки с оборота?
7. uriah 18 05.02.21 13:41 Сейчас в теме
(6)
Я думаю страшного не будет так как если вы измените расчет оборотов по которым срабатывают условия так чтобы оборот данного клиента считался по всем орг а не по конкретной, тогда просто у всех скидок от суммы продаж оборот будет браться по всем орг (например).

Проблема не расчете скидок, проблема в перерасчете скидок. Карты лояльности жестко привязаны к конкретной организации, соответственно, должен быть дубляж такой же скидки по второй организации, причем с такими же настройками, а дальше уже нужно придумывать механизм записи накопления и списания баллов.
8. Sergex 58 05.02.21 15:55 Сейчас в теме
(7) В порядке обсуждения. Карта лояльности определяется для покупателя в ней есть еще и соглашение, однако оно может быть оформлено без организации. В самой скидке нет организации. Если расчет скидки опирается на объем продаж. Тогда логика расчета определяет оборот (сумму покупок) данного покупателя по данной организации (из документа).

В реквизите партнер карты лояльности сказано:
Деловой партнер предприятия, которому осуществляются продажи по данной карте.
Автоматически подставляется в документы при считывании в документе карты лояльности.

Отсюда можно сделать вывод что карта не более чем механизм идентификации партнера и контрагента при оформлении документа. Конкретно при считывании карты заполняются в документе поля партнер контрагент и соглашение. Организация не может быть заполнена, если она не указана в соглашении, так как ее больше нигде нет. Больше ни на что карта не влияет.

Посмотрел внимательнее код по КА 2.4. Организация есть у видов карт лояльности в реквизите сказано:
Данная организация будет использоваться при печати регистрационной анкеты карты лояльности.


Так же приведу код из документа заказ клиента:

&НаКлиенте
Процедура СчитанаКартаЛояльности(Знач Оповещение, КартаЛояльности)
	
	ДанныеКартыЛояльности = КартыЛояльностиВызовСервера.ПолучитьДанныеКартыЛояльности(КартаЛояльности);
	Если ЗначениеЗаполнено(ДанныеКартыЛояльности.Ссылка) Тогда
		
		Если Не ДанныеКартыЛояльности.ПартнерДоступен Тогда
			ПоказатьПредупреждение(Новый ОписаниеОповещения("СчитанаКартаЛояльностиЗавершение", ЭтотОбъект, Новый Структура("Оповещение", Оповещение)), НСтр("ru = 'Нет доступа к партнеру-владельцу карты лояльности.'"));
			Возврат;
		КонецЕсли;
		
		Если Не ЗначениеЗаполнено(ДанныеКартыЛояльности.Партнер) Тогда // Обезличенная карта
			
			СкидкиНаценкиКлиент.СброситьФлагСкидкиРассчитаны(ЭтаФорма);
			Модифицированность = Истина;
			Объект.КартаЛояльности   = КартаЛояльности;
			
			ВыполнитьОбработкуОповещения(Оповещение);
			Возврат;
			
		ИначеЕсли Объект.Партнер <> ДанныеКартыЛояльности.Партнер Тогда // Партнер в карте отличается от партнера в документе.
			
			Если ЗначениеЗаполнено(Объект.Партнер) Тогда
				ДополнительныеПараметры = Новый Структура;
				ДополнительныеПараметры.Вставить("Оповещение", Оповещение);
				ДополнительныеПараметры.Вставить("КартаЛояльности", КартаЛояльности);
				ДополнительныеПараметры.Вставить("ДанныеКартыЛояльности", ДанныеКартыЛояльности);
				ПоказатьВопрос(
					Новый ОписаниеОповещения("СчитанаКартаЛояльностиВопросЗавершение", ЭтотОбъект, ДополнительныеПараметры),
					СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Карта лояльности принадлежит партнеру ""%1"". Изменить партнера в документе?'"), ДанныеКартыЛояльности.Партнер),
					РежимДиалогаВопрос.ДаНет);
				Возврат;
			КонецЕсли;
			
		Иначе // Партнер в документе равен партнеру в карте.
			
			ВопросОбИзмененииКонтрагента = Ложь;
			Если ЗначениеЗаполнено(ДанныеКартыЛояльности.Контрагент)
				И ЗначениеЗаполнено(Объект.Контрагент) И ДанныеКартыЛояльности.Контрагент <> Объект.Контрагент Тогда
				ВопросОбИзмененииКонтрагента = Истина;
			КонецЕсли;
			
			ВопросОбИзмененииСоглашения = Ложь;
			Если ИспользоватьСоглашенияСКлиентами И ЗначениеЗаполнено(ДанныеКартыЛояльности.Соглашение)
				И ЗначениеЗаполнено(Объект.Соглашение) И ДанныеКартыЛояльности.Соглашение <> Объект.Соглашение Тогда
				ВопросОбИзмененииСоглашения = Истина;
			КонецЕсли;
			
			Если ВопросОбИзмененииКонтрагента Или ВопросОбИзмененииСоглашения Тогда
				
				Если ВопросОбИзмененииКонтрагента И ВопросОбИзмененииСоглашения Тогда
					ТекстВопроса = НСтр("ru = 'Для карты лояльности заданы контрагент ""%1"" и соглашение ""%2"". Применить карту лояльности и подставить в документ контрагента ""%1"" и соглашение ""%2""?'");
				ИначеЕсли ВопросОбИзмененииКонтрагента Тогда
					ТекстВопроса = НСтр("ru = 'Для карты лояльности задан контрагент ""%1"". Применить карту лояльности и подставить в документ контрагента ""%1""?'");
				ИначеЕсли ВопросОбИзмененииСоглашения Тогда
					ТекстВопроса = НСтр("ru = 'Для карты лояльности задано соглашение ""%2"". Применить карту лояльности и подставить в документ соглашение ""%2""?'");
				КонецЕсли;
				
				ДополнительныеПараметры = Новый Структура;
				ДополнительныеПараметры.Вставить("Оповещение", Оповещение);
				ДополнительныеПараметры.Вставить("КартаЛояльности", КартаЛояльности);
				ДополнительныеПараметры.Вставить("ДанныеКартыЛояльности", ДанныеКартыЛояльности);
				ПоказатьВопрос(
					Новый ОписаниеОповещения("СчитанаКартаЛояльностиВопросЗавершение", ЭтотОбъект, ДополнительныеПараметры),
					СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстВопроса, ДанныеКартыЛояльности.Контрагент, ДанныеКартыЛояльности.Соглашение),
					РежимДиалогаВопрос.ДаНет);
				Возврат;
				
			КонецЕсли;
			
		КонецЕсли;
		
		СкидкиНаценкиКлиент.СброситьФлагСкидкиРассчитаны(ЭтаФорма);
		Модифицированность = Истина;
		Объект.КартаЛояльности   = КартаЛояльности;
		СчитанаКартаЛояльностиНаСервере(ДанныеКартыЛояльности);
		
	КонецЕсли;
	
	ВыполнитьОбработкуОповещения(Оповещение);

КонецПроцедуры
Показать


Я не вижу в коде жесткого изменения организации в документе на организацию из вида карты лояльности.

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

Как я понимаю суть в логике расчета самой скидки и она рассчитывает оборот продаж по организации и партнеру из документа в рамках которого выполняется расчет.

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

Дублировать карты не нужно. Записывать накопления тоже - надо просто найти то место в коде, которое калькулирует оборот продаж, поправить в нем отбор по организации, из переданных в расчет параметров (из документа), на нужный вам (или по всем орг или по списку). Если ничего больше не изменять то и никаких зависимостей не будет нарушено и не возникнут новые.
9. uriah 18 05.02.21 16:01 Сейчас в теме
(8)
Следовательно теория о том что карта лояльности привязана к конкретной организации требует доказательств. В архитектуре реквизитов карты лояльности я их не вижу

Тут и доказывать нечего. Прикладываю форму справочника Карт лояд\льности.
Прикрепленные файлы:
11. Sergex 58 05.02.21 16:10 Сейчас в теме
(9) Посмотрите внимательно чего это форма.

Смотреть надо несколько глубже. А именно откуда берется организация при расчете оборота продаж покупателю. ну и если у вас есть база с данными на которых можно проверить - попробуйте считать карту лояльности в документ в котором указана организация отличная от заданной в виде карт лояльности - владельце этой карты.

Что произойдет?
13. uriah 18 05.02.21 16:14 Сейчас в теме
(11)
ну и если у вас есть база с данными на которых можно проверить - попробуйте считать карту лояльности в документ в котором указана организация отличная от заданной в виде карт лояльности - владельце этой карты.

То что сканер прочитает любую карту нет сомнения, но вот найдется ли скидка по этой карте?
10. uriah 18 05.02.21 16:02 Сейчас в теме
(8)
Отсюда можно сделать вывод что карта не более чем механизм идентификации партнера и контрагента при оформлении документа. Больше ни на что карта не влияет.

К карте привязываются скидки и акции. Опять же на том же рисунке рассматриваем.
12. Sergex 58 05.02.21 16:13 Сейчас в теме
(10) Вот форма и реквизиты карты лояльности. А скидки и акции они привязываются к виду карт лояльности.
Прикрепленные файлы:
14. uriah 18 05.02.21 16:16 Сейчас в теме
(12)
Вот форма и реквизиты карты лояльности. А скидки и акции они привязываются к виду карт лояльности.

А вид карты привязывается к Организации.
15. Sergex 58 05.02.21 16:19 Сейчас в теме
(14) Ну разумеется, я же с этим не спорю. Я просто задаюсь вопросом а на что кроме описанного в комментарии реквизита вида карт лояльности:
Данная организация будет использоваться при печати регистрационной анкеты карты лояльности.


Влияет эта привязка? Вы думаете что на все. Я полагаю что ни на что.

Попробуйте считать карту лояльности в документ в котором указана организация отличная от заданной в виде карт лояльности - владельце этой карты.

Что произойдет?
16. uriah 18 05.02.21 16:21 Сейчас в теме
(15)
Влияет эта привязка? Вы думаете что на все. Я полагаю что ни на что.

Попробуйте считать карту лояльности в документ в котором указана организация отличная от заданной в виде карт лояльности - владельце этой карты.

Может быть.
Проверить в данный момент нет возможности.
17. Sergex 58 05.02.21 16:22 Сейчас в теме
(16) Отпишитесь плиз как сможете проверить. Вопрос любопытный.
18. uriah 18 05.02.21 16:24 Сейчас в теме
(17)
Отпишитесь плиз как сможете проверить. Вопрос любопытный.

Постараюсь, главное не забыть.
19. uriah 18 05.02.21 16:31 Сейчас в теме
Действия скидок сохраняется в Регистре сведений ДействияСкидокНаценок, одно из измерений есть значение Справочника СоглашенияСКлиентами, которое соответственно привязывается к Организации. От привязки скидок и наценок к Организации никуда не уйти.
20. Sergex 58 05.02.21 16:53 Сейчас в теме
(19) Ну в соглашениях то организация поле не обязательное.
Я тут проверил ответ на свой вопрос...

Оно таки при вводе карты в документ проверяет совпадение организации в документе с орг в виде карт лояльности.

Умные люди писали. Фиг просто так на бок завалишь...

Но что поразительно что проверка происходит если организация указана однако заполнения ее при считывании карты не выполняется. То есть считав карту можно указать затем любую орг...
Прикрепленные файлы:
21. uriah 18 05.02.21 16:55 Сейчас в теме
(20)
Оно таки при вводе карты в документ проверяет совпадение организации в документе с орг в виде карт лояльности.

Мы тут обсуждаем, а заказчика и след простыл.
22. 1c_uZer 05.02.21 17:19 Сейчас в теме
(21) не простыл. просто хотелось обойти с минимальными потерями и трудозатратами, но вывод понятен что довольно объёмная доработка получится. спасибо за чёткое пояснение всем. возможно придётся искать другой путь...до этого на 7.7 был реализован сей механизм но есть подозрение что не самыми типовыми средствами.
23. uriah 18 05.02.21 18:09 Сейчас в теме
(22)
не простыл. просто хотелось обойти с минимальными потерями и трудозатратами, но вывод понятен что довольно объёмная доработка получится. спасибо за чёткое пояснение всем. возможно придётся искать другой путь...до этого на 7.7 был реализован сей механизм но есть подозрение что не самыми типовыми средствами.

Извиняюсь. В принципе задача решаема, но не тривиальными методами и во сколько сей фрукт обойдется сказать трудно.
24. 1c_uZer 08.02.21 05:34 Сейчас в теме
(23) это я понял. спасибо за предоставленные куски кода. думаю клиентам проще будет поменять скидочную систему...
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот