|
Формирование запроса по клиентам с помощью СКД | ☑ | ||
---|---|---|---|---|
0
Ksusha112233
19.04.17
✎
19:17
|
Здравствуйте! Пожалуйста подскажите. Не хватает знаний.
Есть задача в фитнес клубе нужно реализовать автоматическую выборку по клиентами(контрагенты), если он в течении полугода посещал клуб хотя бы раз в месяц. Есть такой РН.Посещение В нем зарегистрированы все посещения клуба. Внутри программы реализованы сегменты клиентов, которые могут автоматически формироваться каждый день по заданным правилам. Правила эти надо написать в скд Пожалуйста подскажите как осуществить такой запрос на СКД. Хотя бы может какой то пример |
|||
1
lodger
19.04.17
✎
19:44
|
а причем тут скд если у вас просто выборка?
делаете пакетный запрос и показываете на форме список. в пакетном запросе первый запрос собирает посещения по месяцам где наличие посещений в месяца отражается цифрой 1 второй запрос суммирует последние 6 месяцев и если сумма = 6 выводит клиента. |
|||
2
Ksusha112233
19.04.17
✎
20:04
|
Вот мне и не понятно. Со вторым запросом
Т.е. по сути мне нужно результат запроса вывести во временную таблицу. Как мне суммировать последние 6 месяцев? как связать два запроса? что то я совсем запуталась... извините |
|||
3
Ksusha112233
19.04.17
✎
22:14
|
Как узнать наличие посещений именно в месяц? не задавая параметры НачалоПериода и КонецПериода?
Чтобы отбор в регистре шел именно за месяц? А потом как мне задать так что если было посещение в месяц, что бы он остальные 5 месяцев просмотрел? Потому что человек за полгода может сходить шесть раз, но за один или за два месяца. Не могу понять как это сделать. Может кто нить приведет пример? |
|||
4
Мимохожий Однако
19.04.17
✎
22:22
|
100 вопросов вместо того, чтобы взять консоль запросов и сделать запрос, который можно выложить сюда для критики и советов.
|
|||
5
AlvlSpb
19.04.17
✎
23:03
|
(3) Какие у вас измерения и ресурсы в регистре? Регистр периодический?
|
|||
6
Ksusha112233
19.04.17
✎
23:05
|
ВЫБРАТЬ РАЗЛИЧНЫЕ
ПосещенияОбороты.Контрагент, ПосещенияОбороты.Услуга, ПосещенияОбороты.КоличествоОборот ПОМЕСТИТЬ ТПосещенияМесяц ИЗ РегистрНакопления.Посещения.Обороты({(&НачалоПериода1)}, {(&КонецПериода1)}, Месяц, ) КАК ПосещенияОбороты ГДЕ ПосещенияОбороты.КоличествоОборот >= 1 СГРУППИРОВАТЬ ПО ПосещенияОбороты.Период, ПосещенияОбороты.Контрагент, ПосещенияОбороты.Услуга, Это первый запрос в таблицу которого я хочу поместить контрагентов которые посещяли хотя бы раз в месяц. НО параметры началопериода и КонецПериода не работают, даже задавая их на вкладке параметры. Запрос выполняется по всему периоду |
|||
7
AlvlSpb
19.04.17
✎
23:16
|
Смысл такой. Если периодический, то на примере РН Заказы покупателей
ВЫБРАТЬ ЗаказыПокупателейОбороты.Номенклатура КАК Номенклатура, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЗаказыПокупателейОбороты.Период) КАК Период ИЗ РегистрНакопления.ЗаказыПокупателей.Обороты(&ДатаНачала, &ДатаОкончания, Месяц, ) КАК ЗаказыПокупателейОбороты ГДЕ ЗаказыПокупателейОбороты.КоличествоПриход > 0 СГРУППИРОВАТЬ ПО ЗаказыПокупателейОбороты.Номенклатура УПОРЯДОЧИТЬ ПО Номенклатура Результат запроса - Номенклатура (в вашем случае Клиент) и кол-во периодов (каждый месяц) Если кол-во периодов =6, значит клиент был хотя бы раз в месяц Ну а период (если нельзя установить в отчете явно) установить примерно так. ДатаОкончания = ТекущаяДата ДатаНачала = ДатаОкончания - 15552000 (180*24*60*60) |
|||
8
AlvlSpb
19.04.17
✎
23:22
|
(6) У вас периодический регистр. Делайте по примеру (7) Номенклатура - это ваш Контрагент, остальные ваши поля не нужны Возьмите поле Период и просуммируйте его
|
|||
9
Ksusha112233
19.04.17
✎
23:38
|
спасибо за ответ.
ВЫБРАТЬ РАЗЛИЧНЫЕ ПосещенияОбороты.Контрагент, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ПосещенияОбороты.Период) КАК Период ИЗ РегистрНакопления.Посещения.Обороты(&ДатаНачала, &ДатаОкончания, Месяц, ) КАК ПосещенияОбороты ГДЕ ПосещенияОбороты.КоличествоОборот >= 1 СГРУППИРОВАТЬ ПО ПосещенияОбороты.Контрагент Но все равно не работает по датам. выводит за весь период посещений т.е. всех клиентов которые ходили хоть раз. Что я делаю не так? Как поставить условие =6?не понимаю уже что то под конец((( Делаю через СКД |
|||
10
AlvlSpb
19.04.17
✎
23:58
|
(9) Запрос у вас и должен выдавать ВСЕХ клиентов А вот вывод в отчет по отбору Период = 6 И в отчет попадут только клиенты хотя бы раз в месяц бывшие в спортзале
|
|||
11
Ksusha112233
20.04.17
✎
00:10
|
Ставлю простой отбор Период РАВНО 6(просто в настройках отбора)
Все равно выдает всех клиентов Не могу понять, ставлю параметры выражение ДатаОкончания ТекущаяДата(), так же по примеру ДатаНачала тоже выдает всех |
|||
12
Ksusha112233
20.04.17
✎
00:11
|
Большое спасибо, что мне помагаете
|
|||
13
Ksusha112233
20.04.17
✎
00:11
|
Помогаете*
|
|||
14
AlvlSpb
20.04.17
✎
00:20
|
(13) не буду переделывать свой запрос. Если делаете в СКД, то, не вдаваясь в подробности, запрос такой (сделайте по аналогии)
ВЫБРАТЬ ЗаказыПокупателейОбороты.Номенклатура, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЗаказыПокупателейОбороты.Период) КАК Период ИЗ РегистрНакопления.ЗаказыПокупателей.Обороты({(&НачалоПериода)}, {(&КонецПериода)}, Месяц, ) КАК ЗаказыПокупателейОбороты ГДЕ ЗаказыПокупателейОбороты.КоличествоПриход > 0 СГРУППИРОВАТЬ ПО ЗаказыПокупателейОбороты.Номенклатура В окне скд уберите у поля Период роль - период (должна быть без роли В настройках Выбранные поля Номенклатура, Период В отборе Период = 6 (можно не ставить, потом в форме настроить отбор) Параметры - элементы пользовательских настроек |
|||
15
Ksusha112233
20.04.17
✎
00:23
|
Запрос и отбор работает!))))) Большое спасибо!))) Я так рада!)))
Но вот датаНачала и Окончания не работает, как поступить? Теперь выдает всех правильных клиентов, только за весь период, не учитываю дату начала и датаОкончания Задаю в параметрах (в скд) выражение ДатаОкончания ТекущаяДата() ДатаНачала ТекущаяДата() - 15552000 (180*24*60*60) Ругается на минус |
|||
16
AlvlSpb
20.04.17
✎
00:27
|
(15) нет нет нет Я тогда привел пример для модуля а не для скд
просто в настройках параметров поставьте галку включать в доступные поля никаких формул расчета даты (просто вы высказывались что не задействовать Дата начала и дата окончания, вот я и предложил как вариант) |
|||
17
AlvlSpb
20.04.17
✎
00:30
|
(15) И в главном окне внешнего отчета не указывайте никакой формы, тогда параметры Дата начала и Дата окончания будут на форме отчета в польз режиме
|
|||
18
AlvlSpb
20.04.17
✎
00:32
|
(15) Ну и уже не совсем по теме "ТекущаяДата() - 15552000 (180*24*60*60)" все что в скобках - это пояснение откуда цифра. В модуле должно было быть ТекущаяДата() - 15552000
|
|||
19
Ksusha112233
20.04.17
✎
00:38
|
Теперь поняла.
У меня не внешний отчет. Это правила для автоматической отборки контрагентов, для добавления в сегмент контрагентов(по расписанию), тогда они будут попадать в определенную бонусную программу. Поэтому у меня нет возможности добавить поле типа Дата, что бы задать в ручную НачалоПериода и КонецПериода. Когда я просто добавляю в отборе эти параметры с обычными дата соотвественно ругается. Если на вкладке параметры (пользовательские) их совершенно не видит. Что делать? |
|||
20
AlvlSpb
20.04.17
✎
00:41
|
(19) Ну это же все-равно отчет? только не внешний?
|
|||
21
AlvlSpb
20.04.17
✎
00:43
|
Нажимаете знак "?" после поля поиска - СКД. Попадаете в настройки скд и там устанавливаете нужный период
|
|||
22
Ksusha112233
20.04.17
✎
01:05
|
я не могу найти(((
Если вы имеете в обычных настройках Параметры То там не работает. если заходить в констуктор и там в настройках задавать(в ручную) то тогда отбирает по тому периоду. Правильно я делаю? |
|||
23
AlvlSpb
20.04.17
✎
01:10
|
(22) нет я говорил не об этом. Сделайте скрин вашего отчета, покажите его. А то меня не оставляет ощущение, что не совсем понимаю что вы делаете. (На всякий, скрин загрузите на любой ресурс, как вариант http://radikal.ru/ и ссылку разместите в ответе здесь)
|
|||
24
AlvlSpb
20.04.17
✎
01:15
|
(22) "если заходить в констуктор и там в настройках задавать(в ручную) то тогда отбирает по тому периоду. Правильно я делаю?" На сегодняшний день - правильно, а через месяц уже надо будет менять в конфигураторе - не вариант.
|
|||
25
Ksusha112233
20.04.17
✎
01:22
|
Да согласна. Тогда придется каждый месяц менять.
Я тоже не уверена, что делаю то, что вы мне говорите. Скрин высылаю. [url=http://radikal.ru][img]http://s009.radikal.ru/i310/1704/a7/9bbc292e63d1.jpg[/img][/url] [url=http://radikal.ru][img]http://s019.radikal.ru/i616/1704/9e/132089c52193.jpg[/img][/url] |
|||
26
Ksusha112233
20.04.17
✎
01:23
|
а как мне тогда сделать что бы эти даты вот как раз и были текущая дата и текущаядата -30 к примеру
|
|||
27
AlvlSpb
20.04.17
✎
01:34
|
(25) У вас явно не то в параметрах. не должны они задваиваться
как на втором скрине. Должны быть в единственном экземпляре. Проверьте. В конструкторе ЗАПРОСА В ТаблицыИПоля в таблицах, параметры вирт таблиц должен стоять только Период Месяц. В Компановка данных параметры вирт таблицы НачалоПериода и КонецПериода Это раз. Второе. Не совсем понимаю для чего вам Контрагент иерархия. Достаточно просто детальных записей, где в выбранных полях Контрагент и Период. И даже период нужен только на период отладки отчета, дальше его можно убрать (несет информацию только для отбора). И третье, чтобы объяснить как выбрать период надо скрин отчета в ПОЛЬЗОВАТЕЛЬСКОМ режиме. Или все что говорил в (21) - это относится к пользовательскому режиму. (и ссылку размещайте без кодов просто в виде http/.... |
|||
28
AlvlSpb
20.04.17
✎
01:41
|
(25) Увидел. Вы запрос все-таки сделали не как в (14) Обратите внимание на фигурные скобки
|
|||
29
Ksusha112233
20.04.17
✎
01:47
|
http://s020.radikal.ru/i710/1704/04/72146cc552f0.jpg[/img][/url]
вот только такие могут быть еще настройки, но когда в них задаю параметы, они ен сохраня.тся и не берутся во внимание |
|||
30
AlvlSpb
20.04.17
✎
01:51
|
(29) да Делать именно здесь как на последнем скрине. А не берутся они, потому что эти параметры у вас задвоены. Сделайте запрос как в (14)по аналогии с учетом фигурных скобок и названия параметров или как объяснил в (27) первое замечание и все заработает
|
|||
31
Ksusha112233
20.04.17
✎
02:01
|
похоже сделала.Сделала с фигурными скобками. убрала задвоение.
теперь все работает.!)))) я очень рада!))) Большое Вам спасибо, не знаю как Вы меня вытерпели. |
|||
32
AlvlSpb
20.04.17
✎
02:07
|
(31) ))) Все нормально. Теперь попробуйте сделать параметры как элемент пользовательских настроек. У вас на последнем скрине видно, что это можно сделать. Ставите галку перед параметром и нажимаете квадратик с плюсом выше. Там разберетесь. А я спать. рад что получилось ))))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |