Запрос. Ошибки при большом периоде.

1. XiPyPg 23.10.18 09:08 Сейчас в теме
Здраствуйте, такой вот запрос.

ВЫБРАТЬ РАЗЛИЧНЫЕ
	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 месяца все ровно, так как должно быть. Может кто подскажет в чем может быть проблема.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. alex-l19041 8 23.10.18 09:44 Сейчас в теме
(1) попробуйте БЕЗ
Номенклатура В ИЕРАРХИИ (&Номенклатура)
8. Xershi 1542 23.10.18 11:40 Сейчас в теме
(1) потому что левое соединение и нет оборотов!
Какой запрос такой и результат!
9. XiPyPg 23.10.18 11:41 Сейчас в теме
(8)если бы не было оборота, то я не писал бы. Ставишь период 01.01-31.01 обороты почему-то есть...ставишь 01.01-.31.12 ...оборотов нет)) удивительно)
11. Xershi 1542 23.10.18 11:56 Сейчас в теме
(9) нет у вас показывает обороты на начало и на конец периода. В первом случае конец периода январь, во втором декабрь. Разница очевидна?
3. alex-l19041 8 23.10.18 09:53 Сейчас в теме
еще можно попробовать добавить в Продажи.Обороты периодичность месяц и посмотреть по месяцам
4. greatsnake 23.10.18 09:55 Сейчас в теме
Знакомая задача, это интеграция SalesWorks с УТ 10.3?

А по существу посмотрите что передается в параметры &Дата1, &Дата2 мб там косяк.
5. YannikAlx 27 23.10.18 09:59 Сейчас в теме
Вы вообще зачем левым соединением применяете слева то , откуда не берете ни одного поля?

И кроме того если вы хотите ВСЕХ контрагентов - используйте все же правое соединение в вашем тексте.

Зачем вообще применили РегистрНакопления.Продажи.Обороты, если данные из него не нужны?
6. greatsnake 23.10.18 10:05 Сейчас в теме
(5) Логика наверно в том чтобы получить контрагентов по которым были продажи "Номенклатура В ИЕРАРХИИ (&Номенклатура)", но присоединять Контрагента пожалуй лишнее можно было бы взять и его из измерения регистра.
7. XiPyPg 23.10.18 11:38 Сейчас в теме
да salesworks с ут 10.3.....логика как раз правильная, не правильная это брать из измерения...это увеличивает время запроса. В дате все ровно передается, так как надо. По месяцам щас проверю, не пробовал. Идея не плохая, интересует как раз первый месяц из 12.
12. dandykry 11 23.10.18 11:58 Сейчас в теме
(7)
не правильная это брать из измерения


Номенклатура В ИЕРАРХИИ (&Номенклатура) - а это правильно?

Более менее правильно:

1) отобрать всю нужную номенклатуру в временную таблицу (далее ВТ1). Проиндексировать по ссылке
2) взять данные из виртуальной таблицы регистра Обороты, поля: Контрагент, Номенклатура, поместить в ВТ2 Проиндексировать таблицу по ссылке номенклатуры и контрагенту
3) Внутреннее соединение ВТ1 и ВТ2 по номенклатуре. Все в ВТ3
4) ВЫБРАТЬ Адреса.Объект, Адреса.Представление, "" Из РегистрСведений.КонтактнаяИнформация КАК Адреса ГДЕ Адреса.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ЮрАдресКонтрагента) И ВЫРАЗИТЬ(Адреса.Объект КАК Справочник.Контрагенты) В (Выбрать ВТ2 .Контрагент ИЗ ВТ2 КАК ВТ2) Объединить ВСЕ ВЫБРАТЬ Адреса.Объект, "", Адреса.Представление Из РегистрСведений.КонтактнаяИнформация КАК Адреса ГДЕ Адреса.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ФактАдресКонтрагента) И ВЫРАЗИТЬ(Адреса.Объект КАК Справочник.Контрагенты) В (Выбрать ВТ2 .Контрагент ИЗ ВТ2 КАК ВТ2)
5) .... Левые соединения
13. greatsnake 23.10.18 15:28 Сейчас в теме
(7) Если SalesWorks тогда в принципе не стоит так делать, т.к. в выгрузку не попадут торговые точки(контрагенты) по которым не было продаж, но по которым были какие внутренние перемещения или торговая точка новая и вообще не было никаких движений, но она должна выгрузиться чтобы потом торговый мог сделать заказ на неё. Можно конечно наложить какие либо фильтры(по группе, по организации,...) но привязываться к продажам точно не стоит.
10. XiPyPg 23.10.18 11:47 Сейчас в теме
Периодичность месяц ставишь и тогда все работает. Вопрос почему не рабоет если указан период.
14. DimDiemon 80 24.10.18 10:10 Сейчас в теме
(10)Продажа-возврат не схлопывает обороты до 0 в большом периоде?
15. Scukosan 25.10.18 12:32 Сейчас в теме
(14) DimDiemon прав
Так как в большом периоде происходит схлопывание оборотов (приход равен расходу), то такие записи не попадают в результат запроса.
В зависимости от ситуации приходилось ставить различную периодичность месяц/день и в особых случаях регистратор/запись :)
Потом сворачивал результат.
16. herfis 513 25.10.18 12:37 Сейчас в теме
(15) "Схлопывание" может произойти только при сторнировании оборотов. Равенство приходов и расходов к такому результату привести не может.
Но в случае сторнирования "схлопывание" - абсолютно корректный результат.
ЗЫ. Хотя если возвраты сторнируют продажи, то да - возникает классическая проблема свернутых/развернутых данных. Без нужной детализации или специального расчета "чистые" продажи будут рассчитаны некорректно.
17. DimDiemon 80 25.10.18 13:44 Сейчас в теме
(16)Продажи - оборотный регистр, там нет приход-расход.
18. herfis 513 25.10.18 13:46 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот