|
Простой запрос в консоли и скд выполняется по разному | ☑ | ||
---|---|---|---|---|
0
Sam1C
19.11.17
✎
21:33
|
Добрый вечер! Обычным способ запрос выдает нужные данные в скд тот же запрос иные. Суть выбирается из регистра накопления отрицательные остатки в разрезе номенклатуры и склада помещаются в ВТ и вторым запрос выбираются остатки в разрезе Номенклатуры и склада по уже приготовленным в ВТ Номенклатуре. В СКД выдаются данные без учета склада, т.е. выдаются только те Номенклатуры, которые имеют минус только в измерении Номенклатура, без СКД все выдается правильно с учетом склада. Собственно запрос:
ВЫБРАТЬ Товары.Склад КАК Склад, Товары.Номенклатура КАК Номенклатура, Товары.КоличествоКонечныйОстаток КАК КоличествоОстаток ПОМЕСТИТЬ ТоварыСминусом ИЗ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты КАК Товары ГДЕ Товары.КоличествоКонечныйОстаток < 0 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ТоварыНаСкладахОстаткиИОбороты.Склад КАК Склад, ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура, СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КоличествоОстаток {ВЫБРАТЬ Склад.*, Номенклатура.*, КоличествоОстаток} ИЗ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты( , , , , Номенклатура В (ВЫБРАТЬ РАЗЛИЧНЫЕ ТоварыСминусом.Номенклатура ИЗ ТоварыСминусом)) КАК ТоварыНаСкладахОстаткиИОбороты СГРУППИРОВАТЬ ПО ТоварыНаСкладахОстаткиИОбороты.Склад, ТоварыНаСкладахОстаткиИОбороты.Номенклатура Если за комментировать "Товары.Склад КАК Склад," в ПЕРВОМ запросе, то в консоле выдаст также как и в СКД. |
|||
1
Cyberhawk
19.11.17
✎
21:36
|
Настройки СКД влияют на результирующий запрос
|
|||
2
Sam1C
19.11.17
✎
21:39
|
(0) Если в СКД отправляю первый запрос отдельно, выдает все правильно, т.е. в виртуальной таблице данные верные, список ТМЦ для дальнейшей обработки верен. Но в итог попадает не вся Номенклатура, а только та которая отрицательна только по измерению "Номенклатура"
|
|||
3
Sam1C
19.11.17
✎
21:41
|
(1) да я 3 часа уже мучаюсь, не каких вообще отборов или настроек нет в СКД, голый запрос и вывод детальных записей
|
|||
4
Cyberhawk
19.11.17
✎
21:41
|
"только та которая отрицательна только по измерению "Номенклатура"" // Ну так ты же сам ставишь этот фильтр во втором запросе
|
|||
5
Sam1C
19.11.17
✎
21:45
|
(4) Во втором запросе фильтр по списку Номенклатуры. Первый запрос сформировал список из 10 уникальных Номенклатур к примеру. Но второй выдает только 4, хотя должен выдать этих 10. Тем более НЕ в СКД он и выдает эти 10.
|
|||
6
Sam1C
19.11.17
✎
21:51
|
(5) Опытным путем было просто установлено, что эти 4-ре которые в свернутом виде по измерению Номенклатура с минусом. Т. е. если "Товар А" на "Складе№1" - минус 10, а на "Складе№2" плюс 10, То в СКД он не попадает (свернуто Товар А = 0), а в запросе без СКД попадает.
|
|||
7
Sam1C
19.11.17
✎
22:42
|
Дело в 1 -ом запросе, а именно в помещении в ВТ, если не помещать в ВТ выдает верные данные, если поместить в ВТ, а потом достать список, выдает не полный список и именно в СКД, обычным запросом все ок. Ниже запрос выдает разные данные:
ВЫБРАТЬ Товары.Склад КАК Склад, Товары.Номенклатура КАК Номенклатура ПОМЕСТИТЬ ТоварыСминусом ИЗ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты КАК Товары ГДЕ Товары.КоличествоКонечныйОстаток < 0 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ТоварыСминусом.Номенклатура ИЗ ТоварыСминусом КАК ТоварыСминусом СГРУППИРОВАТЬ ПО ТоварыСминусом.Номенклатура |
|||
8
Sam1C
19.11.17
✎
22:44
|
(7) Если не помещать в ВТ, то СКД дает верные данные. Такое ощущение, что при помещении в ВТ, что-то ни то происходит
|
|||
9
Sam1C
19.11.17
✎
22:52
|
(0) Нервы не выдержали переписал запрос на вложенное условие, заработало и в СКД:
ВЫБРАТЬ ТоварыНаСкладахОстаткиИОбороты.Склад КАК Склад, ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура, СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КоличествоОстаток {ВЫБРАТЬ Склад.*, Номенклатура.*, КоличествоОстаток} ИЗ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты КАК ТоварыНаСкладахОстаткиИОбороты ГДЕ ТоварыНаСкладахОстаткиИОбороты.Номенклатура В (ВЫБРАТЬ ОтборТМЦ.Номенклатура ИЗ (ВЫБРАТЬ Товары.Склад КАК Склад, Товары.Номенклатура КАК Номенклатура ИЗ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты КАК Товары ГДЕ Товары.КоличествоКонечныйОстаток < 0 ) КАК ОтборТМЦ) СГРУППИРОВАТЬ ПО ТоварыНаСкладахОстаткиИОбороты.Склад, ТоварыНаСкладахОстаткиИОбороты.Номенклатура |
|||
10
Franchiser
гуру
19.11.17
✎
23:14
|
Напиши в первом запросе другие имена полей, например, как Склад_ВТ, как Номенклатурп_ВТ
|
|||
11
Franchiser
гуру
19.11.17
✎
23:19
|
Оптимизатор СКД у тебя везде склад просто выкидывает, т.к. поле не используется и не помечено как обязательное
|
|||
12
TormozIT
гуру
20.11.17
✎
07:21
|
Посмотри запрос, который получается в макете компоновки и станет понятно в чем дело. Его можно посмотреть например в консоли компоновки ИР https://www.youtube.com/watch?v=0LKGaFo9tXw
|
|||
13
Sam1C
20.11.17
✎
10:04
|
(11) (12) Спасибо, точно оптимизатор убирает первую строку запроса в этом и была проблема.
|
|||
14
Sam1C
20.11.17
✎
10:23
|
(10) только это не помогает и Роль "Склад" - Измерение, Обязательное, но роль я так понимаю на результирующий запрос влияет, а не на ВТ.
|
|||
15
DexterMorgan
20.11.17
✎
10:51
|
(14) Начальный и конечный остаток нужно всегда вместе выбирать
|
|||
16
Buster007
20.11.17
✎
10:54
|
снимаешь галку "Автозаполнение"
|
|||
17
Cyberhawk
20.11.17
✎
10:56
|
(14) Так твое поле Склад из первой ВТ нигде не используется, вот оно и не выбирается. Хоть зауказывайся.
|
|||
18
Sam1C
20.11.17
✎
11:05
|
(16) Снимал галку, не спасает.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |