Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Реализация Функции "Дать Акционную Скидку"
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
Flexy
Привет.Конфа ТИС, доработанная.
Стоит задача реализовать Функцию "Дать Акционную скидку".
Контрагент имеет реквизит ПроцентСкидки, который рассчитывается на основании суммы его покупок.
Из того, что мне пришло в голову:
Вариант № 1
1.Добавить Контру Реквизит (тип булево) "Участник Акции"
2.Добавить Константу "ПроцентАкционнойСкидки".
3.При записи элемента проверять является ли он Участником акции, если да, то (ПроцентСкидки + Константа.ПроцентАкционнойСкидки), если нет, то записываем
просто ПроцентСкидки.
Существует небольшой нюанс: При записи элемента, срабатывает процедура Обновления/Записи данных в базу POS на PostgreSQL.
Т.е. Придется дописывать обработку, которая по окончанию акции будет перебирать всех контров у кого ДатьАкционнуюСкидку = Истина, и перезаписывать их в базу + в POS.Оптимально ли?

Вариант № 2
1.Городить Справочник Акции с Реквизитами: Акция, ДатачНачала, ДатаКонца, ПроцентАкционнойСкидки.
2. Тоже, что и в Варианте № 1.
3.Добавить код в процедуру ПриНачалеРаботыСыстемы, который будет отслеживать ДатуОкончанияАкции и перебирать контров с целью снять флаг "УчастинкАкции" (по ходу опять не оптимально).

Вариант № 3
1.Добавить отдельное поле ("УчастникАкции") в таблицу БД POS терминала
2.И плясать от него.
Но тут тоже нюанс.Придется так же в ПОС допиливать функцию суммирования СкидкиКлиента со СкидкойПоАкции.А я с таким не сталкивался.
Возможно это сделать прямым запросом из 1С к базе ПОС?

Знаю, много букав 32541510.gif
Ищу оптимальный вариант.
Acid
вариант 2 п.1
п.2 имхо лишний
а в п.3 зачем снимать? Просто проверять существует ли сегодня какая-то акция. Если да, то предоставить. А галки уже есть.
Flexy
Цитата(Acid @ 25.05.12, 12:16) необходимо зарегистрироваться для просмотра ссылки
Если да, то предоставить.

Вот меня собственно этот момент и интересует.
Предоставить - это значит внести в Базу POS терминала?
Т.е. была акция неделю назад.Закончилась.Но в базе ПОСа у клиента все равно будет висеть скидка от прошлой акции.Я так понимаю...
alex1c
Я как-то своим клиентам такое сделал: в конце месяца отв. человек запускает обработку которая вычисляет сумму за опр. период и исходя из нее проставляет клиентам скидки. Уже года два-три так работают и я туда не лезу...
Flexy
У Клиента и так есть Процент скидки.
А мне надо добавить еще процент АкционнойСкидки.
И не исключаю тот вариант, что у клиента допустим нет ПроцентаСкидки, но он участвует в акции.И если я буду Плюсовать АкционнуюСкидку к проценту скидки клиента (котрый равен 0) то в ПОС попадет инфа, что у Клиента все же есть Скидка.По ходу надо городить отдельное поле в базе пос.Другие варианты пока не приходят в голову.
Acid
А структура таблицы ПОС фиксированная или ее можно менять? Если не жестко, то сделать 2 поля: "Постоянная скидка (%)" и "Акционная скидка" (Булево)
Просто например в 1-ой строке вбить % скидки на сегодняшний день единожды
Дальше, если в таблице в поле скидка стоит Истина, получать значение скидки из 1-ой строки.
2 - я бы клиенту давал максимальную скидку из 2х возможных, а то неинтересно получится.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.