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

1С:Предприятие :: 1С:Предприятие 8 общая

Помогите с запросом СКД УТ 11

Помогите с запросом СКД УТ 11
Я
   plur
 
30.10.18 - 15:19
Здравствуйте!

Платформа 8.3.10.2667, конфа УТ 11.1, стандартная. Запрос для отчета (СКД), по отдельности части отрабатывают так как нужно, но при попытках объединить все это в одну таблицу начинаются косяки. Первая часть отрабатывает как нужно, остальное - полный хаос. Не могу найти ошибку, хоть убей, вроде все правильно делаю.
З.Ы. Почему то очень долго выводит результат, хотя период всего сутки.
З.З.Ы. Запрос во вложении, сюда криво копипастится.
Где может быть проблема?

<spoiler>
ВЫБРАТЬ
    ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура.Код КАК Код,
    ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
    ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    СУММА(ВыручкаИСебестоимостьПродажОбороты.КоличествоОборот) КАК Количество,
    СУММА(ВЫРАЗИТЬ(ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот / ВыручкаИСебестоимостьПродажОбороты.КоличествоОборот КАК ЧИСЛО(15, 2))) КАК ЦенаЗаЕдиницу,
    СУММА(ВЫРАЗИТЬ(ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот - ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот * ВЫБОР
                КОГДА ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС18)
                        ИЛИ ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС18_118)
                    ТОГДА 0.18
                КОГДА ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС10)
                        ИЛИ ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС10_110)
                    ТОГДА 0.1
                КОГДА ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС0)
                        ИЛИ ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.БезНДС)
                    ТОГДА 0
                ИНАЧЕ 0
            КОНЕЦ КАК ЧИСЛО(15, 2))) КАК БезНДС,
    СУММА(ВЫРАЗИТЬ(ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот * ВЫБОР
                КОГДА ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС18)
                        ИЛИ ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС18_118)
                    ТОГДА 0.18
                КОГДА ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС10)
                        ИЛИ ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС10_110)
                    ТОГДА 0.1
                КОГДА ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС0)
                        ИЛИ ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.БезНДС)
                    ТОГДА 0
                ИНАЧЕ 0
            КОНЕЦ КАК ЧИСЛО(15, 2))) КАК НДС,
    СУММА(ВЫРАЗИТЬ(ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот КАК ЧИСЛО(15, 2))) КАК СНДС
ПОМЕСТИТЬ Продажи
ИЗ
    РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&Дата, КОНЕЦПЕРИОДА(&Дата, ДЕНЬ), , ) КАК ВыручкаИСебестоимостьПродажОбороты

СГРУППИРОВАТЬ ПО
    ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура.Код,
    ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура.ЕдиницаИзмерения,
    ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура
;

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

ВЫБРАТЬ
    СебестоимостьТоваровОстатки.АналитикаУчетаНоменклатуры.Номенклатура.Код КАК Код,
    СебестоимостьТоваровОстатки.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
    СебестоимостьТоваровОстатки.АналитикаУчетаНоменклатуры.Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    СУММА(СебестоимостьТоваровОстатки.КоличествоОстаток) КАК Количество_Остаток,
    СУММА(ВЫРАЗИТЬ(ВЫБОР
                КОГДА СебестоимостьТоваровОстатки.КоличествоОстаток = 0
                    ТОГДА 0
                ИНАЧЕ СебестоимостьТоваровОстатки.СтоимостьОстаток / СебестоимостьТоваровОстатки.КоличествоОстаток
            КОНЕЦ КАК ЧИСЛО(15, 2))) КАК ЦенаЗаЕдиницу_Остаток,
    СУММА(СебестоимостьТоваровОстатки.СтоимостьБезНДСОстаток) КАК СуммаБезНДС_Остаток,
    СУММА(ВЫРАЗИТЬ(СебестоимостьТоваровОстатки.СтоимостьБезНДСОстаток * ВЫБОР
                КОГДА СебестоимостьТоваровОстатки.АналитикаУчетаНоменклатуры.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС18)
                        ИЛИ СебестоимостьТоваровОстатки.АналитикаУчетаНоменклатуры.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС18_118)
                    ТОГДА 0.18
                КОГДА СебестоимостьТоваровОстатки.АналитикаУчетаНоменклатуры.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС10)
                        ИЛИ СебестоимостьТоваровОстатки.АналитикаУчетаНоменклатуры.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС10_110)
                    ТОГДА 0.1
                КОГДА СебестоимостьТоваровОстатки.АналитикаУчетаНоменклатуры.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС0)
                        ИЛИ СебестоимостьТоваровОстатки.АналитикаУчетаНоменклатуры.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.БезНДС)
                    ТОГДА 0
                ИНАЧЕ 0
            КОНЕЦ КАК ЧИСЛО(15, 2))) КАК НДС_Остаток,
    СУММА(СебестоимостьТоваровОстатки.СтоимостьОстаток) КАК СуммаСНДС_Остаток
ПОМЕСТИТЬ Остатки
ИЗ
    РегистрНакопления.СебестоимостьТоваров.Остатки(КОНЕЦПЕРИОДА(&Дата, ДЕНЬ), ) КАК СебестоимостьТоваровОстатки

СГРУППИРОВАТЬ ПО
    СебестоимостьТоваровОстатки.АналитикаУчетаНоменклатуры.Номенклатура.Код,
    СебестоимостьТоваровОстатки.АналитикаУчетаНоменклатуры.Номенклатура,
    СебестоимостьТоваровОстатки.АналитикаУчетаНоменклатуры.Номенклатура.ЕдиницаИзмерения
;

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

ВЫБРАТЬ
    СебестоимостьТоваровОбороты.АналитикаУчетаНоменклатуры.Номенклатура.Код КАК Код,
    СебестоимостьТоваровОбороты.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
    СебестоимостьТоваровОбороты.АналитикаУчетаНоменклатуры.Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    СебестоимостьТоваровОбороты.КоличествоПриход КАК Количество_Закупка,
    ВЫРАЗИТЬ(ВЫБОР
            КОГДА СебестоимостьТоваровОбороты.КоличествоПриход = 0
                ТОГДА 0
            ИНАЧЕ СебестоимостьТоваровОбороты.СтоимостьПриход / СебестоимостьТоваровОбороты.КоличествоПриход
        КОНЕЦ КАК ЧИСЛО(15, 2)) КАК ЦенаЗаЕдиницу_Закупка,
    СебестоимостьТоваровОбороты.СтоимостьБезНДСПриход КАК СуммаБезНДС_Закупка,
    ВЫРАЗИТЬ(СебестоимостьТоваровОбороты.СуммаДопРасходовБезНДСПриход * ВЫБОР
            КОГДА СебестоимостьТоваровОбороты.АналитикаУчетаНоменклатуры.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС18)
                    ИЛИ СебестоимостьТоваровОбороты.АналитикаУчетаНоменклатуры.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС18_118)
                ТОГДА 0.18
            КОГДА СебестоимостьТоваровОбороты.АналитикаУчетаНоменклатуры.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС10)
                    ИЛИ СебестоимостьТоваровОбороты.АналитикаУчетаНоменклатуры.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС10_110)
                ТОГДА 0.1
            КОГДА СебестоимостьТоваровОбороты.АналитикаУчетаНоменклатуры.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС0)
                    ИЛИ СебестоимостьТоваровОбороты.АналитикаУчетаНоменклатуры.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.БезНДС)
                ТОГДА 0
            ИНАЧЕ 0
        КОНЕЦ КАК ЧИСЛО(15, 2)) КАК НДС_Закупка,
    СебестоимостьТоваровОбороты.СтоимостьПриход КАК СуммаСНДС_Закупка
ПОМЕСТИТЬ Закупки
ИЗ
    РегистрНакопления.СебестоимостьТоваров.Обороты(&Дата, КОНЕЦПЕРИОДА(&Дата, ДЕНЬ), , ) КАК СебестоимостьТоваровОбороты
;

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

ВЫБРАТЬ
    СебестоимостьТоваровОстатки.АналитикаУчетаНоменклатуры.Номенклатура.Код КАК Код_КонОст,
    СебестоимостьТоваровОстатки.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура_КонОст,
    СебестоимостьТоваровОстатки.АналитикаУчетаНоменклатуры.Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения_КонОст,
    СебестоимостьТоваровОстатки.КоличествоОстаток КАК КоличествоОстаток_КонОст
ПОМЕСТИТЬ КонечныйОстаток
ИЗ
    РегистрНакопления.СебестоимостьТоваров.Остатки(КОНЕЦПЕРИОДА(&Дата, ДЕНЬ), ) КАК СебестоимостьТоваровОстатки
;

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

ВЫБРАТЬ
    ЕСТЬNULL(Продажи.Код, ЕСТЬNULL(Закупки.Код, Остатки.Код)) КАК Код,
    ЕСТЬNULL(Продажи.Номенклатура, ЕСТЬNULL(Закупки.Номенклатура, Остатки.Номенклатура)) КАК Номенклатура,
    ЕСТЬNULL(Продажи.ЕдиницаИзмерения, ЕСТЬNULL(Закупки.ЕдиницаИзмерения, Остатки.ЕдиницаИзмерения)) КАК ЕдиницаИзмерения,
    СУММА(Остатки.Количество_Остаток) КАК Количество_Остаток,
    СУММА(Остатки.ЦенаЗаЕдиницу_Остаток) КАК ЦенаЗаЕдиницу_Остаток,
    СУММА(Остатки.СуммаБезНДС_Остаток) КАК СуммаБезНДС_Остаток,
    СУММА(Остатки.НДС_Остаток) КАК НДС_Остаток,
    СУММА(Остатки.СуммаСНДС_Остаток) КАК СуммаСНДС_Остаток,
    СУММА(Закупки.Количество_Закупка) КАК Количество_Закупка,
    СУММА(Закупки.ЦенаЗаЕдиницу_Закупка) КАК ЦенаЗаЕдиницу_Закупка,
    СУММА(Закупки.СуммаБезНДС_Закупка) КАК СуммаБезНДС_Закупка,
    СУММА(Закупки.НДС_Закупка) КАК НДС_Закупка,
    СУММА(Закупки.СуммаСНДС_Закупка) КАК СуммаСНДС_Закупка,
    СУММА(Продажи.Количество) КАК Количество_Продажи,
    СУММА(Продажи.ЦенаЗаЕдиницу) КАК ЦенаЗаЕдиницу_Продажи,
    СУММА(Продажи.БезНДС) КАК СуммаБезНДС_Продажи,
    СУММА(Продажи.НДС) КАК НДС_Продажи,
    СУММА(Продажи.СНДС) КАК СуммаСНДС_Продажи
ИЗ
    Продажи КАК Продажи
        ПОЛНОЕ СОЕДИНЕНИЕ Остатки КАК Остатки
        ПО Продажи.Номенклатура = Остатки.Номенклатура
        ПОЛНОЕ СОЕДИНЕНИЕ Закупки КАК Закупки
        ПО Продажи.Номенклатура = Закупки.Номенклатура,
    КонечныйОстаток КАК КонечныйОстаток

СГРУППИРОВАТЬ ПО
    ЕСТЬNULL(Продажи.Номенклатура, ЕСТЬNULL(Закупки.Номенклатура, Остатки.Номенклатура)),
    ЕСТЬNULL(Продажи.ЕдиницаИзмерения, ЕСТЬNULL(Закупки.ЕдиницаИзмерения, Остатки.ЕдиницаИзмерения)),
    ЕСТЬNULL(Продажи.Код, ЕСТЬNULL(Закупки.Код, Остатки.Код))
</spoiler>
 
 
   DexterMorgan
 
1 - 30.10.18 - 15:25
(0) В УТ11 В выручке и себестоимости продаж специально же есть ресурс "СуммаВыручкиБезНДС", зачем ты его высчитываешь? К тому же как ты это делаешь смысла вообще нет
   DexterMorgan
 
2 - 30.10.18 - 15:28
Полное соединение замени на объединение
   DexterMorgan
 
3 - 30.10.18 - 15:29
Кароче вообще все переписать надо
   IvanGorbunov
 
4 - 30.10.18 - 15:31
Скажите хотя-бы что вы хотите видеть и что получается
   ИС-2
 
5 - 30.10.18 - 15:34
(0) как же ситуация, когда НДС 20% ?
   plur
 
6 - 30.10.18 - 15:35
(4) код - номенклатура - ед.изм. дальше 
Начальный остаток (Кол-во, Цена за ед, Без НДС, НДС, С НДС)
Закупка (Такие же колонки)
Продажи (Такие же колонки)
Конечный остаток

Первая часть (Остаток) заполняется нормально, все остальное в основном NULL. 

(1) Тут косяк. Поправил. Но я так понимаю что дело не в этом конкретном поле.
   plur
 
7 - 30.10.18 - 15:36
(5) Добавить недолго, пока не до него :)
   DexterMorgan
 
8 - 30.10.18 - 15:41
(5) Интереснее когда УСН продает товар, в карточке которого стоит ндс 18
   DexterMorgan
 
9 - 30.10.18 - 15:42
(6) фигня это. А перемещения, списания и т.д.
Что показывает отчет у которого н.о. + приход - расход <> к.о.?
   plur
 
10 - 30.10.18 - 15:48
(9) О каком отчете речь? По поводу перемещений и прочего, это не я придумал, нужен именно такой \o/
 
 Рекламное место пустует
   DexterMorgan
 
11 - 30.10.18 - 15:50
(10) Чему равно &Дата? точно к началу дня приведена?
   plur
 
12 - 30.10.18 - 15:50
(2) Остается только первая таблица (может я не понимаю чего)
   plur
 
13 - 30.10.18 - 15:50
(11) Да, 00:00:00

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