Вход | Регистрация

1С:Предприятие ::

Метки: 

Простой запрос в консоли и скд выполняется по разному

Я
   Sam1C
 
19.11.17 - 21:33
Добрый вечер! Обычным способ запрос  выдает нужные данные в скд тот же запрос иные. Суть выбирается из регистра накопления отрицательные остатки в разрезе номенклатуры и склада помещаются в ВТ и вторым запрос выбираются остатки в разрезе Номенклатуры и склада по уже приготовленным в ВТ Номенклатуре. В СКД выдаются данные без учета склада, т.е. выдаются только те Номенклатуры, которые имеют минус только в измерении Номенклатура, без СКД все выдается правильно с учетом склада. Собственно запрос:

ВЫБРАТЬ
    Товары.Склад КАК Склад,
    Товары.Номенклатура КАК Номенклатура,
    Товары.КоличествоКонечныйОстаток КАК КоличествоОстаток
ПОМЕСТИТЬ ТоварыСминусом
ИЗ
    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты КАК Товары
ГДЕ
    Товары.КоличествоКонечныйОстаток < 0
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    ТоварыНаСкладахОстаткиИОбороты.Склад КАК Склад,
    ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
    СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КоличествоОстаток
{ВЫБРАТЬ
    Склад.*,
    Номенклатура.*,
    КоличествоОстаток}
ИЗ
    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(
            ,
            ,
            ,
            ,
            Номенклатура В
                (ВЫБРАТЬ РАЗЛИЧНЫЕ
                    ТоварыСминусом.Номенклатура
                ИЗ
                    ТоварыСминусом)) КАК ТоварыНаСкладахОстаткиИОбороты

СГРУППИРОВАТЬ ПО
    ТоварыНаСкладахОстаткиИОбороты.Склад,
    ТоварыНаСкладахОстаткиИОбороты.Номенклатура

Если за комментировать "Товары.Склад КАК Склад," в ПЕРВОМ запросе, то в консоле выдаст также как и в СКД.
 
 
   Cyberhawk
 
1 - 19.11.17 - 21:36
Настройки СКД влияют на результирующий запрос
   Sam1C
 
2 - 19.11.17 - 21:39
(0) Если в СКД отправляю первый запрос отдельно, выдает все правильно, т.е. в виртуальной таблице данные верные, список ТМЦ для дальнейшей обработки верен. Но в итог попадает не вся Номенклатура, а только та которая отрицательна только по измерению "Номенклатура"
   Sam1C
 
3 - 19.11.17 - 21:41
(1) да я 3 часа уже мучаюсь, не каких вообще отборов или настроек нет в СКД, голый запрос и вывод детальных записей
   Cyberhawk
 
4 - 19.11.17 - 21:41
"только та которая отрицательна только по измерению "Номенклатура"" // Ну так ты же сам ставишь этот фильтр во втором запросе
   Sam1C
 
5 - 19.11.17 - 21:45
(4) Во втором запросе фильтр по списку Номенклатуры. Первый запрос сформировал список из 10 уникальных Номенклатур к примеру. Но второй выдает только 4, хотя должен выдать этих 10. Тем более НЕ в СКД он и выдает эти 10.
   Sam1C
 
6 - 19.11.17 - 21:51
(5) Опытным путем было просто установлено, что эти 4-ре которые в свернутом виде по измерению Номенклатура с минусом. Т. е. если "Товар А" на "Складе№1" - минус 10,  а на "Складе№2" плюс 10, То в СКД он не попадает (свернуто Товар А = 0), а в запросе без СКД попадает.
   Sam1C
 
7 - 19.11.17 - 22:42
Дело в 1 -ом запросе, а именно в помещении в ВТ, если не помещать в ВТ выдает верные данные, если поместить в ВТ, а потом достать список, выдает не полный список и именно в СКД, обычным запросом все ок. Ниже запрос выдает разные данные:

ВЫБРАТЬ
    Товары.Склад КАК Склад,
    Товары.Номенклатура КАК Номенклатура
ПОМЕСТИТЬ ТоварыСминусом
ИЗ
    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты КАК Товары
ГДЕ
    Товары.КоличествоКонечныйОстаток < 0
;
////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    ТоварыСминусом.Номенклатура
ИЗ
    ТоварыСминусом КАК ТоварыСминусом

СГРУППИРОВАТЬ ПО
    ТоварыСминусом.Номенклатура
   Sam1C
 
8 - 19.11.17 - 22:44
(7) Если не помещать в ВТ, то СКД дает верные данные. Такое ощущение, что при помещении в ВТ, что-то ни то происходит
   Sam1C
 
9 - 19.11.17 - 22:52
(0) Нервы не выдержали переписал запрос на вложенное условие, заработало и  в СКД:
ВЫБРАТЬ
    ТоварыНаСкладахОстаткиИОбороты.Склад КАК Склад,
    ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
    СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КоличествоОстаток
{ВЫБРАТЬ
    Склад.*,
    Номенклатура.*,
    КоличествоОстаток}
ИЗ
    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты КАК ТоварыНаСкладахОстаткиИОбороты
ГДЕ
    ТоварыНаСкладахОстаткиИОбороты.Номенклатура В
            (ВЫБРАТЬ
                ОтборТМЦ.Номенклатура
            ИЗ
                (ВЫБРАТЬ
                    Товары.Склад КАК Склад,
                    Товары.Номенклатура КАК Номенклатура
                ИЗ
                    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты КАК Товары
                ГДЕ
                    Товары.КоличествоКонечныйОстаток < 0
                ) КАК ОтборТМЦ)

СГРУППИРОВАТЬ ПО
    ТоварыНаСкладахОстаткиИОбороты.Склад,
    ТоварыНаСкладахОстаткиИОбороты.Номенклатура
   Franchiser
 
10 - 19.11.17 - 23:14
Напиши в первом запросе другие имена полей, например, как Склад_ВТ, как Номенклатурп_ВТ
 
  Рекламное место пустует
   Franchiser
 
11 - 19.11.17 - 23:19
Оптимизатор СКД у тебя везде склад просто выкидывает, т.к. поле не используется и не помечено как обязательное
   TormozIT
 
12 - 20.11.17 - 07:21
Посмотри запрос, который получается в макете компоновки и станет понятно в чем дело. Его можно посмотреть например в консоли компоновки ИР https://www.youtube.com/watch?v=0LKGaFo9tXw
   Sam1C
 
13 - 20.11.17 - 10:04
(11) (12) Спасибо, точно оптимизатор убирает первую строку запроса в этом и была проблема.
   Sam1C
 
14 - 20.11.17 - 10:23
(10) только это не помогает и   Роль "Склад" - Измерение, Обязательное, но роль я так понимаю на результирующий запрос влияет, а не на ВТ.
   DexterMorgan
 
15 - 20.11.17 - 10:51
(14) Начальный и конечный остаток нужно всегда вместе выбирать
   Buster007
 
16 - 20.11.17 - 10:54
снимаешь галку "Автозаполнение"
   Cyberhawk
 
17 - 20.11.17 - 10:56
(14) Так твое поле Склад из первой ВТ нигде не используется, вот оно и не выбирается. Хоть зауказывайся.
   Sam1C
 
18 - 20.11.17 - 11:05
(16) Снимал галку, не спасает.


Список тем форума
  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует