|
Как свернуть одинаковые значения цен в группы? | ☑ | ||
---|---|---|---|---|
0
ИС-2
naïve
03.03.14
✎
12:29
|
Пусть на входе есть таблица с ценами номенклатуры по контрагентам. Надо на выходе получить таблицу свернутую по значениям типа цен.
Есть только вариант с суммированием цен, но это медленно (проверено) и ненадежно. Какие еще есть варианты? http://storage9.static.itmages.ru/i/14/0303/h_1393835124_3742148_b8399a7128.jpg |
|||
1
Feunoir
03.03.14
✎
12:37
|
(0) http://static.diary.ru/userdir/2/7/3/4/2734195/71565945.jpg и подозреваю, что я не одинок.
|
|||
2
ИС-2
naïve
03.03.14
✎
12:43
|
(1) ага, была у кого-то такая проблема
|
|||
3
Ненавижу 1С
гуру
03.03.14
✎
12:44
|
(0) а зачем?
|
|||
4
1Сергей
03.03.14
✎
12:47
|
средствами 1С?
|
|||
5
ИС-2
naïve
03.03.14
✎
13:24
|
(3) для оптимизации выгрузки цен в мобильную торговлую. Если для каждого клиента выгружать по 1 типу цен, то объем будет большим. А вот если свернуть, то норм
|
|||
6
ИС-2
naïve
04.03.14
✎
07:55
|
вот то, что мне надо в более наглядном представлении:
https://www.dropbox.com/s/g81kqsfq59x0kgg/Скриншот%202014-03-04%2007.54.42.png |
|||
7
PuhUfa
04.03.14
✎
08:19
|
(6) 2я табличка это обычный прайс лист, не?
|
|||
8
Feunoir
04.03.14
✎
08:24
|
(6) Хм. Интересно. Такая идея
ВЫБРАТЬ РАЗЛИЧНЫЕ Цены1.Контрагент ИЗ РегистрСведений.ЦеныНоменклатуры КАК Цены ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК Цены1 ПО Цены.Контрагент = &Контрагент И Цены1.Контрагент <> &Контрагент И Цены.Номенклатура = Цены1.Номенклатура И Цены.Цена <> Цены1.Цена По идее этот запрос должен выдать тебе всех контрагентов, у которых цены на товары отличаются от цены &Контрагент. Но подозреваю, что оно может сработать неправильно если товарные матрицы отличаются для разных контрагентов. Надо проверять. Ну а дальше циклом по всем контрагентам. |
|||
9
ИС-2
naïve
04.03.14
✎
08:30
|
(7) нет.
Первая таблица это фактические цены у контрагентов с учетом скидок и наценок. Они получены расчетным путем. Есть всего несколько типов цен (например, розница, мелкий опт, крупный опт) на которые накладываются скидки и наценки действующие на контрагента и номенклатуру(нетиповой механизм). В результате чего получается таблица 1. Теперь стоит задача - выделить клиентов с одинаковыми ценами. Но нужно быстрое решение - 2000 позиций на 10 клиентов дают 20000 строк, которые надо обработать. Поэтому вариант с циклом не подходит. |
|||
10
sda553
04.03.14
✎
08:32
|
Все цены клиента в строку
100110100150170... от этой строки вычисляешь хэш, например 0x1234fedc Записываем в соответствие соотв[0x1234fedc]=новыйТипЦенИзАвтонумератора А если в соответствии уже есть ключ 0x1234fedc то значит какой то клиент в цикле до этого уже использовал такой же тип цен и просто пишем этому клиенту типЦенн=соотв[0x1234fedc] Спасибо за внимание |
|||
11
sda553
04.03.14
✎
08:34
|
Алгоритм можно ускорить если конкатенировать не цены, а прейскуранты
|
|||
12
ИС-2
naïve
04.03.14
✎
09:20
|
(8) вот. Но опять проблема с производительностью - для всего нужен цикл.
(11) Прейскуранты - это от чего зависят сами сформированные цены. Например, сумма скидки, группа товаров и т.д. Если да, то уже сделано. Но алгоритм жуть - делал осенью сейчас смотрю и боюсь его. Поэтому хочу упросить... |
|||
13
Feunoir
04.03.14
✎
12:03
|
(12) Запрос выполняется считанные миллисекунды, 10 клиентов обработается за 1 секунду. Тебе надо быстрее? Или ты надеешься без цикла это сделать вообще.
|
|||
14
ИС-2
naïve
04.03.14
✎
15:10
|
(13) в том то и дело, что не 10 клиентов, а десятки и сотни, а на каждого клиента могут свои скидки по группам номенклатуры
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |