Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Нужен совет по организации скидок

Нужен совет по организации скидок
Я
   Быдло замкадное
 
20.02.20 - 15:46
Привет.
Есть некая база, в ней скидки заведены в регистр сведений с измерениями папка номенклатуры, контрагент.

В документах ищется самая близкая папка по иерархии со скидкой и подставляется в документ. (Смотрим есть ли скидка на родителя, потом на родителя.родителя, и так пока не найдем)

Вроде бы работает.

Появилась задача вывести отчет прайс лист с этими скидками для 1 клиента, сделал отчет который использует этот алгоритм из общего модуля.
Номенклатуры 20 тысяч штук.
Но 20 тысяч раз вызывать общий модуль очень медленно.

Подумал сделать вспомогательный регистр сведений в котором хранить готовую скидку.
Но 20 тысяч номенклатуры * 7 тысяч клиентов это 140 млн записей. Даже регламентное задание в ночь умрет...

Как сделать то?!
 
 
   Быдло замкадное
 
1 - 20.02.20 - 15:47
пока писал подумал, а может в запросе сделать много запросов родитель.родитель.родитель и т.д. раз 10)) и брать самую первую скидку..
   shuhard
 
2 - 20.02.20 - 15:47
(0) использовать группы скидок и группы клиентов
   Быдло замкадное
 
3 - 20.02.20 - 15:47
да, так и сделаю... оказывается надо было просто выговориться и решение пришло)
   Быдло замкадное
 
4 - 20.02.20 - 15:50
Максимум 7 родителей, в запросе получу для всех и готово!
   Сияющий в темноте
 
5 - 20.02.20 - 15:52
папок не так много.
расчитать скидки для папок,и если у товара нет скидки,то смотреть в таблице папок.
просто и быстро.
   Быдло замкадное
 
6 - 20.02.20 - 17:17
Отличный говнокод получился 

ВЫБОР
    КОГДА ВТВсеСкидки.СкидкаНоменклатура <> 0
        ТОГДА ВТВсеСкидки.СкидкаНоменклатура
    ИНАЧЕ ВЫБОР
            КОГДА ВТВсеСкидки.СкидкаРодитель <> 0
                ТОГДА ВТВсеСкидки.СкидкаРодитель
            ИНАЧЕ ВЫБОР
                    КОГДА ВТВсеСкидки.СкидкаРодитель2 <> 0
                        ТОГДА ВТВсеСкидки.СкидкаРодитель2
                    ИНАЧЕ ВЫБОР
                            КОГДА ВТВсеСкидки.СкидкаРодитель3 <> 0
                                ТОГДА ВТВсеСкидки.СкидкаРодитель3
                            ИНАЧЕ ВЫБОР
                                    КОГДА ВТВсеСкидки.СкидкаРодитель4 <> 0
                                        ТОГДА ВТВсеСкидки.СкидкаРодитель4
                                    ИНАЧЕ ВЫБОР
                                            КОГДА ВТВсеСкидки.СкидкаРодитель5 <> 0
                                                ТОГДА ВТВсеСкидки.СкидкаРодитель5
                                            ИНАЧЕ ВЫБОР
                                                    КОГДА ВТВсеСкидки.СкидкаРодитель6 <> 0
                                                        ТОГДА ВТВсеСкидки.СкидкаРодитель6
                                                    ИНАЧЕ ВЫБОР
                                                            КОГДА ВТВсеСкидки.СкидкаРодитель7 <> 0
                                                                ТОГДА ВТВсеСкидки.СкидкаРодитель7
                                                            ИНАЧЕ 0
                                                        КОНЕЦ
                                                КОНЕЦ
                                        КОНЕЦ
                                КОНЕЦ
                        КОНЕЦ
                КОНЕЦ
        КОНЕЦ
КОНЕЦ
   Сияющий в темноте
 
7 - 21.02.20 - 08:53
(6) а если уровней,скажем 17 ?
хотя,текст запроса можно собирать в коде,чтобы враги не догадались.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.