|
|
|
Детальные записи | ☑ | ||
|---|---|---|---|---|
|
0
ShpakovMaxim
24.12.25
✎
13:28
|
Проблема значиться такая:
Создал отчет, который выводит акб и посещения в формате 1 и 0. Если есть посещение, значит 1, если его нет, тогда 0. С остальными полями так же. И вроде все хорошо, но когда начал проверять обнаружил проблему: Если убрать детальные записи и сделать иерархию по менеджеру или торговой сети - подсчеты ломаются и выводятся чуть ли не в 2 раза больше. |
|||
|
1
maxab72
24.12.25
✎
13:29
|
код в студию!
|
|||
|
2
ShpakovMaxim
24.12.25
✎
13:33
|
https://ibb.co/JWHbftfv
https://ibb.co/nNLDs8bS https://ibb.co/N2kwxChd ВЫБРАТЬ РАЗЛИЧНЫЕ ЗаказыТорговогоПредставителяСрезПоследних.ТорговыйОбъект КАК ТорговыйОбъект, ЗаказыТорговогоПредставителяСрезПоследних.Посещение КАК Посещение ПОМЕСТИТЬ ВТ_Посещения ИЗ РегистрСведений.ЗаказыТорговогоПредставителя.СрезПоследних КАК ЗаказыТорговогоПредставителяСрезПоследних ГДЕ ЗаказыТорговогоПредставителяСрезПоследних.Период МЕЖДУ &ДатаНач И &ДатаКон И ЗаказыТорговогоПредставителяСрезПоследних.ТорговыйОбъект.Активный = &Истина И ЗаказыТорговогоПредставителяСрезПоследних.Посещение = &Истина ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ ТорговыеОбъекты.Ссылка КАК Ссылка ПОМЕСТИТЬ ВТ_ТорговыеОбъекты ИЗ Справочник.ТорговыеОбъекты КАК ТорговыеОбъекты ГДЕ ТорговыеОбъекты.ПометкаУдаления = &Ложь И ТорговыеОбъекты.Активный = &Истина ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ ВТ_ТорговыеОбъекты.Ссылка КАК Ссылка, ВТ_ТорговыеОбъекты.Ссылка.Контрагент КАК СсылкаКонтрагент, ВТ_ТорговыеОбъекты.Ссылка.Контрагент.ТорговаяСеть КАК СсылкаКонтрагентТорговаяСеть, ВТ_ТорговыеОбъекты.Ссылка.ТипТорговойТочки КАК СсылкаТипТорговойТочки, ВТ_ТорговыеОбъекты.Ссылка.Менеджер.Супервайзер КАК СсылкаМенеджерСупервайзер, ВТ_ТорговыеОбъекты.Ссылка.Менеджер КАК СсылкаМенеджер, ВТ_ТорговыеОбъекты.Ссылка.МенеджерИнтервалМеждуПосещениями КАК СсылкаМенеджерИнтервалМеждуПосещениями ПОМЕСТИТЬ ВТ_Данные ИЗ ВТ_ТорговыеОбъекты КАК ВТ_ТорговыеОбъекты ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ ПланПоАКБСрезПоследних.ТорговыйОбъект КАК ТорговыйОбъект, ПланПоАКБСрезПоследних.Менеджер КАК Менеджер, ПланПоАКБСрезПоследних.Контрагент КАК Контрагент, ПланПоАКБСрезПоследних.ПланПоАКБ КАК ПланПоАКБ ПОМЕСТИТЬ ВТ_ПланАКБ ИЗ РегистрСведений.ПланПоАКБ.СрезПоследних КАК ПланПоАКБСрезПоследних ГДЕ ПланПоАКБСрезПоследних.Период МЕЖДУ &ДатаНач И &ДатаКон ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ ГМС_ОтгрузкаТМЦ.Контрагент КАК Контрагент, ГМС_ОтгрузкаТМЦ.ТорговыйОбъект КАК ТорговыйОбъект, ГМС_ОтгрузкаТМЦ.Менеджер КАК Менеджер, ГМС_ОтгрузкаТМЦ.Регистратор КАК Регистратор ПОМЕСТИТЬ ВТ_ФактАКБ ИЗ РегистрНакопления.ГМС_ОтгрузкаТМЦ КАК ГМС_ОтгрузкаТМЦ ГДЕ ГМС_ОтгрузкаТМЦ.Период МЕЖДУ &ДатаНач И &ДатаКон И ГМС_ОтгрузкаТМЦ.Регистратор ССЫЛКА Документ.РасходнаяНакладнаяТМЦ ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ ВТ_Данные.Ссылка КАК Ссылка, ВТ_Данные.СсылкаКонтрагент КАК СсылкаКонтрагент, ВТ_Данные.СсылкаКонтрагентТорговаяСеть КАК СсылкаКонтрагентТорговаяСеть, ВТ_Данные.СсылкаТипТорговойТочки КАК СсылкаТипТорговойТочки, ВТ_Данные.СсылкаМенеджерСупервайзер КАК СсылкаМенеджерСупервайзер, ВТ_Данные.СсылкаМенеджер КАК СсылкаМенеджер, ВТ_Данные.СсылкаМенеджерИнтервалМеждуПосещениями КАК СсылкаМенеджерИнтервалМеждуПосещениями, ЕСТЬNULL(ВТ_ПланАКБ.ПланПоАКБ, 0) КАК ПланПоАКБ, ВЫБОР КОГДА ВТ_Посещения.Посещение = &Истина ТОГДА 1 ИНАЧЕ 0 КОНЕЦ КАК Посещение, ВЫБОР КОГДА ЕСТЬNULL(ВТ_ФактАКБ.Регистратор, 0) = 0 ТОГДА 0 ИНАЧЕ 1 КОНЕЦ КАК ФактАКБ, ВЫБОР КОГДА ЕСТЬNULL(ВТ_Посещения.Посещение, 0) = 0 ТОГДА 0 ИНАЧЕ 1 КОНЕЦ - ЕСТЬNULL(ВТ_ПланАКБ.ПланПоАКБ, 0) КАК ОтклПосещ, ВЫБОР КОГДА ЕСТЬNULL(ВТ_ФактАКБ.Регистратор, 0) = 0 ТОГДА 0 ИНАЧЕ 1 КОНЕЦ - ЕСТЬNULL(ВТ_ПланАКБ.ПланПоАКБ, 0) КАК ОтклАКБ ИЗ ВТ_Данные КАК ВТ_Данные ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ПланАКБ КАК ВТ_ПланАКБ ПО ВТ_Данные.СсылкаМенеджер = ВТ_ПланАКБ.Менеджер И ВТ_Данные.Ссылка = ВТ_ПланАКБ.ТорговыйОбъект И ВТ_Данные.СсылкаКонтрагент = ВТ_ПланАКБ.Контрагент ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ФактАКБ КАК ВТ_ФактАКБ ПО ВТ_Данные.СсылкаКонтрагент = ВТ_ФактАКБ.Контрагент И ВТ_Данные.Ссылка = ВТ_ФактАКБ.ТорговыйОбъект И ВТ_Данные.СсылкаМенеджер = ВТ_ФактАКБ.Менеджер ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Посещения КАК ВТ_Посещения ПО ВТ_Данные.Ссылка = ВТ_Посещения.ТорговыйОбъект C радостью услышу критику и советы по самому запросу. (Понимаю, что первых 3 запроса можно в 1 сделать). |
|||
|
3
Волшебник
24.12.25
✎
13:35
|
что такое АКБ?
|
|||
|
4
ShpakovMaxim
24.12.25
✎
13:41
|
Активная клиентская база
|
|||
|
5
maxab72
24.12.25
✎
13:43
|
здесь ошибка, в формировании ВТ_ФактАКБ. надо сразу в ней считать количество фактов посещения, а не переносить этот подсчет в последний запрос.
И второе, ты объединяешь таблицы с разным количеством полей сравнения, ВТ_Посещения и ВТ_ФактАКБ с ВТ_ПланАКБ , соответственно у тебя в результирующей таблице данные из ВТ_Посещения задвоятся. Приведи структуру объединяемых таблиц к единому виду по полям. |
|||
|
6
Мультук
гуру
24.12.25
✎
13:50
|
(0)
Сформулируйте АКБ в постановке задачи. По каким группировка он считается. Сформулируйте какие поля нужны пользователю. P.S. (3) В моём понимании АКБ это Количество(Различные Контрагент) Ну или от постановки задачи Количество(Различные Контрагент, Измерение2, ИзмерениеN) Я всегда рассчитывал для СКД такие вещи в ресурсах. ТорговыеОбъекты.ПометкаУдаления = &Ложь
И ТорговыеОбъекты.Активный = &Истина
Почему-то вспоминается вечное #define TRUE FALSE // удачной отладки! |
|||
|
7
ShpakovMaxim
24.12.25
✎
13:58
|
Есть клиентская база. Ее посещают люди с какой-то периодичностью(7,14,28 и т.д. дней). Есть такой график мол в какой день когда какое посещение должно быть.
и вот план по АКБ показывает есть ли посещение у человека данного клиента в этом месяце. |
|||
|
8
ShpakovMaxim
24.12.25
✎
14:19
|
(5) Спасибо тебе огромное.
|
|||
|
9
ShpakovMaxim
24.12.25
✎
14:20
|
Если есть возможность, подскажите, какую книгу, сайт или что-то еще можно прочитать, чтобы писать хорошие запросы?
|
|||
|
10
Волшебник
24.12.25
✎
14:23
|
(9) Конфигуратор / Справка / Содержание справки / Встроенный язык / Работа с запросами
![]() |
|||
|
11
maxab72
24.12.25
✎
14:23
|
(7) Так и используй эти данные. Сперва построй плоскую таблицу со всеми значащими измерениями, по которым ты потом будешь сворачивать разные отчеты. Например плоская таблица должна иметь поля: Тип торговой точки, Менеджер, Контрагент, План АКБ, Факт АКБ, Посещение, Отклонения. Потом думаешь, как ее заполнить. Причем учитываешь, что если плоская таблица имеет 3 колонки для свертки, а прикрепляемая таблица имеет только 2 поля для сравнения - она прикрепится к нескольким строкам плоской результирующей таблицы.
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |