Замена дисконтных карт в 1С:Розница 2.1

23.08.16

Задачи пользователя - Адаптация типовых решений

Небольшое улучшение Розницы 2.1

Мы используем Розницу 2.1, почти довольны. Один из её недостатков - работа с дисконтными картами.

Если клиент хочет заменить карту, 1С предлагает документ Замена дисконтной карты. В соответствующий РС делается запись. Старая карта не блокируется. При этом не переносятся накопления. Да, есть механизм поиска предыдущих карт и выведение данных с учётом замен, но почему-то он не везде внедрён..

Я решил доработать систему, и добавил в документ Замена карты движения по накоплениям.

В модуле документа в обработке проведения

	// Движения по денежным средствам.
	МаркетинговыеАкцииСервер.ОтразитьРегистрацияЗаменыКартПокупателей(ДополнительныеСвойства, Движения, Отказ);
	//
	БонусныеБаллыСервер.ОтразитьБонусныеБаллы(ДополнительныеСвойства, Движения, Отказ);
	ПродажиСервер.ОтразитьПродажиПоДисконтнымКартам(ДополнительныеСвойства, Движения, Отказ);
	//

В модуле менеджера доработал запрос

Функция ТекстЗапросаТаблицаРегистрацияЗаменыКартПокупателей()
	ТекстЗапроса = "ВЫБРАТЬ
	               |	ЗаменаДисконтныхКартКартыПокупателей.Ссылка КАК Ссылка,
	               |	ЗаменаДисконтныхКарт.Дата КАК Период,
	               |	ЗаменаДисконтныхКартКартыПокупателей.КартаИсточник КАК КартаИсточник,
	               |	ЗаменаДисконтныхКартКартыПокупателей.КартаПриемник КАК КартаПриемник
	               |ПОМЕСТИТЬ Карты
	               |ИЗ
	               |	Документ.ЗаменаДисконтныхКарт.КартыПокупателей КАК ЗаменаДисконтныхКартКартыПокупателей
	               |		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаменаДисконтныхКарт КАК ЗаменаДисконтныхКарт
	               |		ПО ЗаменаДисконтныхКартКартыПокупателей.Ссылка = ЗаменаДисконтныхКарт.Ссылка
	               |ГДЕ
	               |	ЗаменаДисконтныхКартКартыПокупателей.Ссылка = &Ссылка
	               |;
	               |
	               |////////////////////////////////////////////////////////////////////////////////
	               |ВЫБРАТЬ
	               |	БонусныеБаллыОстатки.ДисконтнаяКарта,
	               |	БонусныеБаллыОстатки.БонуснаяПрограммаЛояльности,
	               |	БонусныеБаллыОстатки.НачисленоОстаток * -1 КАК Начислено,
	               |	БонусныеБаллыОстатки.КСписаниюОстаток * -1 КАК КСписанию
	               |ИЗ
	               |	РегистрНакопления.БонусныеБаллы.Остатки(
	               |			,
	               |			ДисконтнаяКарта В
	               |				(ВЫБРАТЬ
	               |					Карты.КартаИсточник
	               |				ИЗ
	               |					Карты)) КАК БонусныеБаллыОстатки
	               |		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Карты КАК Карты
	               |		ПО БонусныеБаллыОстатки.ДисконтнаяКарта = Карты.КартаИсточник
	               |
	               |ОБЪЕДИНИТЬ ВСЕ
	               |
	               |ВЫБРАТЬ
	               |	Карты.КартаПриемник,
	               |	БонусныеБаллыОстатки.БонуснаяПрограммаЛояльности,
	               |	БонусныеБаллыОстатки.НачисленоОстаток,
	               |	БонусныеБаллыОстатки.КСписаниюОстаток
	               |ИЗ
	               |	РегистрНакопления.БонусныеБаллы.Остатки(
	               |			,
	               |			ДисконтнаяКарта В
	               |				(ВЫБРАТЬ
	               |					Карты.КартаИсточник
	               |				ИЗ
	               |					Карты)) КАК БонусныеБаллыОстатки
	               |		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Карты КАК Карты
	               |		ПО БонусныеБаллыОстатки.ДисконтнаяКарта = Карты.КартаИсточник
	               |;
	               |
	               |////////////////////////////////////////////////////////////////////////////////
	               |ВЫБРАТЬ
	               |	ПродажиПоДисконтнымКартамОбороты.ДисконтнаяКарта,
	               |	ПродажиПоДисконтнымКартамОбороты.ВладелецДисконтнойКарты,
	               |	-1 * СУММА(ПродажиПоДисконтнымКартамОбороты.СуммаОборот) КАК Сумма,
	               |	-1 * СУММА(ПродажиПоДисконтнымКартамОбороты.КоличествоОборот) КАК Количество
	               |ИЗ
	               |	РегистрНакопления.ПродажиПоДисконтнымКартам.Обороты(
	               |			,
	               |			,
	               |			Период,
	               |			ДисконтнаяКарта В
	               |				(ВЫБРАТЬ
	               |					Карты.КартаИсточник
	               |				ИЗ
	               |					Карты)) КАК ПродажиПоДисконтнымКартамОбороты
	               |		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Карты КАК Карты
	               |		ПО ПродажиПоДисконтнымКартамОбороты.ДисконтнаяКарта = Карты.КартаИсточник
	               |
	               |СГРУППИРОВАТЬ ПО
	               |	ПродажиПоДисконтнымКартамОбороты.ДисконтнаяКарта,
	               |	ПродажиПоДисконтнымКартамОбороты.ВладелецДисконтнойКарты
	               |
	               |ОБЪЕДИНИТЬ ВСЕ
	               |
	               |ВЫБРАТЬ
	               |	Карты.КартаПриемник,
	               |	ПродажиПоДисконтнымКартамОбороты.ВладелецДисконтнойКарты,
	               |	СУММА(ПродажиПоДисконтнымКартамОбороты.СуммаОборот),
	               |	СУММА(ПродажиПоДисконтнымКартамОбороты.КоличествоОборот)
	               |ИЗ
	               |	РегистрНакопления.ПродажиПоДисконтнымКартам.Обороты(
	               |			,
	               |			,
	               |			Период,
	               |			ДисконтнаяКарта В
	               |				(ВЫБРАТЬ
	               |					Карты.КартаИсточник
	               |				ИЗ
	               |					Карты)) КАК ПродажиПоДисконтнымКартамОбороты
	               |		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Карты КАК Карты
	               |		ПО ПродажиПоДисконтнымКартамОбороты.ДисконтнаяКарта = Карты.КартаИсточник
	               |
	               |СГРУППИРОВАТЬ ПО
	               |	ПродажиПоДисконтнымКартамОбороты.ДисконтнаяКарта,
	               |	ПродажиПоДисконтнымКартамОбороты.ВладелецДисконтнойКарты,
	               |	Карты.КартаПриемник
	               |;
	               |
	               |////////////////////////////////////////////////////////////////////////////////
	               |ВЫБРАТЬ
	               |	ЗаменаДисконтныхКартКартыПокупателей.Ссылка КАК Ссылка,
	               |	ЗаменаДисконтныхКарт.Дата КАК Период,
	               |	ЗаменаДисконтныхКартКартыПокупателей.КартаИсточник КАК КартаИсточник,
	               |	ЗаменаДисконтныхКартКартыПокупателей.КартаПриемник КАК КартаПриемник
	               |ИЗ
	               |	Документ.ЗаменаДисконтныхКарт.КартыПокупателей КАК ЗаменаДисконтныхКартКартыПокупателей
	               |		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаменаДисконтныхКарт КАК ЗаменаДисконтныхКарт
	               |		ПО ЗаменаДисконтныхКартКартыПокупателей.Ссылка = ЗаменаДисконтныхКарт.Ссылка
	               |ГДЕ
	               |	ЗаменаДисконтныхКартКартыПокупателей.Ссылка = &Ссылка";
	
	Возврат ТекстЗапроса;
	
КонецФункции

Время выполнения запроса менее секунды.

И также в модуль менеджера в процедуру инициализации

	ТаблицыДляДвижений = СтруктураДополнительныеСвойства.ТаблицыДляДвижений;
	ТаблицыДляДвижений.Вставить("ТаблицаРегистрацияЗаменыКартПокупателей", МассивРезультатов[3].Выгрузить());
	ТаблицыДляДвижений.Вставить("ТаблицаБонусныеБаллы", МассивРезультатов[1].Выгрузить());
	ТаблицыДляДвижений.Вставить("ТаблицаПродажиПоДисконтнымКартам", МассивРезультатов[2].Выгрузить());

Теперь все остатки на одной карте, удобно смотреть отчёты и т.д.

Буду рад, если кому-то поможет.

Розница Дисконтные Карты Замена Бонусы

См. также

Табличная часть в доп. реквизитах и формирование таблиц в шаблоне docx для 1С:ДО 3.0

Адаптация типовых решений Платформа 1С v8.3 1С:Документооборот Россия Платные (руб)

Расширение конфигурации для «1С:Документооборот КОРП», редакция 3.0. позволяет: 1.использовать произвольные табличные части в качестве дополнительных реквизитов к документу; 2 использовать произвольные табличные части в шаблонах в формате docx для автоматического заполнения таблиц.

29400 руб.

29.06.2023    4680    9    5    

18

Расширение для 1С:УНФ. Автоматическое снятие резервов в Заказах покупателей

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

Чтобы не допустить путаницы с обещаниями клиентам и для четкого контроля исполнения заказов мы используем резервирование товаров. Мы доработали УНФ, чтобы она автоматически отменяла старые резервы и не мешала эффективно продавать.

7200 руб.

02.08.2023    3108    4    0    

20

Создать на основании - своя кнопка (БСП). Проблема двух подменю Создать на основании

БСП (Библиотека стандартных подсистем) Адаптация типовых решений Платформа 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

Понадобилось в подменю "Создать на основании" добавить свою команду, которая открывает обработку. В процессе доработок появилась проблема двух подменю "Создать на основании". В статье о том, как решились проблемы.

01.03.2024    1749    dimanich70    8    

14

Доработка отчета "Связанные документы" (структура подчиненности) для вывода объектов из любого расширения

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

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

1 стартмани

27.10.2023    2122    19    avmartynov    14    

44

Печать непроведенных документов для УТ, КА, ERP. Настройка печати по пользователям, документам и печатным формам

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

Расширение для программ 1С:Управление торговлей, 1С:Комплексная автоматизация, 1С:ERP, которое позволяет распечатывать печатные формы для непроведенных документов. Можно настроить, каким пользователям, какие конкретные формы документов разрешено печатать без проведения документа.

2 стартмани

22.08.2023    2275    26    progmaster    8    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. visusby 5 21.10.21 14:28 Сейчас в теме
Срок действия бонусных баллов таким методом не переносится.
Оставьте свое сообщение