7.7 Убрать (отключить) скидку на товары по акции

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем ipsmatrix, 28 авг 2012.

  1. TopicStarter Overlay
    ipsmatrix
    Offline

    ipsmatrix

    Регистрация:
    28 авг 2012
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    1с 7.7 Торговля+склад 9.2

    Подскажите пожалуйста срочно нужно (наверное было) тогда ссылку.
    В общем надо сделать чтобы на товары которые по акции не действовала скидка?
    Может как-нибудь можно поставить галку "товар по акции" и прописать чтоб на них еще скидка не считалась?
    Спасибо
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Только дописывать конфу. Изменения минимальны: Признак что не должно быть скидки и 1 условие в процедуре ГМ
  3. TopicStarter Overlay
    ipsmatrix
    Offline

    ipsmatrix

    Регистрация:
    28 авг 2012
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Извиняюсь за чужую ссылку просто там обсуждение поживее было _www.forum.mista.ru/topic.php?id=626837

    Если кто еще что может добавить к тому что там буду благодарен!
  4. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Там всегда уж очень бурное обсуждение....

    Добавить можно следующее:
    1. Если это тестовое задание, и просто нужно кому-то на пальцах рассказать, то хватит и этого
    2. Если это нужно поставить на реальную базу, и будет использоваться где-то на розничных точках, то тут быстро не получится. Нужно брать базу и делать детальный анализ, на который может уйти не одна неделя.

    Если не делать анализ:
    1) * 50% - просто не заработает (где-то выскочит ошибка компиляции в реальном времени)
    2) * 20% - ошибки не будет, но не будет работать добавленный функционал
    3) * 20% - ошибки не будет, и не будет работать работающий до этого функционал
    4) * 10% - клиент сразу не заметит и примет работу, но по истечению некоторого времени (выполнят операцию, которую выполняют редко, но регулярно) выскочит пункт 1-3 (примерно с той же вероятностью)
  5. TopicStarter Overlay
    ipsmatrix
    Offline

    ipsmatrix

    Регистрация:
    28 авг 2012
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Спасибо!

    Эм не догдал что за анализ такой долгий чтобы просто чуть изменить конф?
    Да это все надо сделать для магазина)
  6. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Вам нужно внести изменения в процедуру глПересчитатьСкидки + добавить реквизит в справочник номенклатуры (флаг)
    Код:
    Процедура глПересчитатьСкидки(Конт) Экспорт
    
    Перем Скидка;
    
    Скидка = Конт.Скидка;
    ВидДок = Конт.Вид();
    
    Конт.ВыбратьСтроки();
    Пока Конт.ПолучитьСтроку()=1 Цикл   
    //начало отличия от типовой
    Если Конт.Номенклатура.НеУчитыватьСкидку=1 Тогда //вот тут мы обращаемся к новому реквизиту
    продолжить;
    КонецЕсли;
    //конец отличия от типовой                          
    Цена  = Конт.Цена;
    Количество = Конт.Количество;
    
    КоэффСкидки = 0;
    
    КоэффСкидки=Конт.Скидка.Процент/100;
    
    Конт.Сумма = Цена*Количество - Цена*Количество*КоэффСкидки;
    
    Если глЕстьРеквизитШапки("УчитыватьНП", ВидДок) =1 Тогда
    глРасчетНалога(Конт,"НП");
    КонецЕсли;
    Если глЕстьРеквизитШапки("УчитыватьНДС", ВидДок) =1 Тогда
    глРасчетНалога(Конт,"НДС");
    КонецЕсли;
    КонецЦикла; 
    
    КонецПроцедуры // глПересчитатьСкидки()
    
  7. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Это исходя из собственного (уже не маленького) опыта.
    [off]
    Теорию я уже изложил выше. Теперь попробую на примере.
    Постом выше Угодник предложил реализацию. Не думаю, что он видел эту базу.... примем, что данное изменение полностью удовлетворяет условию задачи, но на типовой конфигурации.
    Торговля, по мимо того, что имеет версию 9.2, еще имеет номер релиза, разумеется в разных релизах имеются какие-то изменения.
    Теперь, допустим, что конфигурация еще менялась до этого специально под данный магазин (условно добавлены бонусы).
    В данном алгоритме нет и намека на них (как собственно ни на одну возможную доработку в базе).
    Далее все просто - берем данное изменение, вставляем в рабочую базу. Запускаем - она работает. Провели 1-2 документа, вроде все нормально..... магазин заработал.
    В конце месяца собираются отчеты и т.д. и выясняется, что с момента доработки нет ни одного бонуса.... Думаю, за это спасибо не скажут.
    [/off]
  8. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Вышеприведенный алгоритм разумеется без доп. проверок можно применять только на ТИПОВОЙ конфигурации
  9. TopicStarter Overlay
    ipsmatrix
    Offline

    ipsmatrix

    Регистрация:
    28 авг 2012
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Спасибо! версия 7.70.952. Код если правильно заменил и реквизит с именем создал с типом число длина 1. Скидка считается на все товары(с галкой тоже) (когда добавляешь для покупки) а если убрать скидку, то на товарах с галкой все равно остается, а на других убирается.

    Пошел читать литературу :vis:
  10. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    ММммм... Там еще один нюанс я не учел. Смотрите процедуру глПересчетТаблЧасти
    Вот код расчета с учетом скидки
    Код:
    Конт.Сумма = Конт.Цена*Конт.Количество-ПроцентСкидки/100*Конт.Цена*Конт.Количество;
    (таких фрагментов несколько)

    Сделайте по аналогии из предыдущего примера
  11. TopicStarter Overlay
    ipsmatrix
    Offline

    ipsmatrix

    Регистрация:
    28 авг 2012
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Это во всей процедуре заменить это Конт.Сумма = Конт.Цена*Конт.Количество-ПроцентСкидки/100*Конт.Цена*Конт.Количество; на то что ниже?

    Если Конт.Номенклатура.НеУчитыватьСкидку=1 Тогда
    Конт.Сумма = Конт.Цена*Конт.Количество;
    Иначе
    Конт.Сумма = Конт.Цена*Конт.Количество-ПроцентСкидки/100*Конт.Цена*Конт.Количество;

    КонецЕсли;
  12. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Да. В этом месте происходит пересчет табличной части документа.

    Просьба пользоваться тегами. Уважайте коллег по форуму
  13. TopicStarter Overlay
    ipsmatrix
    Offline

    ipsmatrix

    Регистрация:
    28 авг 2012
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Спасибо, вроде все верно. Потестирую еще прежде чем магазинную базу менять )
  14. TopicStarter Overlay
    ipsmatrix
    Offline

    ipsmatrix

    Регистрация:
    28 авг 2012
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    А
    Код:
    глПересчитатьСтрокиДокумента()
    трогать не надо?
  15. TopicStarter Overlay
    ipsmatrix
    Offline

    ipsmatrix

    Регистрация:
    28 авг 2012
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    В
    Код:
    глПересчитатьСтрокиДокумента()
    заменить
    Код:
    Конт.Сумма = Конт.Цена*Конт.Количество-ПроцентСкидки/100*Конт.Цена*Конт.Количество;
    на


    Код:
    Если (ЕстьСкидка=1) и (Конт.Номенклатура.НеУчитыватьСкидку=0) Тогда
    ПроцентСкидки=Конт.Скидка.Процент;
    Иначе								
    ПроцентСкидки=0;
    КонецЕсли;
    Надо ли?
  16. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Раз есть расчет скидки - надо

Поделиться этой страницей