Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
24 июн 2021, 22:28

Сделать скидку клиенту в зависимости от суммы

Автор Luchfan12, 23 дек 2016, 08:49

0 Пользователей и 1 гость просматривают эту тему.

Luchfan12

Есть документ "Оказание услуги". Цена за товар или услугу берётся из Регистра Сведений "Цены". Как сделать скидку клиенту в зависимости от суммы заказа? Если создать поле "Скидка", то какой обработчик события лучше использовать?
Предложите наиболее оптимальный вариант решения задачи.

Andrey_Batuev

Цитата: Luchfan12 от 23 дек 2016, 08:49
Есть документ "Оказание услуги". Цена за товар или услугу берётся из Регистра Сведений "Цены". Как сделать скидку клиенту в зависимости от суммы заказа? Если создать поле "Скидка", то какой обработчик события лучше использовать?
Предложите наиболее оптимальный вариант решения задачи.
Как вариант сделать регистр сведений для скидок с порогами сумм. Измерение Сумма, Ресурс - процент скидки. Обработчик повесить на изменение в табл.части документа, который по сумме документа рассчитывает процент скидки для документа в целом. Сумму скидки просто в шапку документа, если не надо для каждой строки ее хранить.

Luchfan12

Цитата: Andrey_Batuev от 23 дек 2016, 10:56
Цитата: Luchfan12 от 23 дек 2016, 08:49
Есть документ "Оказание услуги". Цена за товар или услугу берётся из Регистра Сведений "Цены". Как сделать скидку клиенту в зависимости от суммы заказа? Если создать поле "Скидка", то какой обработчик события лучше использовать?
Предложите наиболее оптимальный вариант решения задачи.
Как вариант сделать регистр сведений для скидок с порогами сумм. Измерение Сумма, Ресурс - процент скидки. Обработчик повесить на изменение в табл.части документа, который по сумме документа рассчитывает процент скидки для документа в целом. Сумму скидки просто в шапку документа, если не надо для каждой строки ее хранить.
С регистром сведений разобрался. Мне на сумму вещать обработчик ПриИзменении или лучше создать отдельное поле, где будет рассчитана скидка? Сумму скидки нужно хранить просто в документе.

Andrey_Batuev

Цитата: Luchfan12 от 23 дек 2016, 11:47Мне на сумму вещать обработчик ПриИзменении или лучше создать отдельное поле, где будет рассчитана скидка?

Сумма документа меняется при:
1) изменении цены
2) изменении количества
3) изменения суммы.
По идее на все эти колонки вешать обработчик. Можно вообще на табл часть при изменении сделать.

alex0402

Цитата: Luchfan12 от 23 дек 2016, 11:47лучше создать отдельное поле, где будет рассчитана скидка?

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

Luchfan12

Цитата: alex0402 от 23 дек 2016, 12:01
Цитата: Luchfan12 от 23 дек 2016, 11:47лучше создать отдельное поле, где будет рассчитана скидка?

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

&НаКлиенте
Процедура ПереченьНоменклатурыКоличествоПриИзменении(Элемент)
// Вставить содержимое обработчика.
СтрокаТабличнойЧасти = Элементы.ПереченьНоменклатуры.ТекущиеДанные;
РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);
КонецПроцедуры

&НаКлиенте
Процедура ПереченьНоменклатурыЦенаПриИзменении(Элемент)
// Вставить содержимое обработчика.
СтрокаТабличнойЧасти = Элементы.ПереченьНоменклатуры.ТекущиеДанные;
РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);
КонецПроцедуры

&НаКлиенте
Процедура ПереченьНоменклатурыНоменклатураПриИзменении(Элемент)
// Вставить содержимое обработчика.

СтрокаТабличнойЧасти = Элементы.ПереченьНоменклатуры.ТекущиеДанные;
СтрокаТабличнойЧасти.Цена = РаботаСоСправочниками.РозничнаяЦена(Объект.Дата,СтрокаТабличнойЧасти.Номенклатура);
РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);
    КонецПроцедуры

Вот код, где меняется сумма в зависимости от номенклатуры, количества и цены. Вопрос: Если на сумму повесить обработчик ПриИзменении, то как из регистры сведений "Скидки" вывести скидку в поле табличной части документа?

Andrey_Batuev

Цитата: Luchfan12 от 23 дек 2016, 12:13Вопрос: Если на сумму повесить обработчик ПриИзменении, то как из регистры сведений "Скидки" вывести скидку в поле табличной части документа?

Запросом к регистру сведений, сумма же документа известна. Ничего сложного зная сумму получить по регистру процент.

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск