Здраствуйте, такой вот запрос.
При выборе периода год не попадает часть клиентов. При использование периода 1-3 месяца все ровно, так как должно быть. Может кто подскажет в чем может быть проблема.
ВЫБРАТЬ РАЗЛИЧНЫЕ
0 КАК OL_ID,
381 КАК SUBTYPE_ID,
0 КАК AREA_ID,
0 КАК OWNER_ID,
" " КАК MERCH_CODE,
Контрагенты.Код КАК PCOMP_CODE,
Контрагенты.Код КАК OL_CODE,
ВЫРАЗИТЬ(Контрагенты.НаименованиеПолное КАК СТРОКА(200)) КАК NAME,
Контрагенты.Наименование КАК TRADE_NAME,
"-" КАК DIRECTOR,
ВЫРАЗИТЬ(ЮрАдр.Представление КАК СТРОКА(200)) КАК ADDRESS,
ВЫРАЗИТЬ(ФактАдр.Представление КАК СТРОКА(200)) КАК DELIV_ADDR,
"-" КАК TELEPHONE,
"-" КАК FAX,
"-" КАК EMAIL,
"-" КАК ACCOUNTANT,
"-" КАК ACC_PHONE,
"-" КАК M_MANAGER,
"-" КАК MM_PHONE,
"-" КАК P_MANAGER,
"00:00" КАК OPEN_TIME,
"00:00" КАК CLOSE_TIME,
"00:00" КАК BREAK_FROM,
"00:00" КАК BREAK_TO,
Контрагенты.ОКОПФ КАК ZKPO,
ВЫБОР
КОГДА Контрагенты.ИНН ЕСТЬ NULL
ИЛИ Контрагенты.ИНН = ""
ТОГДА "Нет"
ИНАЧЕ Контрагенты.ИНН
КОНЕЦ КАК IPN,
"-" КАК VATN,
"-" КАК RR,
"-" КАК BANKCODE,
"-" КАК BANKNAME,
"-" КАК BANKADDR,
0 КАК LIC_USAGE,
ВЫБОР
КОГДА Контрагенты.ПометкаУдаления
ТОГДА 9
ИНАЧЕ 2
КОНЕЦ КАК STATUS
ИЗ
РегистрНакопления.Продажи.Обороты(&Дата1, &Дата2, , Номенклатура В ИЕРАРХИИ (&Номенклатура)) КАК ПродажиОбороты
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
ПО ПродажиОбороты.Контрагент = Контрагенты.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК ЮрАдр
ПО ПродажиОбороты.Контрагент = ЮрАдр.Объект
И (ЮрАдр.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ЮрАдресКонтрагента))
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК ФактАдр
ПО ПродажиОбороты.Контрагент = ФактАдр.Объект
И (ФактАдр.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ФактАдресКонтрагента))
ПоказатьПри выборе периода год не попадает часть клиентов. При использование периода 1-3 месяца все ровно, так как должно быть. Может кто подскажет в чем может быть проблема.
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Вы вообще зачем левым соединением применяете слева то , откуда не берете ни одного поля?
И кроме того если вы хотите ВСЕХ контрагентов - используйте все же правое соединение в вашем тексте.
Зачем вообще применили РегистрНакопления.Продажи.Обороты, если данные из него не нужны?
И кроме того если вы хотите ВСЕХ контрагентов - используйте все же правое соединение в вашем тексте.
Зачем вообще применили РегистрНакопления.Продажи.Обороты, если данные из него не нужны?
да salesworks с ут 10.3.....логика как раз правильная, не правильная это брать из измерения...это увеличивает время запроса. В дате все ровно передается, так как надо. По месяцам щас проверю, не пробовал. Идея не плохая, интересует как раз первый месяц из 12.
(7)
Номенклатура В ИЕРАРХИИ (&Номенклатура) - а это правильно?
Более менее правильно:
1) отобрать всю нужную номенклатуру в временную таблицу (далее ВТ1). Проиндексировать по ссылке
2) взять данные из виртуальной таблицы регистра Обороты, поля: Контрагент, Номенклатура, поместить в ВТ2 Проиндексировать таблицу по ссылке номенклатуры и контрагенту
3) Внутреннее соединение ВТ1 и ВТ2 по номенклатуре. Все в ВТ3
4) ВЫБРАТЬ Адреса.Объект, Адреса.Представление, "" Из РегистрСведений.КонтактнаяИнформация КАК Адреса ГДЕ Адреса.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ЮрАдресКонтрагента) И ВЫРАЗИТЬ(Адреса.Объект КАК Справочник.Контрагенты) В (Выбрать ВТ2 .Контрагент ИЗ ВТ2 КАК ВТ2) Объединить ВСЕ ВЫБРАТЬ Адреса.Объект, "", Адреса.Представление Из РегистрСведений.КонтактнаяИнформация КАК Адреса ГДЕ Адреса.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ФактАдресКонтрагента) И ВЫРАЗИТЬ(Адреса.Объект КАК Справочник.Контрагенты) В (Выбрать ВТ2 .Контрагент ИЗ ВТ2 КАК ВТ2)
5) .... Левые соединения
не правильная это брать из измерения
Номенклатура В ИЕРАРХИИ (&Номенклатура) - а это правильно?
Более менее правильно:
1) отобрать всю нужную номенклатуру в временную таблицу (далее ВТ1). Проиндексировать по ссылке
2) взять данные из виртуальной таблицы регистра Обороты, поля: Контрагент, Номенклатура, поместить в ВТ2 Проиндексировать таблицу по ссылке номенклатуры и контрагенту
3) Внутреннее соединение ВТ1 и ВТ2 по номенклатуре. Все в ВТ3
4) ВЫБРАТЬ Адреса.Объект, Адреса.Представление, "" Из РегистрСведений.КонтактнаяИнформация КАК Адреса ГДЕ Адреса.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ЮрАдресКонтрагента) И ВЫРАЗИТЬ(Адреса.Объект КАК Справочник.Контрагенты) В (Выбрать ВТ2 .Контрагент ИЗ ВТ2 КАК ВТ2) Объединить ВСЕ ВЫБРАТЬ Адреса.Объект, "", Адреса.Представление Из РегистрСведений.КонтактнаяИнформация КАК Адреса ГДЕ Адреса.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ФактАдресКонтрагента) И ВЫРАЗИТЬ(Адреса.Объект КАК Справочник.Контрагенты) В (Выбрать ВТ2 .Контрагент ИЗ ВТ2 КАК ВТ2)
5) .... Левые соединения
(7) Если SalesWorks тогда в принципе не стоит так делать, т.к. в выгрузку не попадут торговые точки(контрагенты) по которым не было продаж, но по которым были какие внутренние перемещения или торговая точка новая и вообще не было никаких движений, но она должна выгрузиться чтобы потом торговый мог сделать заказ на неё. Можно конечно наложить какие либо фильтры(по группе, по организации,...) но привязываться к продажам точно не стоит.
(14) DimDiemon прав
Так как в большом периоде происходит схлопывание оборотов (приход равен расходу), то такие записи не попадают в результат запроса.
В зависимости от ситуации приходилось ставить различную периодичность месяц/день и в особых случаях регистратор/запись :)
Потом сворачивал результат.
Так как в большом периоде происходит схлопывание оборотов (приход равен расходу), то такие записи не попадают в результат запроса.
В зависимости от ситуации приходилось ставить различную периодичность месяц/день и в особых случаях регистратор/запись :)
Потом сворачивал результат.
(15) "Схлопывание" может произойти только при сторнировании оборотов. Равенство приходов и расходов к такому результату привести не может.
Но в случае сторнирования "схлопывание" - абсолютно корректный результат.
ЗЫ. Хотя если возвраты сторнируют продажи, то да - возникает классическая проблема свернутых/развернутых данных. Без нужной детализации или специального расчета "чистые" продажи будут рассчитаны некорректно.
Но в случае сторнирования "схлопывание" - абсолютно корректный результат.
ЗЫ. Хотя если возвраты сторнируют продажи, то да - возникает классическая проблема свернутых/развернутых данных. Без нужной детализации или специального расчета "чистые" продажи будут рассчитаны некорректно.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот