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

СКД некорректно формирует отчет

СКД некорректно формирует отчет
Я
   Alex Проблемный
 
04.09.20 - 09:16
Доброго времени суток!
1С 8.3 УНФ 1.6
Через консоль запросов результат корректный, а через СКД два ресурса как будто умножаются на какой-то коэффициент.
На пример сейчас отчет выдает:
Заказ 1 Номенклатура 1 Характеристика 1 В заказе 5 Разложено 15 Раскроено 15 Произведено 5
Заказ 1 Номенклатура 1 Характеристика 2 В заказе 1 Разложено 3 Раскроено 3 Произведено 1
Заказ 1 Номенклатура 2 Характеристика 3 В заказе 2 Разложено 6 Раскроено 6 Произведено 2
а через консоль запросов:
Заказ 1 Номенклатура 1 Характеристика 1 В заказе 5 Разложено 5 Раскроено 5 Произведено 5
Заказ 1 Номенклатура 1 Характеристика 2 В заказе 1 Разложено 1 Раскроено 1 Произведено 1
Заказ 1 Номенклатура 2 Характеристика 3 В заказе 2 Разложено 2 Раскроено 2 Произведено 2

Пробовал изменять запрос: разбил на несколько временных таблиц, результат тот же.
Ошибка какая то дурацкая, но не могу найти, мб кто нибудь сталкивался.
Ещё кто нибудь знает где УНФ хранит варианты отчетов и как их почистить, т.к. заметил что если я делаю копию отчета, корректирую его и запускаю через файл открыть то не водятся показатели и настройки автоматом от предыдущего файла(отчета) заполняются - пробовал восстановить настройки по умолчанию - не помогло
   CODA
 
1 - 04.09.20 - 09:48
консоль может выводить по другому данные 

лучше сразу в скд лепить  

под другим пользователем запускать отчет . по умолчанию не сбросишь .
   Alex Проблемный
 
2 - 04.09.20 - 09:51
(1) Так сразу в СКД и делал, это потом уже проверял когда понял что что-то не так
   dka80
 
3 - 04.09.20 - 10:06
Возможно, стоит обратить внимание на колонку Роль в СКД в наборе данных
   Pro-tone
 
4 - 04.09.20 - 10:39
Замечено, что отчеты на СКД используют кэш с диска, который достаточно долго может не очищаться автоматически, после нескольких перезапусков, и выдавать старые данные по запросу, который был написан ранее
   Alex Проблемный
 
5 - 04.09.20 - 10:43
(4) Кэш на сервере и у пользователя на компе?
   Pro-tone
 
6 - 04.09.20 - 10:45
(5) на клиенте - у пользователя на компе
   Alex Проблемный
 
7 - 04.09.20 - 10:48
(3) Измерением является только Заказ, Номенклатура, Характеристика. Вроде всё норм
   Franchiser
 
8 - 04.09.20 - 10:55
(0) что сложно посмотреть запрос в макете компоновки, сгенерировканный скд?
   Alex Проблемный
 
9 - 04.09.20 - 10:56
(8) как?
   Franchiser
 
10 - 04.09.20 - 11:01
(9) 1) Взять консоль компоновки, которая позволяет получить запрос макета компоновки (например, консоль ИР)
или
2)  сформировать программно отчет СКД, и в нужном месте поставить точку останова в отладчике и посмотреть запрос в макете.
   Franchiser
 
11 - 04.09.20 - 11:06
(0) запрос покажешь?
   Franchiser
 
12 - 04.09.20 - 11:07
у тебя умножение на 3
   Franchiser
 
13 - 04.09.20 - 11:11
(0) если отчет добавлен базу, то схема будет браться из отчета во внешних обработок, даже если через файл открыть. Если хочешь отлаживать то временно сгенерируй отчету форму. Кеш не причем.
   d4rkmesa
 
14 - 04.09.20 - 11:12
(7) Скорее всего измерения Характеристика выкидывается из запроса(не выбрано, например, но участвует в соединениях), попробуйте в этих измерения в ролях поставить галочку "Обязательное".
   Franchiser
 
15 - 04.09.20 - 11:13
(14) еще иногда помогает добавлять в формируемых ВТ поля в группировки, но не добавлять в поля, если далее в запросе поля не используются.
   d4rkmesa
 
16 - 04.09.20 - 11:13
(14) Хотя нет, не Характеристика, что-то другое... И тем не менее, проверьте роли.
   Alex Проблемный
 
17 - 04.09.20 - 11:17
ЗАПРОС:
ВЫБРАТЬ
    ИсторияСостоянийЗаказовСрезПоследних.Заказ КАК Заказ,
    ИсторияСостоянийЗаказовСрезПоследних.Состояние КАК Состояние,
    ИсторияСостоянийЗаказовСрезПоследних.Заказ.ВидЗаказа КАК ЗаказВидЗаказа
ПОМЕСТИТЬ ВТ_СостояниеЗаказов
ИЗ
    РегистрСведений.ИсторияСостоянийЗаказов.СрезПоследних(&КонецПериода, ) КАК ИсторияСостоянийЗаказовСрезПоследних
ГДЕ
    ИсторияСостоянийЗаказовСрезПоследних.Заказ.Дата МЕЖДУ &НачалоПериода И &КонецПериода

СГРУППИРОВАТЬ ПО
    ИсторияСостоянийЗаказовСрезПоследних.Заказ,
    ИсторияСостоянийЗаказовСрезПоследних.Состояние,
    ИсторияСостоянийЗаказовСрезПоследних.Заказ.ВидЗаказа
;

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

ВЫБРАТЬ
    F_ДвиженияПродукцииОстаткиИОбороты.ЗаказПокупателя КАК ЗаказПокупателя,
    F_ДвиженияПродукцииОстаткиИОбороты.ЗаказНаПроизводство КАК ЗаказНаПроизводство,
    F_ДвиженияПродукцииОстаткиИОбороты.Номенклатура КАК Номенклатура,
    F_ДвиженияПродукцииОстаткиИОбороты.Характеристика КАК Характеристика,
    ВложенныйЗапрос.Цена / ВложенныйЗапрос.Количество КАК СрЦена,
    СУММА(ВложенныйЗапрос.Количество) КАК КоличествоВЗаказе,
    ЕСТЬNULL(F_ДвиженияПродукцииОстаткиИОбороты.КройРасход, 0) КАК Скомплектовано,
    СУММА(ЕСТЬNULL(F_ДвиженияПродукцииОстаткиИОбороты.КройКонечныйОстаток, 0)) КАК ОсталосьСкомплектовать,
    ЕСТЬNULL(F_ДвиженияПродукцииОстаткиИОбороты.ШвейныйРасход, 0) КАК Отшито,
    СУММА(ЕСТЬNULL(F_ДвиженияПродукцииОстаткиИОбороты.ШвейныйКонечныйОстаток, 0)) КАК ОсталосьОтшить,
    СУММА(ЕСТЬNULL(F_ДвиженияПродукцииОстаткиИОбороты.БракПриход, 0)) КАК Брак,
    ВТ_СостояниеЗаказов.ЗаказВидЗаказа КАК Направление
ПОМЕСТИТЬ Т_Остатки
ИЗ
    РегистрНакопления.F_ДвиженияПродукции.ОстаткиИОбороты(
            ,
            ,
            ,
            ,
            ЗаказПокупателя В
                (ВЫБРАТЬ
                    ВТ_СостояниеЗаказов.Заказ КАК ЗаказПокупателя
                ИЗ
                    ВТ_СостояниеЗаказов КАК ВТ_СостояниеЗаказов
                ГДЕ
                    ВТ_СостояниеЗаказов.Состояние В (&Состояние))) КАК F_ДвиженияПродукцииОстаткиИОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ЗаказПокупателяЗапасы.Ссылка КАК Ссылка,
            ЗаказПокупателяЗапасы.Номенклатура КАК Номенклатура,
            ЗаказПокупателяЗапасы.Характеристика КАК Характеристика,
            СУММА(ЗаказПокупателяЗапасы.Количество) КАК Количество,
            СУММА(ЗаказПокупателяЗапасы.Цена * ЗаказПокупателяЗапасы.Количество) КАК Цена
        ИЗ
            Документ.ЗаказПокупателя.Запасы КАК ЗаказПокупателяЗапасы
        
        СГРУППИРОВАТЬ ПО
            ЗаказПокупателяЗапасы.Ссылка,
            ЗаказПокупателяЗапасы.Номенклатура,
            ЗаказПокупателяЗапасы.Характеристика) КАК ВложенныйЗапрос
        ПО F_ДвиженияПродукцииОстаткиИОбороты.ЗаказПокупателя = ВложенныйЗапрос.Ссылка
            И F_ДвиженияПродукцииОстаткиИОбороты.Номенклатура = ВложенныйЗапрос.Номенклатура
            И F_ДвиженияПродукцииОстаткиИОбороты.Характеристика = ВложенныйЗапрос.Характеристика
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_СостояниеЗаказов КАК ВТ_СостояниеЗаказов
        ПО F_ДвиженияПродукцииОстаткиИОбороты.ЗаказПокупателя = ВТ_СостояниеЗаказов.Заказ
ГДЕ
    F_ДвиженияПродукцииОстаткиИОбороты.ЗаказКонечныйОстаток <> 0

СГРУППИРОВАТЬ ПО
    F_ДвиженияПродукцииОстаткиИОбороты.ЗаказПокупателя,
    F_ДвиженияПродукцииОстаткиИОбороты.ЗаказНаПроизводство,
    F_ДвиженияПродукцииОстаткиИОбороты.Номенклатура,
    F_ДвиженияПродукцииОстаткиИОбороты.Характеристика,
    ВложенныйЗапрос.Цена / ВложенныйЗапрос.Количество,
    ВТ_СостояниеЗаказов.ЗаказВидЗаказа,
    ЕСТЬNULL(F_ДвиженияПродукцииОстаткиИОбороты.КройРасход, 0),
    ЕСТЬNULL(F_ДвиженияПродукцииОстаткиИОбороты.ШвейныйРасход, 0)
;

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

ВЫБРАТЬ
    Т_Остатки.ЗаказНаПроизводство КАК ЗаказНаПроизводство,
    Т_Остатки.ЗаказПокупателя КАК ЗаказПокупателя
ПОМЕСТИТЬ Т_ЗаказыПромежуточно
ИЗ
    Т_Остатки КАК Т_Остатки

СГРУППИРОВАТЬ ПО
    Т_Остатки.ЗаказНаПроизводство,
    Т_Остатки.ЗаказПокупателя
;

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

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

СГРУППИРОВАТЬ ПО
    Документ.Ссылка,
    Т_Заказы.ЗаказНаПроизводство,
    Т_Заказы.ЗаказПокупателя
;

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

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

СГРУППИРОВАТЬ ПО
    Т_Остатки.ЗаказПокупателя,
    Т_Остатки.ЗаказНаПроизводство,
    Т_ДваЗаказа.ЗаказНаПроизводствоКомплектующие,
    Т_Остатки.Номенклатура,
    Т_Остатки.Характеристика,
    СпецификацииСостав.Номенклатура,
    СпецификацииСостав.Характеристика,
    СпецификацииСостав.Количество
;

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

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

СГРУППИРОВАТЬ ПО
    Т_ЗаказыСоСпецификацией.ЗаказПокупателя,
    Т_ЗаказыСоСпецификацией.ЗаказНаПроизводствоПродукция,
    Т_ЗаказыСоСпецификацией.ЗаказНаПроизводствоКомплектующие,
    Т_ЗаказыСоСпецификацией.НоменклатураПродукция,
    Т_ЗаказыСоСпецификацией.ХарактеристикаПродукция,
    Т_ЗаказыСоСпецификацией.Количество,
    Т_ЗаказыСоСпецификацией.НоменклатураКомплектующие,
    Т_ЗаказыСоСпецификацией.ХарактеристикаКомплектующие,
    ЕСТЬNULL(F_ДеталиРаскладокОстаткиИОбороты.КоличествоКонечныйОстаток, 0)
;

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

ВЫБРАТЬ
    Т_РазложитьОсталосьРазложитьКомплектующие.ЗаказПокупателя КАК ЗаказПокупателя,
    Т_РазложитьОсталосьРазложитьКомплектующие.ЗаказНаПроизводствоПродукция КАК ЗаказНаПроизводствоПродукция,
    Т_РазложитьОсталосьРазложитьКомплектующие.НоменклатураПродукция КАК НоменклатураПродукция,
    Т_РазложитьОсталосьРазложитьКомплектующие.ХарактеристикаПродукция КАК ХарактеристикаПродукция,
    МИНИМУМ(ЕСТЬNULL(Т_РазложитьОсталосьРазложитьКомплектующие.ОсталосьРазложитьКомплектующие / Т_РазложитьОсталосьРазложитьКомплектующие.Количество, 0)) КАК ОсталосьРазложить
