Скидки для клиентов
X

Привет дорогой друг

Наш сайт существует и развиваетется за счет рекламы. Пожалуйста, отключите блокировку рекламы AdBlock или подобное, для нашего сайта. Спасибо!
Показано с 1 по 6 из 6
  1. #1
    Гость форума

    Регистрация
    16.12.2016
    Сообщений
    3
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях

    По умолчанию Скидки для клиентов

    Есть справочник где содержатся клиенты. Имеется документ Оказание Услуги, где есть сумма, на которую воспользовался клиент услугами и товарами. Хочу сделать систему скидок, где будут выводиться скидки в зависимости от той суммы, на которую клиент купил товары и воспользовался услугами.
    Код документа ОказаниеУслуги (Модуль Менеджера)
    Код:
    Процедура Печать(ТабДок, Ссылка) Экспорт
        //{{_КОНСТРУКТОР_ПЕЧАТИ(Печать)
        Макет = Документы.ОказаниеУслуги.ПолучитьМакет("Печать");
        Запрос = Новый Запрос;
        Запрос.Текст =
        "ВЫБРАТЬ
        |    ОказаниеУслуги.Дата,
        |    ОказаниеУслуги.Клиент,
        |    ОказаниеУслуги.Мастер,
        |    ОказаниеУслуги.Номер,
        |    ОказаниеУслуги.Склад,
        |    ОказаниеУслуги.ПереченьНоменклатуры.(
        |        НомерСтроки,
        |        Номенклатура,
        |        Количество,
        |        Цена,
        |        Сумма
        |    )
        |ИЗ
        |    Документ.ОказаниеУслуги КАК ОказаниеУслуги
        |ГДЕ
        |    ОказаниеУслуги.Ссылка В (&Ссылка)";
        Запрос.Параметры.Вставить("Ссылка", Ссылка);
        Выборка = Запрос.Выполнить().Выбрать();
    
        ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
        Шапка = Макет.ПолучитьОбласть("Шапка");
        ОбластьПереченьНоменклатурыШапка = Макет.ПолучитьОбласть("ПереченьНоменклатурыШапка");
        ОбластьПереченьНоменклатуры = Макет.ПолучитьОбласть("ПереченьНоменклатуры");
        ОбластьИтог = Макет.ПолучитьОбласть("Всего");
        ТабДок.Очистить();
    
        ВставлятьРазделительСтраниц = Ложь;
        СуммаИтог = 0;
        Пока Выборка.Следующий() Цикл
            Если ВставлятьРазделительСтраниц Тогда
                ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
            КонецЕсли;
    
            ТабДок.Вывести(ОбластьЗаголовок);
    
            Шапка.Параметры.Заполнить(Выборка);
            ТабДок.Вывести(Шапка, Выборка.Уровень());
    
            ТабДок.Вывести(ОбластьПереченьНоменклатурыШапка);
            ВыборкаПереченьНоменклатуры = Выборка.ПереченьНоменклатуры.Выбрать();
            Пока ВыборкаПереченьНоменклатуры.Следующий() Цикл
                ОбластьПереченьНоменклатуры.Параметры.Заполнить(ВыборкаПереченьНоменклатуры);
                ТабДок.Вывести(ОбластьПереченьНоменклатуры, ВыборкаПереченьНоменклатуры.Уровень());
                СуммаИтог = СуммаИтог + ВыборкаПереченьНоменклатуры.Сумма;
                    КонецЦикла;
    
            ВставлятьРазделительСтраниц = Истина;
            ОбластьИтог.Параметры.ВсегоПоДокументу = СуммаИтог;
            ТабДок.Вывести(ОбластьИтог);
        КонецЦикла;
                //}}
    КонецПроцедуры
    В общем я думаю, что надо обойти всю табличную часть данного документа и в зависимости от значения в поле СуммаИтог выводить определённую скидку с использованием условий Если и Иначе.
    Есть вопросы:
    1) Где лучше выводить скидку: в справочнике Клиенты или документе ОказаниеУслуги?
    2) При выводе скидки надо создавать реквизит Скидка?
    3) Процедуру установления скидок прописывать в модуле менеджера документа Оказание Услуги или справочнике Клиенты?
    СуммаИтог выводится после печати!!!

  2. #2
    Гордость форума PRO

    Регистрация
    29.01.2010
    Сообщений
    1212
    Сказал(а) спасибо
    30
    Поблагодарили 261 раз(а) в 245 сообщениях

    По умолчанию Re: Скидки для клиентов

    Цитата Сообщение от Luchfan12 Посмотреть сообщение
    Есть справочник где содержатся клиенты. Имеется документ Оказание Услуги, где есть сумма, на которую воспользовался клиент услугами и товарами. Хочу сделать систему скидок, где будут выводиться скидки в зависимости от той суммы, на которую клиент купил товары и воспользовался услугами.
    Код документа ОказаниеУслуги (Модуль Менеджера)
    Код:
    Процедура Печать(ТабДок, Ссылка) Экспорт
        //{{_КОНСТРУКТОР_ПЕЧАТИ(Печать)
        Макет = Документы.ОказаниеУслуги.ПолучитьМакет("Печать");
        Запрос = Новый Запрос;
        Запрос.Текст =
        "ВЫБРАТЬ
        |    ОказаниеУслуги.Дата,
        |    ОказаниеУслуги.Клиент,
        |    ОказаниеУслуги.Мастер,
        |    ОказаниеУслуги.Номер,
        |    ОказаниеУслуги.Склад,
        |    ОказаниеУслуги.ПереченьНоменклатуры.(
        |        НомерСтроки,
        |        Номенклатура,
        |        Количество,
        |        Цена,
        |        Сумма
        |    )
        |ИЗ
        |    Документ.ОказаниеУслуги КАК ОказаниеУслуги
        |ГДЕ
        |    ОказаниеУслуги.Ссылка В (&Ссылка)";
        Запрос.Параметры.Вставить("Ссылка", Ссылка);
        Выборка = Запрос.Выполнить().Выбрать();
    
        ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
        Шапка = Макет.ПолучитьОбласть("Шапка");
        ОбластьПереченьНоменклатурыШапка = Макет.ПолучитьОбласть("ПереченьНоменклатурыШапка");
        ОбластьПереченьНоменклатуры = Макет.ПолучитьОбласть("ПереченьНоменклатуры");
        ОбластьИтог = Макет.ПолучитьОбласть("Всего");
        ТабДок.Очистить();
    
        ВставлятьРазделительСтраниц = Ложь;
        СуммаИтог = 0;
        Пока Выборка.Следующий() Цикл
            Если ВставлятьРазделительСтраниц Тогда
                ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
            КонецЕсли;
    
            ТабДок.Вывести(ОбластьЗаголовок);
    
            Шапка.Параметры.Заполнить(Выборка);
            ТабДок.Вывести(Шапка, Выборка.Уровень());
    
            ТабДок.Вывести(ОбластьПереченьНоменклатурыШапка);
            ВыборкаПереченьНоменклатуры = Выборка.ПереченьНоменклатуры.Выбрать();
            Пока ВыборкаПереченьНоменклатуры.Следующий() Цикл
                ОбластьПереченьНоменклатуры.Параметры.Заполнить(ВыборкаПереченьНоменклатуры);
                ТабДок.Вывести(ОбластьПереченьНоменклатуры, ВыборкаПереченьНоменклатуры.Уровень());
                СуммаИтог = СуммаИтог + ВыборкаПереченьНоменклатуры.Сумма;
                    КонецЦикла;
    
            ВставлятьРазделительСтраниц = Истина;
            ОбластьИтог.Параметры.ВсегоПоДокументу = СуммаИтог;
            ТабДок.Вывести(ОбластьИтог);
        КонецЦикла;
                //}}
    КонецПроцедуры
    В общем я думаю, что надо обойти всю табличную часть данного документа и в зависимости от значения в поле СуммаИтог выводить определённую скидку с использованием условий Если и Иначе.
    Есть вопросы:
    1) Где лучше выводить скидку: в справочнике Клиенты или документе ОказаниеУслуги?
    2) При выводе скидки надо создавать реквизит Скидка?
    3) Процедуру установления скидок прописывать в модуле менеджера документа Оказание Услуги или справочнике Клиенты?
    СуммаИтог выводится после печати!!!
    Плохой вариант...

    Типовое решение 1С для таких случаях использовать регистр накопления (документы двигают туда-обратно регистр, а механизм скидок использует значение регистр "на дату")

  3. #3
    Гость форума

    Регистрация
    16.12.2016
    Сообщений
    3
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях

    По умолчанию Re: Скидки для клиентов

    Цитата Сообщение от avm3110 Посмотреть сообщение
    Плохой вариант...

    Типовое решение 1С для таких случаях использовать регистр накопления (документы двигают туда-обратно регистр, а механизм скидок использует значение регистр "на дату")
    У меня есть регистр накопления Остатки Материалов. Каким образом использовать механизм скидок? И что нужно прописать в данном регистре накопления?

  4. #4
    Гордость форума PRO

    Регистрация
    29.01.2010
    Сообщений
    1212
    Сказал(а) спасибо
    30
    Поблагодарили 261 раз(а) в 245 сообщениях

    По умолчанию Re: Скидки для клиентов

    Цитата Сообщение от Luchfan12 Посмотреть сообщение
    У меня есть регистр накопления Остатки Материалов.
    Э-э-э.. Ну вообще-то "Остатки материалов" и "Взаиморасчеты с контрагентами" это не одно и тоже :mad:

    Судя по изложенному в топике алгоритму Скидки зависят исключительно от объема заказов контрагента (причем в суммовом, а не в количественном измерении). Следовательно регистр оборотов "Остатки материалов" нам явно не подходят :blush:

  5. #5
    Гость форума

    Регистрация
    16.12.2016
    Сообщений
    3
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях

    По умолчанию Re: Скидки для клиентов

    Цитата Сообщение от avm3110 Посмотреть сообщение
    Э-э-э.. Ну вообще-то "Остатки материалов" и "Взаиморасчеты с контрагентами" это не одно и тоже :mad:

    Судя по изложенному в топике алгоритму Скидки зависят исключительно от объема заказов контрагента (причем в суммовом, а не в количественном измерении). Следовательно регистр оборотов "Остатки материалов" нам явно не подходят :blush:
    А можно сделать систему скидок через регистр сведений "Цены", который имеется у меня в конфигурации? Если да, то как? В данном регистре сведений есть цены на товары и услуги, которые используются в документе Оказание услуги, когда в него добавляют товары и услуги.

  6. #6
    Гордость форума PRO

    Регистрация
    29.01.2010
    Сообщений
    1212
    Сказал(а) спасибо
    30
    Поблагодарили 261 раз(а) в 245 сообщениях

    По умолчанию Re: Скидки для клиентов

    Цитата Сообщение от Luchfan12 Посмотреть сообщение
    А можно сделать систему скидок через регистр сведений "Цены", который имеется у меня в конфигурации? Если да, то как? В данном регистре сведений есть цены на товары и услуги, которые используются в документе Оказание услуги, когда в него добавляют товары и услуги.
    А смысл меня уговаривать? :blush:

    У вас в топике написано "есть сумма, на которую воспользовался клиент услугами и товарами"
    Ну а какая может быть связь между вашим прайсом (регистром сведений "Цена" - что ботинки стоят 10 тыр) и тем, что клиент Рога и Копыта закупил на лям этих ботинок и ему скидон 20% за опт, а Вася Пупкин купил 1 пару и ему скидон 5 руб.? :confused:

Похожие темы

  1. Скидки на День Рожденье ут 11
    от Т@ня в разделе 1С - Предприятие 8.0, 8.1, 8.2, 8.3
    Ответов: 3
    Последнее сообщение: 11.11.2014, 09:07

Метки этой темы

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •