Отпускные и розничные цены могут быть изменены скидкой (наценкой). При корректировке
отпускных цен скидкой (наценкой), розничные цены могут и не корректироваться, если в модуле
"Реализация" установлен параметр – (Корректировать розничную цену при корр.оптовой процентом – Нет).
Скидки (наценки) могут задаваться по справочникам: «Виды изделий», «Торговые предприятия», «Заказчики(покупатели)», или по «единому справочникам скидок» – для отпускных цен и по «единому справочнику наценок» – для розничных цен. Для того чтобы включить возможность работы по «единому справочнику скидок» надо установить значение «Да» в параметре модуля "Реализация" – (Расчет скидок по объединенному справочнику скидок).
Механизм организации скидок по справочникам Виды изделий, Торговые предприятия, Заказчики (покупатели) одинаковый. Действует только одна скидка (только по одному справочнику из трех), т.е. скидки одновременно заданные по этим справочникам никак не складываются между собой. Приоритет обработки справочников (скидок): 1 – По торговым предприятиям, 2 – По заказчикам (покупателям), 3 – По видам изделий. Скидка, определенная по одному из справочников, отменяет обработку остальных.
Для просмотра и задания скидок нужно открыть соответствующий справочник (Виды изделий, Торговые предприятия, Заказчики (покупатели)) и нажать CTRL+F5 «Скидки». Добавление скидки (F6). Нужно обязательно указать дату начала действия скидки, необязательно комментарий и далее задается сама скидка несколькими способами (см. ниже). Если нужно отменить (или изменить) скидку, то ОБЯЗАТЕЛЬНО добавляем новую скидку на новую дату и никогда не трогаем уже действующий вариант. Соответственно если мы просто отменяем действие скидки, то указываем в качестве значения 0.
Далее мы можем воспользоваться одним из двух способов задания скидок:
1. Скидка рассчитывается специальным блоком расчета (по правилам встроенного языка программирования).
2. Указывается непосредственно константа – (фиксированная сумма или процент скидки), можно указать (10 различных вариантов), при этом блок расчета скидки должен быть пустой – это и определяет переключение между 1м и 2-м способом.
Скидка, заданная блоком расчета:
Блок представляет собой мини программу расчета скидки. В результате расчетов программа
должна вернуть число, соответствующее скидке. Программа принимает в качестве параметров
заранее определенные и установленные переменные с именами Par1-Par10:
par1 – Код заказчика (по R01)
par2 – Код продукции (по R11/R08)
par3 – Код магазина (по R20)
par4 – Вес продукции
par5 – Код вида перевозки (по R27). (Чаще всего 1– Централизация, 2-самовывоз)
par6 – Справочник изделий (R11 или R08)
par7 – Дата расчета цен
par8 – Скидка по умолчанию (если проставлен в накл % вручную)
par9 – Симв.переменная = '%' – если скидка в процентах от оптовой цены,
или 'руб' – если в рублях.
par10 – RecNo() записи продукции
Эти переменные можно использовать в расчетах, а Par9 даже можно изменять.
Результатом расчетов программы (собственно скидкой) будет число, рассчитанное в выражении в последней строке текста программы, если нет переменной Result, или значение, присвоенное переменной Result в любой строке программы.
Пример использования скидки, заданной блоком расчета скидки (подробно по шагам):
1.Открываем справочник заказчиков (R01) в модуле "Реализация"
2.Открываем дочерний справочник скидок (CTRL+F5)
3.Добавляем новую скидку – (F6)
4.Заполняем дату начала действия – 01.01.2006 (Не перечисленные реквизиты справочника скидок остаются незаполненными)
5.Заполняем блок расчета процента скидки/наценки (ниже идет текст программы):
result:=0
if Ascan({1,2,3},par2)<>0 and par5=GetPrm('SALE_CENT','SALE')
result:=-0.5
par9:='руб'
endif
Пояснения: Эта программа рассчитывает скидку равную 50 копеек для изделий с кодами (по R11) 1 или 2 или 3 и если вид перевозки – Централизация, иначе скидки нет (=0).
Если не писать строку: par9:='руб', то скидка по умолчанию считается в процентах (то же самое, если написать par9:='%')
Если такой способ покажется сложным, то смотрите ниже 2-й вариант расчета скидки.
Кроме блока расчета скидки, есть еще блок разрешения скидки. Все расчеты и параметры аналогичны блоку расчета скидки, только результатом должно быть логическое значение (.t./.f.). Если значение = .f. то расчета скидок не производится (скидка = 0), исключения см.ниже. Если блок разрешения скидки пустой, то скидка РАЗРЕШЕНА (!)
Кроме блока расчета, скидка может быть задана константой. Одновременно могут быть заданы до 10 вариантов скидок, действующие, например, для разных кодов изделий, или для разных видов изделий. Для задания скидок по 10 вариантам имеются соответствующие параметры, пронумерованные от 1 до 10. Может быть установлено любое количество вариантов скидок от 1 до 10, но если их меньше чем 10, то нельзя разделять заполненные и незаполненные варианты. Для ускорения расчетов обработка идет от 1 варианта до последнего, пока не найден пустой, поэтому следующий за пустым вариант не будет обработан.
При установке варианта скидки нужно заполнить перечень видов изделий или кодов изделий (что-нибудь одно), если скидка для всех изделий, то в первой позиции для выбора кодов нужно проставить * (или по видам изделий или по кодам – все равно). Далее заполняется размер скидки (число с минусом – скидка, с плюсом – наценка). Далее тип скидки "суммой" или "процентом". Один вариант заполнен. Также заполняются все необходимые варианты (но не более 10 вариантов).
Для этого способа расчета скидок также действует блок разрешения скидок. Если блок разрешения пустой – скидки разрешены, если возвращает .f. – все варианты текущей хронологии – запрещены. Новые возможности блока разрешения скидок именно для этого варианта описаны ниже.
-----------------------
(Дополнительно – только для скидок по справочникам R01,R20 по CTRL+F5).
Имеется 10 вариантов скидок на каждую дату хронологии. Для каждого варианта можно задавать перечень кодов изделий или кодов видов изделий, на которые вариант скидки действует, НО есть возможность для каждого варианта задать дополнительное условие – через блок разрешения (условие) скидки. Раньше блок разрешал или запрещал все варианты текущей хронологии одновременно, теперь можно запретить как все варианты, так и каждый по отдельности, что расширяет возможности.
Синтаксис блока разрешения скидок остается стандартным для внутреннего языка. В блоке можно использовать метки: <Discount1> ... <Discount10> (регистр букв не важен, порядок меток не важен, угловые скобки обязательны, пробелов нет, каждая метка на отдельной строке).
Все что написано до первой метки – относится ко всем вариантам, и если результирующее выражение возвращает значение .f. – все скидки не действуют. Если ничего не написано, или возвращает значение .t. – то все варианты скидок действуют (если не запрещены по отдельности). Чтобы запретить отдельный вариант скидки, нужно написать блок с меткой соотв. варианта.
Блок разрешения скидки. Пример1:
<Discount6>
result:=.f.
Запрещает безусловно скидку по 6 варианту, при этом остальные варианты скидок могут действовать, конечно если они заданы и соответствуют коду или виду отгружаемого изделия.
-----------------------------------------------
Блок разрешения скидки. Пример2:
<Discount1>
result:=par5=2 // При самовывозе только варианты 1 или 2
<Discount2>
result:=par5=2
<Discount3>
result:=par5=1 // При централизации Вар.3,4
<Discount4>
result:=par5=1
------------------------------------------------
Конечно, сам вариант скидки будет рассматриваться только при соответствии кода изделия в накладной – перечисленным кодам в варианте скидки (по кодам или по видам изделий).
Дополнительно повторю смысл предопределенных переменных (par1...):
par1 – Код заказчика (по R01)
par2 – Код продукции (по R11/R08)
par3 – Код магазина (по R20)
par4 – Вес продукции
par5 – Код вида перевозки (по R27). (Чаще всего 1– Централиз., 2-самовывоз)
par6 – Справочник изделий (R11 или R08)
par7 – Дата расчета цен
par8 – Скидка по умолчанию (если проставлен в накл % вручную)
par9 – Симв.переменная = '%' – если скидка в процентах от оптовой цены, или 'руб' – если в рублях.
par10 – RecNo() записи продукции
-----------------------
Для скидок, заданных константой (по справочнику заказчиков или по справочнику магазинов) существует еще одна разновидность установки и использования – "по объемам реализации" по результатам отгрузки за прошлые периоды. В этом случае скидки можно назначать по заказчикам или по магазинам в зависимости от объема полученной ими продукции (отдельно по каждому получателю) за произвольный период времени (часто это прошлый месяц). Рассмотрим по шагам использование этого варианта задания скидки:
1) Нужно задать один или несколько вариантов скидок по объемам. Для этого открываем Реализация/Скидки/Прочие справочники/Варианты скидок. Добавляем новый вариант, прописываем "Наименование" (если нужно), реквизит объема реализации, например "Вес", сумма или процент – выбираем процент, перечень видов или перечень кодов изделий (выбираем что-нибудь одно, можно из справочника по F9 – там отмечаем ALT+F1, далее ENTER). Не перечисленные реквизиты нужно оставить пустыми. Далее по F7 переходим к таблице скидок. Тоже добавляем нужное число строк – каждая строка содержит значение объема реализации (смысл этого объема задан выше, в нашем примере это вес продукции) и значение скидки (в нашем примере это процент). Как увидим в дальнейшем, при обработке реальных данных при превышении объема отгрузки указанного в каждой строке значения объема, назначается указанный в этой же строке процент скидки.
2) Открываем Реализация/Скидки/Прочие справочники/Формирование скидок по объему/По заказчикам (по торговым предприятиям – аналогично). Открывается "мастер" формирования скидки. Сразу предоставляется возможность выбора заказчиков из общего справочника (позже их состав можно изменить). В открывшемся окне видим выбранных выше заказчиков, далее выбираем начальную и конечную дату накопления сведений об объеме отгрузки продукции, далее выбираем вариант скидки (то, что мы сформировали в п.1) ), далее устанавливаем дату начала действия скидки, далее "Начать" – F7. После этого осуществляется анализ реализации по выбранным заказчикам за выбранный период и сравнение с таблицей объемов из выбранного варианта. В результате, если есть заказчики с объемами поставки продукции превышающими хотя бы какие-нибудь установленные пороги, то получаем таблицу с перечнем таких заказчиков, назначенной им скидки (в нашем случае – процент) и прежней его скидки (для сравнения). Решение о предоставлении скидки программа НЕ принимает "сама".
Если скидка действительно нужна и рассчитана правильно, то нужно выделить строки с нужными скидками (ALT+F1) и нажать ENTER. После подтверждения, скидки по всем выделенным заказчикам добавятся в соответствующий дочерний справочник скидок, действовать они будут, начиная с даты начала действия скидки указанной выше. Если Вы считаете, что скидка рассчитана неверно, то выделять эти строки не нужно – по невыделенным строкам скидки не формируются.
Убедиться в наличии скидки можно, если зайти в справочник заказчиков, найти нужного заказчика, открыть скидки (CTRL+F5) и найти новую сформированную скидку по дате начала действия.
Установленная скидка автоматически НЕ изменяется до тех пор, пока повторно не будут выполнены все действия из п.2).
Скидки по единому справочнику скидок (в том числе за ездку)
Основные преимущества данного метода
a) Для всех видов скидок используется всего один справочник R327
b) Поддерживается хронология скидок
c) Возможность расчета скидок за ездку и скидок по каждой позиции изделия не только
в рамках одной экспедиции, но и в рамках одной накладной.
d) Возможность задавать скидки не только процентом к цене, но и непосредственно суммой
Для того чтобы переключится на единый механизм расчета скидок необходимо параметр
"Расчет скидок по объединенному справочнику скидок" в значение "ДА"
(Сервис – Настройки – Параметры задачи – Реализация; вкладка "Для расчета цен")
Итак, остановимся подробнее на описании работы со скидками с использованием данного механизма.
При всем многообразии скидок их можно разделить на две основные категории:
I) Скидки по каждой позиции в накладной.
II) Скидки за ездку (накладную).
Скидки по каждой позиции это основные виды скидок, которые являют собой простое уменьшение цены изделия на некоторую сумму или процент в зависимости от одного или нескольких критериев – например: от вида изделия, от заказчика и.т.п.
Пример скидки по каждой позиции:
Заказчику с кодом № 123 установлена скидка 5 % на виды изделий с кодами 1 (Хлебобулочные) и 2 (Кондитерские)
Скидки за ездку являются более сложным вариантом скидки и характеризуются кроме указанных выше критериев еще и объемом реализации по накладной. Критерием объема реализации могут являться: вес, лотки, сумма, штуки по данной накладной.
Пример скидки за ездку:
Заказчику с кодом № 25 установлена скидка 10 % на вид изделия 3 (Бараночные), при условии что он
единовременно возьмет 100 и более килограммов данного вида изделия.
Скидки могут быть в составе цены или вне нее. Это влияет на то, будет ли отображаться скидка
в различных документах (накладных, счетах-фактурах и.т.п.). Если скидка в составе цены, то в документах будет сразу отображаться цена и сумма уже с учетом скидки. В противном случае цена и сумма будут без скидки, а скидка будет посчитана отдельно и напечатана отдельной строкой.
Переключение между этими варианты осуществляется с помощью параметра "Считать ли скидку в цене" и
задается в каждой экспедиции отдельно. (Сервис – Настройки – Параметры задачи – Экспедиция – вкладка "Расчет скидки")
Скидки по каждой позиции считаются в момент ввода кода изделия в накладной.
Скидки за ездку считаются только после того, как вся накладная будет уже введена. Это обусловлено тем,
что в момент ввода отдельной позиции неизвестен общий объем продукции по накладной. Очевидно, что расчет скидок за ездку потребует некоторого времени непосредственно после ввода всей накладной.
В связи с этим для увеличения скорости работы, при отсутствии в данной экспедиции скидок за ездку рекомендуется отключить механизм их расчета. Включить или отключить механизм расчета скидок за ездку можно с помощью параметра "Считать ли скидку за ездку".
(Сервис – Настройки – Параметры задачи – Экспедиция – вкладка "Расчет скидки")
Оба варианта скидок могут присутствовать в одной накладной, однако по одной позиции могут быть только один вариант скидки.
Методика заполнения «единого справочника скидок» (R327) достаточно наглядна. Хотелось бы только остановиться
на некоторых, требующих внимания моментах:
1) Нет необходимости добавлять несколько записей в справочнике по одному критерию.
Т.е. в случае если скидка действует на несколько заказчиков, достаточно пометить по ALT+F1 несколько записей в связанном справочнике, или просто указать их через запятую непосредственно в поле справочника.
То же самое правило действует в отношении других критериев (несколько групп заказчиков, несколько видов изделий, несколько категорий маркетинга, несколько изделий)
2) Настоятельно рекомендуется создавать несколько записей в справочнике для различных критериев. Это не относится к заказчику и группе заказчиков.
Т.е. если есть необходимость дать скидку на все "хлебобулочные изделия" (критерий – виды изделий), и в то же время на "хлеб Дарницкий" (критерий – изделия), следует создать две записи в справочнике даже в случае одинакового значения скидки – 10%
3) Записи справочника для скидок за ездку отличаются от скидок по каждой позиции полем "Реквизит объема реализации. В случае расчета по каждой позиции, в данном поле указывается "Не учитывать"
4) Значением скидки за ездку может быть только процент.
5) Если есть необходимость задать всю накладную в зависимости от ее объема, достаточно просто указать
заказчика (при необходимости), оставив при этом пустыми поля остальных критериев, и заполнить поля, относящиеся к объему (реквизит объема и объем)
6) Следует понимать, что если какое либо изделие попадет по критериям под две скидки из справочника, то значения скидок будут просуммированы
7) Чтобы отменить действие скидки с какого-либо числа, достаточно завести в справочник запись с датой отмены и пустым значением скидки при указании аналогичных критериев.
8) Если есть необходимость, можно в поле "значение" ввести блок кода, возвращающий значение.
Работа со «справочником торговых наценок» (R398) – аналогична работе с «единым справочником скидок», с тем лишь уточнением, что корректируем мы розничную цену, а не отпускную.