ПОМЕСТИТЬ Т_Разложить
ИЗ
    Т_РазложитьОсталосьКомплектующие КАК Т_РазложитьОсталосьРазложитьКомплектующие

СГРУППИРОВАТЬ ПО
    Т_РазложитьОсталосьРазложитьКомплектующие.ЗаказПокупателя,
    Т_РазложитьОсталосьРазложитьКомплектующие.ЗаказНаПроизводствоПродукция,
    Т_РазложитьОсталосьРазложитьКомплектующие.НоменклатураПродукция,
    Т_РазложитьОсталосьРазложитьКомплектующие.ХарактеристикаПродукция
;

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

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

СГРУППИРОВАТЬ ПО
    Т_ЗаказыСоСпецификацией.ЗаказПокупателя,
    Т_ЗаказыСоСпецификацией.ЗаказНаПроизводствоПродукция,
    Т_ЗаказыСоСпецификацией.ЗаказНаПроизводствоКомплектующие,
    Т_ЗаказыСоСпецификацией.НоменклатураПродукция,
    Т_ЗаказыСоСпецификацией.ХарактеристикаПродукция,
    Т_ЗаказыСоСпецификацией.Количество,
    Т_ЗаказыСоСпецификацией.НоменклатураКомплектующие,
    Т_ЗаказыСоСпецификацией.ХарактеристикаКомплектующие
;

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

ВЫБРАТЬ
    Т_РазложитьРазложеноКомплектующие.ЗаказПокупателя КАК ЗаказПокупателя,
    Т_РазложитьРазложеноКомплектующие.ЗаказНаПроизводствоПродукция КАК ЗаказНаПроизводствоПродукция,
    Т_РазложитьРазложеноКомплектующие.НоменклатураПродукция КАК НоменклатураПродукция,
    Т_РазложитьРазложеноКомплектующие.ХарактеристикаПродукция КАК ХарактеристикаПродукция,
    МИНИМУМ(ЕСТЬNULL(Т_РазложитьРазложеноКомплектующие.РазложеноКомплектующие / Т_РазложитьРазложеноКомплектующие.Количество, 0)) КАК Разложено
ПОМЕСТИТЬ Т_Разложено
ИЗ
    Т_РазложитьРазложеноКомплектующие КАК Т_РазложитьРазложеноКомплектующие

СГРУППИРОВАТЬ ПО
    Т_РазложитьРазложеноКомплектующие.ЗаказПокупателя,
    Т_РазложитьРазложеноКомплектующие.ЗаказНаПроизводствоПродукция,
    Т_РазложитьРазложеноКомплектующие.НоменклатураПродукция,
    Т_РазложитьРазложеноКомплектующие.ХарактеристикаПродукция
;

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

ВЫБРАТЬ
    Т_ЗаказыСоСпецификацией.ЗаказПокупателя КАК ЗаказПокупателя,
    Т_ЗаказыСоСпецификацией.ЗаказНаПроизводствоПродукция КАК ЗаказНаПроизводствоПродукция,
    Т_ЗаказыСоСпецификацией.ЗаказНаПроизводствоКомплектующие КАК ЗаказНаПроизводствоКомплектующие,
    Т_ЗаказыСоСпецификацией.НоменклатураПродукция КАК НоменклатураПродукция,
    Т_ЗаказыСоСпецификацией.ХарактеристикаПродукция КАК ХарактеристикаПродукция,
    СУММА(ВЫБОР
            КОГДА F_ДеталиРаскладокОбороты.Регистратор.Статус <> ЗНАЧЕНИЕ(Перечисление.AS_СтатусыЗакладок.Выполнено)
                ТОГДА ЕСТЬNULL(F_ДеталиРаскладокОбороты.КоличествоРасход, 0)
            ИНАЧЕ 0
        КОНЕЦ) КАК ОсталосьРаскроитьКомплектующие,
    Т_ЗаказыСоСпецификацией.Количество КАК Количество,
    Т_ЗаказыСоСпецификацией.НоменклатураКомплектующие КАК НоменклатураКомплектующие,
    Т_ЗаказыСоСпецификацией.ХарактеристикаКомплектующие КАК ХарактеристикаКомплектующие
ПОМЕСТИТЬ Т_РаскроитьОсталосьКомплектующие
ИЗ
    Т_ЗаказыСоСпецификацией КАК Т_ЗаказыСоСпецификацией
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.F_ДеталиРаскладок.Обороты(, , Регистратор, ) КАК F_ДеталиРаскладокОбороты
        ПО Т_ЗаказыСоСпецификацией.ЗаказПокупателя = F_ДеталиРаскладокОбороты.ЗаказПокупателя
            И Т_ЗаказыСоСпецификацией.НоменклатураПродукция = F_ДеталиРаскладокОбороты.НоменклатураПродукция
            И Т_ЗаказыСоСпецификацией.ХарактеристикаПродукция = F_ДеталиРаскладокОбороты.ХарактеристикаПродукция
            И Т_ЗаказыСоСпецификацией.НоменклатураКомплектующие = F_ДеталиРаскладокОбороты.Номенклатура
            И Т_ЗаказыСоСпецификацией.ХарактеристикаКомплектующие = F_ДеталиРаскладокОбороты.Характеристика
            И Т_ЗаказыСоСпецификацией.ЗаказНаПроизводствоКомплектующие = F_ДеталиРаскладокОбороты.ЗаказНаПроизводство
ГДЕ
    F_ДеталиРаскладокОбороты.Регистратор.Статус <> ЗНАЧЕНИЕ(Перечисление.AS_СтатусыЗакладок.Выполнено)

СГРУППИРОВАТЬ ПО
    Т_ЗаказыСоСпецификацией.ЗаказПокупателя,
    Т_ЗаказыСоСпецификацией.ЗаказНаПроизводствоПродукция,
    Т_ЗаказыСоСпецификацией.ЗаказНаПроизводствоКомплектующие,
    Т_ЗаказыСоСпецификацией.НоменклатураПродукция,
    Т_ЗаказыСоСпецификацией.ХарактеристикаПродукция,
    Т_ЗаказыСоСпецификацией.Количество,
    Т_ЗаказыСоСпецификацией.НоменклатураКомплектующие,
    Т_ЗаказыСоСпецификацией.ХарактеристикаКомплектующие
;

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

ВЫБРАТЬ
    Т_РаскроитьОсталосьРаскроитьКомплектующие.ЗаказПокупателя КАК ЗаказПокупателя,
    Т_РаскроитьОсталосьРаскроитьКомплектующие.ЗаказНаПроизводствоПродукция КАК ЗаказНаПроизводствоПродукция,
    Т_РаскроитьОсталосьРаскроитьКомплектующие.НоменклатураПродукция КАК НоменклатураПродукция,
    Т_РаскроитьОсталосьРаскроитьКомплектующие.ХарактеристикаПродукция КАК ХарактеристикаПродукция,
    МИНИМУМ(ЕСТЬNULL(Т_РаскроитьОсталосьРаскроитьКомплектующие.ОсталосьРаскроитьКомплектующие / Т_РаскроитьОсталосьРаскроитьКомплектующие.Количество, 0)) КАК ОсталосьРаскроить
ПОМЕСТИТЬ Т_Раскроить
ИЗ
    Т_РаскроитьОсталосьКомплектующие КАК Т_РаскроитьОсталосьРаскроитьКомплектующие

СГРУППИРОВАТЬ ПО
    Т_РаскроитьОсталосьРаскроитьКомплектующие.ЗаказПокупателя,
    Т_РаскроитьОсталосьРаскроитьКомплектующие.ЗаказНаПроизводствоПродукция,
    Т_РаскроитьОсталосьРаскроитьКомплектующие.НоменклатураПродукция,
    Т_РаскроитьОсталосьРаскроитьКомплектующие.ХарактеристикаПродукция
;

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

ВЫБРАТЬ
    Т_ЗаказыСоСпецификацией.ЗаказПокупателя КАК ЗаказПокупателя,
    Т_ЗаказыСоСпецификацией.ЗаказНаПроизводствоПродукция КАК ЗаказНаПроизводствоПродукция,
    Т_ЗаказыСоСпецификацией.ЗаказНаПроизводствоКомплектующие КАК ЗаказНаПроизводствоКомплектующие,
    Т_ЗаказыСоСпецификацией.НоменклатураПродукция КАК НоменклатураПродукция,
    Т_ЗаказыСоСпецификацией.ХарактеристикаПродукция КАК ХарактеристикаПродукция,
    СУММА(ВЫБОР
            КОГДА F_ДеталиРаскладокОбороты.Регистратор.Статус = ЗНАЧЕНИЕ(Перечисление.AS_СтатусыЗакладок.Выполнено)
                ТОГДА ЕСТЬNULL(F_ДеталиРаскладокОбороты.КоличествоРасход, 0)
            ИНАЧЕ 0
        КОНЕЦ) КАК РаскроеноКомплектующие,
    Т_ЗаказыСоСпецификацией.Количество КАК Количество,
    Т_ЗаказыСоСпецификацией.НоменклатураКомплектующие КАК НоменклатураКомплектующие,
    Т_ЗаказыСоСпецификацией.ХарактеристикаКомплектующие КАК ХарактеристикаКомплектующие
ПОМЕСТИТЬ Т_РаскроитьРаскроеноКомплектующие
ИЗ
    Т_ЗаказыСоСпецификацией КАК Т_ЗаказыСоСпецификацией
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.F_ДеталиРаскладок.Обороты(, , Регистратор, ) КАК F_ДеталиРаскладокОбороты
        ПО Т_ЗаказыСоСпецификацией.ЗаказПокупателя = F_ДеталиРаскладокОбороты.ЗаказПокупателя
            И Т_ЗаказыСоСпецификацией.НоменклатураПродукция = F_ДеталиРаскладокОбороты.НоменклатураПродукция
            И Т_ЗаказыСоСпецификацией.ХарактеристикаПродукция = F_ДеталиРаскладокОбороты.ХарактеристикаПродукция
            И Т_ЗаказыСоСпецификацией.НоменклатураКомплектующие = F_ДеталиРаскладокОбороты.Номенклатура
            И Т_ЗаказыСоСпецификацией.ХарактеристикаКомплектующие = F_ДеталиРаскладокОбороты.Характеристика
            И Т_ЗаказыСоСпецификацией.ЗаказНаПроизводствоКомплектующие = F_ДеталиРаскладокОбороты.ЗаказНаПроизводство
ГДЕ
    F_ДеталиРаскладокОбороты.Регистратор.Статус <> ЗНАЧЕНИЕ(Перечисление.AS_СтатусыЗакладок.Выполнено)

СГРУППИРОВАТЬ ПО
    Т_ЗаказыСоСпецификацией.ЗаказПокупателя,
    Т_ЗаказыСоСпецификацией.ЗаказНаПроизводствоПродукция,
    Т_ЗаказыСоСпецификацией.ЗаказНаПроизводствоКомплектующие,
    Т_ЗаказыСоСпецификацией.НоменклатураПродукция,
    Т_ЗаказыСоСпецификацией.ХарактеристикаПродукция,
    Т_ЗаказыСоСпецификацией.Количество,
    Т_ЗаказыСоСпецификацией.НоменклатураКомплектующие,
    Т_ЗаказыСоСпецификацией.ХарактеристикаКомплектующие
;

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

ВЫБРАТЬ
    Т_РаскроитьРаскроеноКомплектующие.ЗаказПокупателя КАК ЗаказПокупателя,
    Т_РаскроитьРаскроеноКомплектующие.ЗаказНаПроизводствоПродукция КАК ЗаказНаПроизводствоПродукция,
    Т_РаскроитьРаскроеноКомплектующие.НоменклатураПродукция КАК НоменклатураПродукция,
    Т_РаскроитьРаскроеноКомплектующие.ХарактеристикаПродукция КАК ХарактеристикаПродукция,
    МИНИМУМ(ЕСТЬNULL(Т_РаскроитьРаскроеноКомплектующие.РаскроеноКомплектующие / Т_РаскроитьРаскроеноКомплектующие.Количество, 0)) КАК Раскроено
ПОМЕСТИТЬ Т_Раскроено
ИЗ
    Т_РаскроитьРаскроеноКомплектующие КАК Т_РаскроитьРаскроеноКомплектующие

СГРУППИРОВАТЬ ПО
    Т_РаскроитьРаскроеноКомплектующие.ЗаказПокупателя,
    Т_РаскроитьРаскроеноКомплектующие.ЗаказНаПроизводствоПродукция,
    Т_РаскроитьРаскроеноКомплектующие.НоменклатураПродукция,
    Т_РаскроитьРаскроеноКомплектующие.ХарактеристикаПродукция
;

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

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

СГРУППИРОВАТЬ ПО
    F_ПаспортаНаУпаковкеОстаткиИОбороты.Паспорт.ЗаказПокупателя,
    F_ПаспортаНаУпаковкеОстаткиИОбороты.Паспорт.F_ЗаказНаПроизводство,
    F_ПаспортаНаУпаковкеОстаткиИОбороты.Паспорт.F_ЗаказКроя,
    F_ПаспортаНаУпаковкеОстаткиИОбороты.Паспорт.F_НоменклатураПеремещения,
    F_ПаспортаНаУпаковкеОстаткиИОбороты.Паспорт.F_ХарактеристикаПеремещения
;

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

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

СГРУППИРОВАТЬ ПО
    Т_Остатки.ЗаказПокупателя,
    Т_Остатки.ЗаказНаПроизводство,
    Т_Остатки.Номенклатура,
    Т_Остатки.Характеристика,
    Т_Остатки.Направление
;

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

ВЫБРАТЬ
    Т_ПочтиГотово.ЗаказПокупателя КАК ЗаказПокупателя,
    Т_ПочтиГотово.Направление КАК Направление,
    Т_ПочтиГотово.Номенклатура КАК Номенклатура,
    Т_ПочтиГотово.Характеристика КАК Характеристика,
    СУММА(Т_ПочтиГотово.КоличествоВЗаказе) КАК КолчествоВЗаказе,
    СРЕДНЕЕ(Т_ПочтиГотово.СрЦена) КАК СрЦена,
    СУММА(Т_ПочтиГотово.Разложено) КАК Разложено,
    СУММА(Т_ПочтиГотово.ОсталосьРазложить) КАК ОсталосьРазложить,
    СУММА(Т_ПочтиГотово.Раскроено) КАК Раскроено,
    СУММА(Т_ПочтиГотово.ОсталосьРаскроить) КАК ОсталосьРаскроить,
    СУММА(Т_ПочтиГотово.Скомплектовано) КАК Скомплектовано,
    СУММА(Т_ПочтиГотово.ОсталосьСкомплектовать) КАК ОсталосьСкомплектовать,
    СУММА(Т_ПочтиГотово.Отшито) КАК Отшито,
    СУММА(Т_ПочтиГотово.ОсталосьОтшить) КАК ОсталосьОтшить,
    СУММА(Т_ПочтиГотово.Упаковано) КАК Упаковано,
    СУММА(Т_ПочтиГотово.ОсталосьУпаковать) КАК ОсталосьУпаковать,
    СУММА(Т_ПочтиГотово.Брак) КАК Брак
ИЗ
    Т_ПочтиГотово КАК Т_ПочтиГотово

СГРУППИРОВАТЬ ПО
    Т_ПочтиГотово.ЗаказПокупателя,
    Т_ПочтиГотово.Направление,
    Т_ПочтиГотово.Номенклатура,
    Т_ПочтиГотово.Характеристика
   Franchiser
 
18 - 04.09.20 - 11:20
(17) сделай поле направление обязательным
   Alex Проблемный
 
19 - 04.09.20 - 12:11
   Alex Проблемный
 
20 - 04.09.20 - 12:19
Не помогло...  Посмотрел запрос выполняемый запрос через консоль СКД - почему то он оптимизировал его убрав в ВТ Т_РазложитьРазложеноКомплектующие и Т_РаскроитьОсталосьКомплектующие группировку по НоменклатураКомплектующие и ХарактеристикаКомплектующие
   toypaul
 
21 - 04.09.20 - 12:56
(20) потому что далее они нигде не используются
   toypaul
 
22 - 04.09.20 - 12:59
добавь эти поля как МИНИМУМ. и включи в основную выборку

это вообще одна из самых подлых подлянок в СКД, которую тяжелее всего исправлять
   toypaul
 
23 - 04.09.20 - 13:00
По идее для таких полей тоже должна быть возможность включения флажка Обязательное. Но такая возможность есть только для полей из последней выборки.
   Alex Проблемный
 
24 - 04.09.20 - 13:15
(21) (22) (23) Огромное спасибо))) проблема ушла. вскрылась другая) пойду разбирать
   Franchiser
 
25 - 04.09.20 - 15:04
(20) если поля не используются далее, то нужно оставлять в группировке, а из полей убрать.


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