|
Оптимизация Запроса к РН | ☑ | ||
---|---|---|---|---|
0
DenVik
27.06.23
✎
14:24
|
Здравствуйте,
необходимо из РН достать ресурс СуммаБонусов(с этим проблем нет) и достать этот же ресурс, к-й был создан определенным документом Сделал запрос, но 2я часть плохо смотрится.Можно как то пооптимальней это сделать? ВЫБРАТЬ Клиент КАК Клиент, СуммаБонусовОстаток КАК СуммаБонусов, 0 КАК СуммаБонусовРаспр ИЗ РегистрНакопления.БонусыЛояльностиКлиента.Остатки ОБЪЕДИНИТЬ ВЫБРАТЬ Клиент КАК Клиент, 0 КАК СуммаБонусов, Сумма(СуммаБонусов) КАК СуммаБонусовРаспр ИЗ РегистрНакопления.БонусыЛояльностиКлиента ГДЕ ТИПЗНАЧЕНИЯ(Регистратор.Ссылка) = ТИП(Документ.Распродажа) СГРУППИРОВАТЬ ПО Клиент |
|||
1
lodger
27.06.23
✎
14:33
|
(0) давай ещё раз
ТИПЗНАЧЕНИЯ(Регистратор.Ссылка) = ТИП(Документ.Распродажа) или к-й был создан определенным документом |
|||
2
DenVik
27.06.23
✎
14:54
|
По простому был создан документом РАСПРОДАЖА
|
|||
3
Мультук
27.06.23
✎
15:22
|
(0)
ВЫБРАТЬ Клиент КАК Клиент, 0 КАК СуммаБонусов, Сумма(СуммаБонусов) КАК СуммаБонусовРаспр ИЗ РегистрНакопления.БонусыЛояльностиКлиента ГДЕ Регистратор ССЫЛКА Документ.Распродажа СГРУППИРОВАТЬ ПО Клиент |
|||
4
lodger
27.06.23
✎
15:31
|
(3) сильно лучше не стало. ты всё ещё трясёшь таблицу РегистрНакопления.БонусыЛояльностиКлиента
(2) надо было РН проектировать под это условие. в другой ресурс кидать или измерение добавлять. интересно, будет ли разница между: ВЫБРАТЬ ИЗ РегистрНакопления.БонусыЛояльностиКлиента ГДЕ Регистратор ССЫЛКА Документ.Распродажа и: ВЫБРАТЬ ИЗ РегистрНакопления.БонусыЛояльностиКлиента.Обороты(, , Авто, ) ГДЕ Регистратор ССЫЛКА Документ.Распродажа |
|||
5
Мультук
27.06.23
✎
15:39
|
(4)
Я всего лишь указал на бред вида "Регистратор.Ссылка" |
|||
6
Жан Пердежон
27.06.23
✎
15:40
|
(4) РН проектировать под условие запроса, который будет раз в год выполняться? ну-ну
(4) И да, разница будет: как минимум при Активность = ЛОЖЬ |
|||
7
lodger
27.06.23
✎
15:43
|
(5) +
(6) обычно, в торговле управление красивое, с чувством прекрасного. у них 8 пятниц в неделю, а одноразовые срезы превращаются в ежедневные отчеты. 1с предлагает настолько гибкий инструмент, что за ночь можно пересчитать РН и выдать результат завтра, раз уж такова потребность бизнеса. |
|||
8
CepeLLlka
27.06.23
✎
15:48
|
(0)А что сейчас не оптимально работает? Долго выполняется или что?
|
|||
9
novichok79
27.06.23
✎
15:49
|
(0) добавь в измерения булев признак, когда создано определенным документом и считай по нему обороты.
|
|||
10
novichok79
27.06.23
✎
15:58
|
без измерения - костыль, с измерением - костыль, т. е. "все равно отымеют".
в таком случае, я выбираю костыль, который будет обслуживаться движочком 1С. |
|||
11
Мультук
27.06.23
✎
16:04
|
(9)
В свое время (и на совсем другом форуме) только за предложение (читай за мысль) строить индекс по булевому полю на потенциально большой таблице был бы "цинк с гвоздями" А учитывая, что в этом случае это составной индекс -- то "пожизненный цинк с гвоздями". |
|||
12
Волшебник
27.06.23
✎
16:20
|
(11) пишется "эцих" https://cyclowiki.org/wiki/Эцих
|
|||
13
Жан Пердежон
27.06.23
✎
16:44
|
(11) и ладно бы еще ресурс добавить предложил...
|
|||
14
ptiz
27.06.23
✎
17:03
|
(0) Если документ Распродажа делает записи в этот регистр часто - оставить как есть.
Если редко, то 2 вариант: 1) сделать реквизит типа "КодОперации", по нему включить индексирование , перезаполнить регистр, и отбирать по нему. 2) сделать вообще отдельный регистр |
|||
15
azernot
27.06.23
✎
17:18
|
(0) Опишите задачу, а не предполагаемый вами метод решения.
Предположительно, вы идёте неверным путём. Судя по всему, у вас есть РН в котором хранятся какие-то данные о бонусах (о накоплении бонусов и списании бонусов) клиентов. Судя по всему, эти самые бонусы могут быть накоплены в результате распродажи. И, наверное, эти "распродажные" бонусы вы хотите учесть как-то по-другому, нежели "обычные". При этом вы не идёте по пути "не начислять бонусы при распродажах". Т.е. предполагается, что даже "распродажные" - это всё равно бонусы, и клиент сможет ими воспользоваться. Что же я вижу? Вы получаете ОСТАТОК бонусов и оборот "распродажных" бонусов. Если я к примеру получил 1000 бонусов, из которых 300 "распродажных", потом потратил 900 бонусов, что же даст ваш запрос? Остаток бонусов 100, и распродажных 300. Что вы будете делать с такими данными? Ума не приложу. |
|||
16
DenVik
28.06.23
✎
08:57
|
Бонусы, имеют одинаковую силу, созданные любым документом.Бонусы с распродажи, вывожу справочно, в отчете.
Просто заинтересовался, как оптимальней решить такую задачу.Видимо, при такой структуре РН по другому не сделать. Наверное надо бы добавить в Измерения РН поле ВидОперации.И вызывать РегистрНакопления.БонусыЛояльностиКлиента.Остатки(,ВидОперации=Перечисл.Распродажа) Других мыслей нет. |
|||
17
ptiz
28.06.23
✎
09:11
|
(16) В измерения? Ты при приходе заранее знаешь, какое значение в измерении будет в момент расхода?
|
|||
18
DenVik
28.06.23
✎
09:23
|
Немного не так написал. НЕ РегистрНакопления.БонусыЛояльностиКлиента.Остатки(,ВидОперации=Перечисл.Распродажа)
а РегистрНакопления.БонусыЛояльностиКлиента.Обороты(,,ВидОперации=Перечисл.Распродажа) т е получу БонусыПриход Хотя и этот вариант РегистрНакопления.БонусыЛояльностиКлиента.Остатки(,ВидОперации=Перечисл.Распродажа) даст тот же результат(у меня нет расхода бонусов по виду док Распродажа) Или как еще можно сделать? |
|||
19
DenVik
28.06.23
✎
09:39
|
Или вместо добавления Измерения добавить ресурс СуммаБонусовРаспр,и дублировать туда значение СуммаБонусов, если движение делает документ Распродажа.Тогда можно пользоваться вирт таблицей Остатки.
С точки зрения методологии 1с как будет правильней? |
|||
20
lodger
28.06.23
✎
10:17
|
(19) ресурс добавь.
|
|||
21
lodger
28.06.23
✎
10:19
|
какой-то док
+50 к СуммаБонусов 0 к СуммаБонусовРаспродажи док распродажный_1 +100 к СуммаБонусов +100 к СуммаБонусовРаспродажи док распродажный_2 +75 к СуммаБонусов +75 к СуммаБонусовРаспродажи а стратегию списания обсуди с торговцами |
|||
22
DenVik
28.06.23
✎
10:27
|
(21) Да, тоже к такому варианту склоняюсь
|
|||
23
novichok79
28.06.23
✎
11:25
|
(9) ну индекс, ну низкая кардинальность.
но ведь 1С обороты не по измерениям считать не умеет... очередной шах и мат 1Снику от вендора? ладно бы у вас выбор был, кек. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |