Имя: Пароль:
1C
1С v8
Левое соединение в запросе
, ,
0 Heiton
 
09.12.19
15:37
Отцы!
Помогите!
Сломал всю голову. Вопрос - при выполнении запроса левым соединением присоединяется поле Оборот к виртуальной таблице из регистра ВыручкаИСебестоимость обороты
Разумеется при группировке - обороты задваиваются в разрезе периода (если выбрать группировку по ПериодМесяц) подскажите - в чем косяк в запросе - необходимо, чтобы при группировке помесячно выводилась выручка, однако обороты не суммировались. Вот текст запроса:
ВЫБРАТЬ
    Продажи.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
    СУММА(Продажи.СуммаВыручкиОборот) КАК Выручка,
    СУММА(ВЫБОР
            КОГДА Продажи.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
                ТОГДА Продажи.СуммаВыручкиОборот
            КОГДА ЕСТЬNULL(РасчетСебестоимости.Ссылка.ПредварительныйРасчет, ЛОЖЬ)
                ТОГДА ВЫРАЗИТЬ(Продажи.КоличествоОборот * ЕСТЬNULL(СтоимостьНоменклатуры.Стоимость, 0) КАК ЧИСЛО(15, 2))
            ИНАЧЕ Продажи.СтоимостьОборот
        КОНЕЦ) КАК Себестоимость,
    СУММА(ВЫБОР
            КОГДА ЕСТЬNULL(РасчетСебестоимости.Ссылка.ПредварительныйРасчет, ЛОЖЬ)
                ТОГДА ВЫРАЗИТЬ(Продажи.КоличествоОборот * ЕСТЬNULL(СтоимостьНоменклатуры.СтоимостьДопРасходы, 0) КАК ЧИСЛО(15, 2))
            ИНАЧЕ Продажи.ДопРасходыОборот
        КОНЕЦ) КАК ДопРасходы,
    СУММА(ВЫБОР
            КОГДА ЕСТЬNULL(РасчетСебестоимости.Ссылка.ПредварительныйРасчет, ЛОЖЬ)
                ТОГДА ВЫРАЗИТЬ(Продажи.КоличествоОборот * ЕСТЬNULL(СтоимостьНоменклатуры.Трудозатраты, 0) КАК ЧИСЛО(15, 2))
            ИНАЧЕ Продажи.ТрудозатратыОборот
        КОНЕЦ) КАК Трудозатраты,
    СУММА(ВЫБОР
            КОГДА ЕСТЬNULL(РасчетСебестоимости.Ссылка.ПредварительныйРасчет, ЛОЖЬ)
                ТОГДА ВЫРАЗИТЬ(Продажи.КоличествоОборот * ЕСТЬNULL(СтоимостьНоменклатуры.ПостатейныеПостоянныеСНДС, 0) КАК ЧИСЛО(15, 2))
            ИНАЧЕ Продажи.ПостатейныеПостоянныеСНДСОборот
        КОНЕЦ) КАК ПостатейныеПостоянныеСНДС,
    СУММА(ВЫБОР
            КОГДА ЕСТЬNULL(РасчетСебестоимости.Ссылка.ПредварительныйРасчет, ЛОЖЬ)
                ТОГДА ВЫРАЗИТЬ(Продажи.КоличествоОборот * ЕСТЬNULL(СтоимостьНоменклатуры.ПостатейныеПеременныеСНДС, 0) КАК ЧИСЛО(15, 2))
            ИНАЧЕ Продажи.ПостатейныеПеременныеСНДСОборот
        КОНЕЦ) КАК ПостатейныеПеременныеСНДС
ПОМЕСТИТЬ Таблица
{ВЫБРАТЬ
    Номенклатура.*,
    Выручка,
    Себестоимость,
    ДопРасходы,
    Трудозатраты,
    ПостатейныеПостоянныеСНДС,
    ПостатейныеПеременныеСНДС}
ИЗ
    РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(, , Авто, ) КАК Продажи
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.РасчетСебестоимостиТоваров.Организации КАК РасчетСебестоимости
        ПО (НАЧАЛОПЕРИОДА(Продажи.ПериодМесяц, МЕСЯЦ) = НАЧАЛОПЕРИОДА(РасчетСебестоимости.Ссылка.Дата, МЕСЯЦ))
            И (РасчетСебестоимости.Ссылка.Проведен)
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтоимостьТоваров КАК СтоимостьНоменклатуры
        ПО Продажи.АналитикаУчетаНоменклатуры = СтоимостьНоменклатуры.АналитикаУчетаНоменклатуры
            И (СтоимостьНоменклатуры.Период = НАЧАЛОПЕРИОДА(Продажи.ПериодМесяц, МЕСЯЦ))
            И (ЕСТЬNULL(РасчетСебестоимости.Ссылка.ПредварительныйРасчет, ЛОЖЬ))

СГРУППИРОВАТЬ ПО
    Продажи.АналитикаУчетаНоменклатуры.Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Таблица.Номенклатура КАК Номенклатура,
    СУММА(Таблица.Выручка) - СУММА(Таблица.Себестоимость) - СУММА(Таблица.ДопРасходы) - СУММА(Таблица.Трудозатраты) - СУММА(Таблица.ПостатейныеПостоянныеСНДС) - СУММА(Таблица.ПостатейныеПеременныеСНДС) КАК Оборот
ПОМЕСТИТЬ Обороты
{ВЫБРАТЬ
    Номенклатура.*,
    Оборот}
ИЗ
    Таблица КАК Таблица

СГРУППИРОВАТЬ ПО
    Таблица.Номенклатура
;

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

СГРУППИРОВАТЬ ПО
    ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура,
    НАЧАЛОПЕРИОДА(ВыручкаИСебестоимостьПродажОбороты.Период, МЕСЯЦ)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Продажи.Номенклатура КАК Номенклатура,
    Обороты.Оборот КАК Оборот,
    Продажи.Продажа КАК Продажа,
    Продажи.ПериодМесяц КАК ПериодМесяц
{ВЫБРАТЬ
    Номенклатура.*,
    Оборот,
    Продажа,
    ПериодМесяц}
ИЗ
    Продажи КАК Продажи
        ЛЕВОЕ СОЕДИНЕНИЕ Обороты КАК Обороты
        ПО Продажи.Номенклатура = Обороты.Номенклатура

СГРУППИРОВАТЬ ПО
    Продажи.Номенклатура,
    Обороты.Оборот,
    Продажи.Продажа,
    Продажи.ПериодМесяц
1 Ник080808
 
09.12.19
15:38
(0) по месяцу соединение сделай
2 Heiton
 
09.12.19
15:41
Тогда Обороты будут ограничены периодом виртуальной таблицы. А необходимо, чтобы Обороты - были внепериода (общие), а выручка - помесячно из периода, указанного пользователем.
3 Heiton
 
09.12.19
15:42
Я делал 2умя наборами данными с соединением наборов - все отрабатывало верно без связи по периоду, но запрос больно "тяжелый" получается.
4 Ник080808
 
09.12.19
15:52
(3) ну тут два варианта. первый таки два разных набора. Это правильнее. Второй ВЫБРАТЬ
    Продажи.Номенклатура КАК Номенклатура,
    Максимум(Обороты.Оборот) КАК Оборот,
    Сумма(Продажи.Продажа) КАК Продажа,
    Продажи.ПериодМесяц КАК ПериодМесяц
сгруппировать по Продажи.Номенклатура ,Продажи.ПериодМесяц
5 Heiton
 
09.12.19
15:58
Спасибо большое за помощь. Первый вариант мне завернули - сказали, что больно жрет оперативну память (
Это все же с соединением по ПериодуМесяц? Или уже без него?
6 Ник080808
 
09.12.19
16:00
(5) без него
7 Heiton
 
09.12.19
16:02
Почему-то не сработало. с максимумами баловался, но они разваливаются например если брать 2 месяца - то оборот все равно подставляется оборот и в первый период и во второй:
ВЫБРАТЬ
    Продажи.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
    СУММА(Продажи.СуммаВыручкиОборот) КАК Выручка,
    СУММА(ВЫБОР
            КОГДА Продажи.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
                ТОГДА Продажи.СуммаВыручкиОборот
            КОГДА ЕСТЬNULL(РасчетСебестоимости.Ссылка.ПредварительныйРасчет, ЛОЖЬ)
                ТОГДА ВЫРАЗИТЬ(Продажи.КоличествоОборот * ЕСТЬNULL(СтоимостьНоменклатуры.Стоимость, 0) КАК ЧИСЛО(15, 2))
            ИНАЧЕ Продажи.СтоимостьОборот
        КОНЕЦ) КАК Себестоимость,
    СУММА(ВЫБОР
            КОГДА ЕСТЬNULL(РасчетСебестоимости.Ссылка.ПредварительныйРасчет, ЛОЖЬ)
                ТОГДА ВЫРАЗИТЬ(Продажи.КоличествоОборот * ЕСТЬNULL(СтоимостьНоменклатуры.СтоимостьДопРасходы, 0) КАК ЧИСЛО(15, 2))
            ИНАЧЕ Продажи.ДопРасходыОборот
        КОНЕЦ) КАК ДопРасходы,
    СУММА(ВЫБОР
            КОГДА ЕСТЬNULL(РасчетСебестоимости.Ссылка.ПредварительныйРасчет, ЛОЖЬ)
                ТОГДА ВЫРАЗИТЬ(Продажи.КоличествоОборот * ЕСТЬNULL(СтоимостьНоменклатуры.Трудозатраты, 0) КАК ЧИСЛО(15, 2))
            ИНАЧЕ Продажи.ТрудозатратыОборот
        КОНЕЦ) КАК Трудозатраты,
    СУММА(ВЫБОР
            КОГДА ЕСТЬNULL(РасчетСебестоимости.Ссылка.ПредварительныйРасчет, ЛОЖЬ)
                ТОГДА ВЫРАЗИТЬ(Продажи.КоличествоОборот * ЕСТЬNULL(СтоимостьНоменклатуры.ПостатейныеПостоянныеСНДС, 0) КАК ЧИСЛО(15, 2))
            ИНАЧЕ Продажи.ПостатейныеПостоянныеСНДСОборот
        КОНЕЦ) КАК ПостатейныеПостоянныеСНДС,
    СУММА(ВЫБОР
            КОГДА ЕСТЬNULL(РасчетСебестоимости.Ссылка.ПредварительныйРасчет, ЛОЖЬ)
                ТОГДА ВЫРАЗИТЬ(Продажи.КоличествоОборот * ЕСТЬNULL(СтоимостьНоменклатуры.ПостатейныеПеременныеСНДС, 0) КАК ЧИСЛО(15, 2))
            ИНАЧЕ Продажи.ПостатейныеПеременныеСНДСОборот
        КОНЕЦ) КАК ПостатейныеПеременныеСНДС
ПОМЕСТИТЬ Таблица
{ВЫБРАТЬ
    Номенклатура.*,
    Выручка,
    Себестоимость,
    ДопРасходы,
    Трудозатраты,
    ПостатейныеПостоянныеСНДС,
    ПостатейныеПеременныеСНДС}
ИЗ
    РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(, , Авто, ) КАК Продажи
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.РасчетСебестоимостиТоваров.Организации КАК РасчетСебестоимости
        ПО (НАЧАЛОПЕРИОДА(Продажи.ПериодМесяц, МЕСЯЦ) = НАЧАЛОПЕРИОДА(РасчетСебестоимости.Ссылка.Дата, МЕСЯЦ))
            И (РасчетСебестоимости.Ссылка.Проведен)
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтоимостьТоваров КАК СтоимостьНоменклатуры
        ПО Продажи.АналитикаУчетаНоменклатуры = СтоимостьНоменклатуры.АналитикаУчетаНоменклатуры
            И (СтоимостьНоменклатуры.Период = НАЧАЛОПЕРИОДА(Продажи.ПериодМесяц, МЕСЯЦ))
            И (ЕСТЬNULL(РасчетСебестоимости.Ссылка.ПредварительныйРасчет, ЛОЖЬ))

СГРУППИРОВАТЬ ПО
    Продажи.АналитикаУчетаНоменклатуры.Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Таблица.Номенклатура КАК Номенклатура,
    СУММА(Таблица.Выручка) - СУММА(Таблица.Себестоимость) - СУММА(Таблица.ДопРасходы) - СУММА(Таблица.Трудозатраты) - СУММА(Таблица.ПостатейныеПостоянныеСНДС) - СУММА(Таблица.ПостатейныеПеременныеСНДС) КАК Оборот
ПОМЕСТИТЬ Обороты
{ВЫБРАТЬ
    Номенклатура.*,
    Оборот}
ИЗ
    Таблица КАК Таблица

СГРУППИРОВАТЬ ПО
    Таблица.Номенклатура
;

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

СГРУППИРОВАТЬ ПО
    ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура,
    НАЧАЛОПЕРИОДА(ВыручкаИСебестоимостьПродажОбороты.Период, МЕСЯЦ)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Продажи.Номенклатура КАК Номенклатура,
    МАКСИМУМ(Обороты.Оборот) КАК Оборот,
    Продажи.Продажа КАК Продажа,
    ВЫБОР
        КОГДА Продажи.Продажа <> 0
            ТОГДА Обороты.Оборот / Продажи.Продажа * 100
        ИНАЧЕ 0
    КОНЕЦ КАК МесячныйПроцент,
    Продажи.ПериодМесяц КАК ПериодМесяц
{ВЫБРАТЬ
    Номенклатура.*,
    Оборот,
    Продажа,
    МесячныйПроцент,
    ПериодМесяц}
ИЗ
    Продажи КАК Продажи
        ЛЕВОЕ СОЕДИНЕНИЕ Обороты КАК Обороты
        ПО Продажи.Номенклатура = Обороты.Номенклатура

СГРУППИРОВАТЬ ПО
    Продажи.Номенклатура,
    Обороты.Оборот,
    Продажи.Продажа,
    Продажи.ПериодМесяц
8 Ник080808
 
09.12.19
16:03
(5) естественно жрет. Ты же выбираешь без отбора по периоду первую таблицу. Это раз. Во вторых, зачем ты выбрал периодичность авто? если можно по месяцам?
9 Ник080808
 
09.12.19
16:04
(7) это как у тебя получилось:
    МАКСИМУМ(Обороты.Оборот) КАК Оборот,
СГРУППИРОВАТЬ ПО
    Продажи.Номенклатура,
    Обороты.Оборот
10 Heiton
 
09.12.19
16:05
Все, спасибо. Разобрался. Это я с СКД перемудрил!
11 Heiton
 
09.12.19
16:06
а (7) - не знаю. чудеса консоли запросов ) И такое бывает...
12 Heiton
 
09.12.19
16:15
Сделал как в (3) - результат неверный выводит по Оборотам

ВЫБРАТЬ
    Продажи.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
    СУММА(Продажи.СуммаВыручкиОборот) КАК Выручка,
    СУММА(ВЫБОР
            КОГДА Продажи.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
                ТОГДА Продажи.СуммаВыручкиОборот
            КОГДА ЕСТЬNULL(РасчетСебестоимости.Ссылка.ПредварительныйРасчет, ЛОЖЬ)
                ТОГДА ВЫРАЗИТЬ(Продажи.КоличествоОборот * ЕСТЬNULL(СтоимостьНоменклатуры.Стоимость, 0) КАК ЧИСЛО(15, 2))
            ИНАЧЕ Продажи.СтоимостьОборот
        КОНЕЦ) КАК Себестоимость,
    СУММА(ВЫБОР
            КОГДА ЕСТЬNULL(РасчетСебестоимости.Ссылка.ПредварительныйРасчет, ЛОЖЬ)
                ТОГДА ВЫРАЗИТЬ(Продажи.КоличествоОборот * ЕСТЬNULL(СтоимостьНоменклатуры.СтоимостьДопРасходы, 0) КАК ЧИСЛО(15, 2))
            ИНАЧЕ Продажи.ДопРасходыОборот
        КОНЕЦ) КАК ДопРасходы,
    СУММА(ВЫБОР
            КОГДА ЕСТЬNULL(РасчетСебестоимости.Ссылка.ПредварительныйРасчет, ЛОЖЬ)
                ТОГДА ВЫРАЗИТЬ(Продажи.КоличествоОборот * ЕСТЬNULL(СтоимостьНоменклатуры.Трудозатраты, 0) КАК ЧИСЛО(15, 2))
            ИНАЧЕ Продажи.ТрудозатратыОборот
        КОНЕЦ) КАК Трудозатраты,
    СУММА(ВЫБОР
            КОГДА ЕСТЬNULL(РасчетСебестоимости.Ссылка.ПредварительныйРасчет, ЛОЖЬ)
                ТОГДА ВЫРАЗИТЬ(Продажи.КоличествоОборот * ЕСТЬNULL(СтоимостьНоменклатуры.ПостатейныеПостоянныеСНДС, 0) КАК ЧИСЛО(15, 2))
            ИНАЧЕ Продажи.ПостатейныеПостоянныеСНДСОборот
        КОНЕЦ) КАК ПостатейныеПостоянныеСНДС,
    СУММА(ВЫБОР
            КОГДА ЕСТЬNULL(РасчетСебестоимости.Ссылка.ПредварительныйРасчет, ЛОЖЬ)
                ТОГДА ВЫРАЗИТЬ(Продажи.КоличествоОборот * ЕСТЬNULL(СтоимостьНоменклатуры.ПостатейныеПеременныеСНДС, 0) КАК ЧИСЛО(15, 2))
            ИНАЧЕ Продажи.ПостатейныеПеременныеСНДСОборот
        КОНЕЦ) КАК ПостатейныеПеременныеСНДС
ПОМЕСТИТЬ Таблица
{ВЫБРАТЬ
    Номенклатура.*,
    Выручка,
    Себестоимость,
    ДопРасходы,
    Трудозатраты,
    ПостатейныеПостоянныеСНДС,
    ПостатейныеПеременныеСНДС}
ИЗ
    РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(, , Месяц, ) КАК Продажи
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.РасчетСебестоимостиТоваров.Организации КАК РасчетСебестоимости
        ПО (РасчетСебестоимости.Ссылка.Проведен)
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтоимостьТоваров КАК СтоимостьНоменклатуры
        ПО Продажи.АналитикаУчетаНоменклатуры = СтоимостьНоменклатуры.АналитикаУчетаНоменклатуры
            И (ЕСТЬNULL(РасчетСебестоимости.Ссылка.ПредварительныйРасчет, ЛОЖЬ))

СГРУППИРОВАТЬ ПО
    Продажи.АналитикаУчетаНоменклатуры.Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Таблица.Номенклатура КАК Номенклатура,
    СУММА(Таблица.Выручка) - СУММА(Таблица.Себестоимость) - СУММА(Таблица.ДопРасходы) - СУММА(Таблица.Трудозатраты) - СУММА(Таблица.ПостатейныеПостоянныеСНДС) - СУММА(Таблица.ПостатейныеПеременныеСНДС) КАК Оборот
ПОМЕСТИТЬ Обороты
{ВЫБРАТЬ
    Номенклатура.*,
    Оборот}
ИЗ
    Таблица КАК Таблица

СГРУППИРОВАТЬ ПО
    Таблица.Номенклатура
;

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

СГРУППИРОВАТЬ ПО
    ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура,
    НАЧАЛОПЕРИОДА(ВыручкаИСебестоимостьПродажОбороты.Период, МЕСЯЦ)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Продажи.Номенклатура КАК Номенклатура,
    МАКСИМУМ(Обороты.Оборот) КАК Оборот,
    Продажи.Продажа КАК Продажа,
    Продажи.ПериодМесяц КАК ПериодМесяц
{ВЫБРАТЬ
    Номенклатура.*,
    Оборот,
    Продажа,
    ПериодМесяц}
ИЗ
    Продажи КАК Продажи
        ЛЕВОЕ СОЕДИНЕНИЕ Обороты КАК Обороты
        ПО Продажи.Номенклатура = Обороты.Номенклатура

СГРУППИРОВАТЬ ПО
    Продажи.Номенклатура,
    Продажи.ПериодМесяц,
    Продажи.Продажа
13 Ник080808
 
09.12.19
16:28
(12) зачем. ты. группируешь. Продажа.Продажа.?
14 Heiton
 
09.12.19
16:41
Уф. переписал запрос. Лезли вот группировки - типа (12). В запросе отрабатывает верно теперь:

ВЫБРАТЬ
    Продажи.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
    СУММА(Продажи.СуммаВыручкиОборот) КАК Выручка,
    СУММА(ВЫБОР
            КОГДА Продажи.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
                ТОГДА Продажи.СуммаВыручкиОборот
            КОГДА ЕСТЬNULL(РасчетСебестоимости.Ссылка.ПредварительныйРасчет, ЛОЖЬ)
                ТОГДА ВЫРАЗИТЬ(Продажи.КоличествоОборот * ЕСТЬNULL(СтоимостьНоменклатуры.Стоимость, 0) КАК ЧИСЛО(15, 2))
            ИНАЧЕ Продажи.СтоимостьОборот
        КОНЕЦ) КАК Себестоимость,
    СУММА(ВЫБОР
            КОГДА ЕСТЬNULL(РасчетСебестоимости.Ссылка.ПредварительныйРасчет, ЛОЖЬ)
                ТОГДА ВЫРАЗИТЬ(Продажи.КоличествоОборот * ЕСТЬNULL(СтоимостьНоменклатуры.СтоимостьДопРасходы, 0) КАК ЧИСЛО(15, 2))
            ИНАЧЕ Продажи.ДопРасходыОборот
        КОНЕЦ) КАК ДопРасходы,
    СУММА(ВЫБОР
            КОГДА ЕСТЬNULL(РасчетСебестоимости.Ссылка.ПредварительныйРасчет, ЛОЖЬ)
                ТОГДА ВЫРАЗИТЬ(Продажи.КоличествоОборот * ЕСТЬNULL(СтоимостьНоменклатуры.Трудозатраты, 0) КАК ЧИСЛО(15, 2))
            ИНАЧЕ Продажи.ТрудозатратыОборот
        КОНЕЦ) КАК Трудозатраты,
    СУММА(ВЫБОР
            КОГДА ЕСТЬNULL(РасчетСебестоимости.Ссылка.ПредварительныйРасчет, ЛОЖЬ)
                ТОГДА ВЫРАЗИТЬ(Продажи.КоличествоОборот * ЕСТЬNULL(СтоимостьНоменклатуры.ПостатейныеПостоянныеСНДС, 0) КАК ЧИСЛО(15, 2))
            ИНАЧЕ Продажи.ПостатейныеПостоянныеСНДСОборот
        КОНЕЦ) КАК ПостатейныеПостоянныеСНДС,
    СУММА(ВЫБОР
            КОГДА ЕСТЬNULL(РасчетСебестоимости.Ссылка.ПредварительныйРасчет, ЛОЖЬ)
                ТОГДА ВЫРАЗИТЬ(Продажи.КоличествоОборот * ЕСТЬNULL(СтоимостьНоменклатуры.ПостатейныеПеременныеСНДС, 0) КАК ЧИСЛО(15, 2))
            ИНАЧЕ Продажи.ПостатейныеПеременныеСНДСОборот
        КОНЕЦ) КАК ПостатейныеПеременныеСНДС
ПОМЕСТИТЬ Таблица
ИЗ
    РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(, , Авто, ) КАК Продажи
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.РасчетСебестоимостиТоваров.Организации КАК РасчетСебестоимости
        ПО (НАЧАЛОПЕРИОДА(Продажи.ПериодМесяц, МЕСЯЦ) = НАЧАЛОПЕРИОДА(РасчетСебестоимости.Ссылка.Дата, МЕСЯЦ))
            И (РасчетСебестоимости.Ссылка.Проведен)
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтоимостьТоваров КАК СтоимостьНоменклатуры
        ПО (Продажи.АналитикаУчетаНоменклатуры = СтоимостьНоменклатуры.АналитикаУчетаНоменклатуры)
            И (СтоимостьНоменклатуры.Период = НАЧАЛОПЕРИОДА(Продажи.ПериодМесяц, МЕСЯЦ))
            И (ЕСТЬNULL(РасчетСебестоимости.Ссылка.ПредварительныйРасчет, ЛОЖЬ))

СГРУППИРОВАТЬ ПО
    Продажи.АналитикаУчетаНоменклатуры.Номенклатура
;

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

СГРУППИРОВАТЬ ПО
    Таблица.Номенклатура
;

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

СГРУППИРОВАТЬ ПО
    ВыручкаИСебестоимостьПродажОбороты.Период,
    ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура
15 Heiton
 
09.12.19
16:43
Однако в СКД при группировке по периоду - все равно задваивает (
16 Ник080808
 
09.12.19
16:46
(15) потому что делай наборами.
И да, зачем ты все таки авто ставишь вместо месяц?
17 Ник080808
 
09.12.19
16:47
(14) РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(, , Авто, )  здесь ты пишешь авто, но используешь только месяц. Поставь РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(, , Месяц, )
18 Heiton
 
09.12.19
17:06
Если ставлю период Месяц в параметрах виртуальных таблиц, то не выводятся данные при связи 2ух наборов...
19 Ник080808
 
09.12.19
17:21
(18) значит что то не то делаешь
20 Ник080808
 
09.12.19
17:32
(19) ты же небось по периодам наборы соединяешь
21 Heiton
 
09.12.19
17:32
Переписал и компоновку полностью - заработало с периодами МЕСЯЦ.
Ник - ты лучший! Спасибо тебе большое и творческих успехов - тему можно закрывать.
AdBlock убивает бесплатный контент. 1Сергей