Имя: Пароль:
1C
1С v8
Отчет по продажам за два периода
0 GhostCry
 
19.06.23
15:06
Добрый день! Написал запрос который получает количество и сумму за два периода. В скд во вкладке настройки создал таблицу со строкой "Номенклатура" и четырьмя колонками "Количество", "Сумма" и "Количество2", "Сумма2".
При выполнении запроса в консоле он выводит данные за два периода. В скд только за один. В чем может быть проблема ?
1 GhostCry
 
19.06.23
15:06
Текст запроса

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

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ПервыйПериод.Номенклатура КАК Номенклатура,
    ПервыйПериод.Количество КАК Количество,
    ПервыйПериод.Сумма КАК Сумма,
    ВторойПериод.Количество2 КАК Количество2,
    ВторойПериод.Сумма2 КАК Сумма2
ИЗ
    ПервыйПериод КАК ПервыйПериод
        ЛЕВОЕ СОЕДИНЕНИЕ ВторойПериод КАК ВторойПериод
        ПО (ПервыйПериод.Номенклатура = ВторойПериод.Номенклатура2)
2 Мультук
 
19.06.23
15:16
(1)

1)

ИЗ
    РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода , Месяц, ) КАК ПродажиОбороты

2) Ресурсы по "Количество2" и "Сумма2" есть ?

3) И традиционно

https://www.google.com/search?q=курсы+скд
3 GhostCry
 
19.06.23
15:18
(2)  2) Да ресурсы есть. 1) Сейчас попробую.
4 KJlag
 
19.06.23
15:21
(1) вот интересно: а если в первом периоде не было продаж, а во втором были??
5 GhostCry
 
19.06.23
15:24
(2) Сделал 2) пункт теперь во все колонки попадают данные за первый период
(4) как учесть этот момент ?
6 KJlag
 
19.06.23
15:46
(5) делаешь третью виртуальную таблицу, где объединяешь первые две, вытаскивая только номенклатуру. без повторений.
а дальше в итоговой делаешь её главной таблицей, к которой крепишь первый период и второй
7 GhostCry
 
19.06.23
15:57
(6) Хорошо попробуем.
8 GhostCry
 
19.06.23
16:09
(6) Вот так ?

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

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
    ПервыйПериод.Номенклатура КАК Номенклатура,
    ПервыйПериод.Количество КАК Количество,
    ПервыйПериод.Сумма КАК Сумма,
    ВторойПериод.Количество2 КАК Количество2,
    ВторойПериод.Сумма2 КАК Сумма2,
    ВторойПериод.Период2 КАК Период2,
    ПервыйПериод.Период КАК Период
ПОМЕСТИТЬ ДваПериода
ИЗ
    ПервыйПериод КАК ПервыйПериод
        ПОЛНОЕ СОЕДИНЕНИЕ ВторойПериод КАК ВторойПериод
        ПО ПервыйПериод.Номенклатура = ВторойПериод.Номенклатура2
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ДваПериода.Номенклатура КАК Номенклатура,
    ДваПериода.Количество КАК Количество,
    ДваПериода.Сумма КАК Сумма,
    ДваПериода.Количество2 КАК Количество2,
    ДваПериода.Сумма2 КАК Сумма2
ИЗ
    ДваПериода КАК ДваПериода
ГДЕ
    ДваПериода.Период2 МЕЖДУ &НачалоПериода1 И &КонецПериода2
    И ДваПериода.Период МЕЖДУ &НачалоПериода И &КонецПериода
9 vicof
 
19.06.23
17:33
Сделать 4 поля с ресурсами в запросе. По два с каждой таблицы. ОБъединить и сгруппировать.
10 vicof
 
19.06.23
17:33
объединить все, точней
11 GhostCry
 
20.06.23
09:37
(9) Проблема в том что в скд он не выводит данные за второй период. В запросе все работает
12 GhostCry
 
21.06.23
09:36
оставлю может кто то и посмотрит. В колонки за второй период заполняются данными из первого. Конфигурация розница 3.0

Подробности
<?xml version="1.0" encoding="UTF-8"?>
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="" target="_blank">http://www.w3.org/2001/XMLSchema-instance">
    <dataSource>
        <name>ИсточникДанных1</name>
        <dataSourceType>Local</dataSourceType>
    </dataSource>
    <dataSet xsi:type="DataSetQuery">
        <name>НаборДанных1</name>
        <field xsi:type="DataSetFieldField">
            <dataPath>Подразделение</dataPath>
            <field>Подразделение</field>
            <appearance/>
            <inputParameters/>
        </field>
        <field xsi:type="DataSetFieldField">
            <dataPath>Номенклатура</dataPath>
            <field>Номенклатура</field>
            <role>
                <dcscom:dimension>true</dcscom:dimension>
            </role>
            <appearance/>
            <inputParameters/>
        </field>
        <field xsi:type="DataSetFieldField">
            <dataPath>Документ</dataPath>
            <field>Документ</field>
            <appearance/>
            <inputParameters/>
        </field>
        <field xsi:type="DataSetFieldField">
            <dataPath>Характеристика</dataPath>
            <field>Характеристика</field>
            <appearance/>
            <inputParameters/>
        </field>
        <field xsi:type="DataSetFieldField">
            <dataPath>Партия</dataPath>
            <field>Партия</field>
            <appearance/>
            <inputParameters/>
        </field>
        <field xsi:type="DataSetFieldField">
            <dataPath>Проект</dataPath>
            <field>Проект</field>
            <appearance/>
            <inputParameters/>
        </field>
        <field xsi:type="DataSetFieldField">
            <dataPath>Контрагент</dataPath>
            <field>Контрагент</field>
            <appearance/>
            <inputParameters/>
        </field>
        <field xsi:type="DataSetFieldField">
            <dataPath>Организация</dataPath>
            <field>Организация</field>
            <appearance/>
            <inputParameters/>
        </field>
        <field xsi:type="DataSetFieldField">
            <dataPath>СтавкаНДС</dataPath>
            <field>СтавкаНДС</field>
            <appearance/>
            <inputParameters/>
        </field>
        <field xsi:type="DataSetFieldField">
            <dataPath>ЗаказПокупателя</dataPath>
            <field>ЗаказПокупателя</field>
            <appearance/>
            <inputParameters/>
        </field>
        <field xsi:type="DataSetFieldField">
            <dataPath>Склад</dataPath>
            <field>Склад</field>
            <appearance/>
            <inputParameters/>
        </field>
        <field xsi:type="DataSetFieldField">
            <dataPath>Ответственный</dataPath>
            <field>Ответственный</field>
            <appearance/>
            <inputParameters/>
        </field>
        <field xsi:type="DataSetFieldField">
            <dataPath>НоменклатураНабора</dataPath>
            <field>НоменклатураНабора</field>
            <appearance/>
            <inputParameters/>
        </field>
        <field xsi:type="DataSetFieldField">
            <dataPath>ХарактеристикаНабора</dataPath>
            <field>ХарактеристикаНабора</field>
            <appearance/>
            <inputParameters/>
        </field>
        <field xsi:type="DataSetFieldField">
            <dataPath>Количество</dataPath>
            <field>Количество</field>
            <title xsi:type="v8:LocalStringType">
                <v8:item>
                    <v8:lang>ru</v8:lang>
                    <v8:content>Количество</v8:content>
                </v8:item>
            </title>
            <appearance/>
            <inputParameters/>
        </field>
        <field xsi:type="DataSetFieldField">
            <dataPath>Сумма</dataPath>
            <field>Сумма</field>
            <title xsi:type="v8:LocalStringType">
                <v8:item>
                    <v8:lang>ru</v8:lang>
                    <v8:content>Сумма</v8:content>
                </v8:item>
            </title>
            <appearance/>
            <inputParameters/>
        </field>
        <field xsi:type="DataSetFieldField">
            <dataPath>Количество2</dataPath>
            <field>Количество2</field>
            <title xsi:type="v8:LocalStringType">
                <v8:item>
                    <v8:lang>ru</v8:lang>
                    <v8:content>Количество2</v8:content>
                </v8:item>
            </title>
            <appearance/>
            <inputParameters/>
        </field>
        <field xsi:type="DataSetFieldField">
            <dataPath>Сумма2</dataPath>
            <field>Сумма2</field>
            <title xsi:type="v8:LocalStringType">
                <v8:item>
                    <v8:lang>ru</v8:lang>
                    <v8:content>Сумма2</v8:content>
                </v8:item>
            </title>
            <appearance/>
        </field>
        <dataSource>ИсточникДанных1</dataSource>
        <query>ВЫБРАТЬ
    ПродажиОбороты.Номенклатура КАК Номенклатура,
    ПродажиОбороты.КоличествоОборот КАК Количество,
    ПродажиОбороты.СуммаОборот КАК Сумма,
    ПродажиОбороты.Период КАК Период
ПОМЕСТИТЬ ПервыйПериод
ИЗ
    РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, Месяц, ) КАК ПродажиОбороты
;

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ПервыйПериод.Номенклатура КАК Номенклатура,
    ПервыйПериод.Количество КАК Количество,
    ПервыйПериод.Сумма КАК Сумма,
    ВторойПериод.Количество2 КАК Количество2,
    ВторойПериод.Сумма2 КАК Сумма2
ИЗ
    ПервыйПериод КАК ПервыйПериод
        ЛЕВОЕ СОЕДИНЕНИЕ ВторойПериод КАК ВторойПериод
        ПО (ПервыйПериод.Номенклатура = ВторойПериод.Номенклатура2)</query>
    </dataSet>
    <totalField>
        <dataPath>Количество</dataPath>
        <expression>Сумма(Количество)</expression>
    </totalField>
    <totalField>
        <dataPath>Сумма</dataPath>
        <expression>Сумма(Сумма)</expression>
    </totalField>
    <totalField>
        <dataPath>Количество2</dataPath>
        <expression>Сумма(Количество2)</expression>
    </totalField>
    <totalField>
        <dataPath>Сумма2</dataPath>
        <expression>Сумма(Сумма2)</expression>
    </totalField>
    <parameter>
        <name>НачалоПериода</name>
        <title xsi:type="v8:LocalStringType">
            <v8:item>
                <v8:lang>ru</v8:lang>
                <v8:content>Начало периода</v8:content>
            </v8:item>
        </title>
        <valueType>
            <v8:Type>xs:dateTime</v8:Type>
            <v8:DateQualifiers>
                <v8:DateFractions>DateTime</v8:DateFractions>
            </v8:DateQualifiers>
        </valueType>
        <value xsi:type="xs:dateTime">0001-01-01T00:00:00</value>
        <useRestriction>false</useRestriction>
        <expression>&Период1.ДатаНачала</expression>
        <inputParameters/>
    </parameter>
    <parameter>
        <name>КонецПериода</name>
        <title xsi:type="v8:LocalStringType">
            <v8:item>
                <v8:lang>ru</v8:lang>
                <v8:content>Конец периода</v8:content>
            </v8:item>
        </title>
        <valueType>
            <v8:Type>xs:dateTime</v8:Type>
            <v8:DateQualifiers>
                <v8:DateFractions>DateTime</v8:DateFractions>
            </v8:DateQualifiers>
        </valueType>
        <value xsi:type="xs:dateTime">0001-01-01T00:00:00</value>
        <useRestriction>false</useRestriction>
        <expression>&Период1.ДатаОкончания</expression>
        <inputParameters/>
    </parameter>
    <parameter>
        <name>НачалоПериода2</name>
        <title xsi:type="v8:LocalStringType">
            <v8:item>
                <v8:lang>ru</v8:lang>
                <v8:content>Начало периода2</v8:content>
            </v8:item>
        </title>
        <valueType>
            <v8:Type>xs:dateTime</v8:Type>
            <v8:DateQualifiers>
                <v8:DateFractions>DateTime</v8:DateFractions>
            </v8:DateQualifiers>
        </valueType>
        <value xsi:type="xs:dateTime">0001-01-01T00:00:00</value>
        <useRestriction>false</useRestriction>
        <expression>&Период2.ДатаНачала</expression>
        <inputParameters/>
    </parameter>
    <parameter>
        <name>КонецПериода2</name>
        <title xsi:type="v8:LocalStringType">
            <v8:item>
                <v8:lang>ru</v8:lang>
                <v8:content>Конец периода2</v8:content>
            </v8:item>
        </title>
        <valueType>
            <v8:Type>xs:dateTime</v8:Type>
            <v8:DateQualifiers>
                <v8:DateFractions>DateTime</v8:DateFractions>
            </v8:DateQualifiers>
        </valueType>
        <value xsi:type="xs:dateTime">0001-01-01T00:00:00</value>
        <useRestriction>false</useRestriction>
        <expression>&Период2.ДатаОкончания</expression>
        <inputParameters/>
    </parameter>
    <parameter>
        <name>Период1</name>
        <title xsi:type="v8:LocalStringType">
            <v8:item>
                <v8:lang>ru</v8:lang>
                <v8:content>Период1</v8:content>
            </v8:item>
        </title>
        <valueType>
            <v8:Type>v8:StandardPeriod</v8:Type>
        </valueType>
        <value xsi:type="v8:StandardPeriod">
            <v8:variant xsi:type="v8:StandardPeriodVariant">Custom</v8:variant>
            <v8:startDate>0001-01-01T00:00:00</v8:startDate>
            <v8:endDate>0001-01-01T00:00:00</v8:endDate>
        </value>
        <useRestriction>false</useRestriction>
        <inputParameters/>
    </parameter>
    <parameter>
        <name>Период2</name>
        <title xsi:type="v8:LocalStringType">
            <v8:item>
                <v8:lang>ru</v8:lang>
                <v8:content>Период2</v8:content>
            </v8:item>
        </title>
        <valueType>
            <v8:Type>v8:StandardPeriod</v8:Type>
        </valueType>
        <value xsi:type="v8:StandardPeriod">
            <v8:variant xsi:type="v8:StandardPeriodVariant">Custom</v8:variant>
            <v8:startDate>0001-01-01T00:00:00</v8:startDate>
            <v8:endDate>0001-01-01T00:00:00</v8:endDate>
        </value>
        <useRestriction>false</useRestriction>
        <inputParameters/>
    </parameter>
    <settingsVariant>
        <dcsset:name>Основной</dcsset:name>
        <dcsset:presentation xsi:type="xs:string">Основной</dcsset:presentation>
        <dcsset:settings xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="" target="_blank">http://v8.1c.ru/8.1/data/ui/colors/windows">
            <dcsset:selection>
                <dcsset:item xsi:type="dcsset:SelectedItemField">
                    <dcsset:field>Количество</dcsset:field>
                </dcsset:item>
                <dcsset:item xsi:type="dcsset:SelectedItemField">
                    <dcsset:field>Сумма</dcsset:field>
                </dcsset:item>
                <dcsset:item xsi:type="dcsset:SelectedItemField">
                    <dcsset:field>Количество2</dcsset:field>
                </dcsset:item>
                <dcsset:item xsi:type="dcsset:SelectedItemField">
                    <dcsset:field>Сумма2</dcsset:field>
                </dcsset:item>
                <dcsset:item xsi:type="dcsset:SelectedItemField">
                    <dcsset:use>false</dcsset:use>
                    <dcsset:field>Номенклатура</dcsset:field>
                </dcsset:item>
            </dcsset:selection>
            <dcsset:dataParameters>
                <dcscor:item xsi:type="dcsset:SettingsParameterValue">
                    <dcscor:parameter>Период1</dcscor:parameter>
                    <dcscor:value xsi:type="v8:StandardPeriod">
                        <v8:variant xsi:type="v8:StandardPeriodVariant">Custom</v8:variant>
                        <v8:startDate>0001-01-01T00:00:00</v8:startDate>
                        <v8:endDate>0001-01-01T00:00:00</v8:endDate>
                    </dcscor:value>
                </dcscor:item>
                <dcscor:item xsi:type="dcsset:SettingsParameterValue">
                    <dcscor:parameter>Период2</dcscor:parameter>
                    <dcscor:value xsi:type="v8:StandardPeriod">
                        <v8:variant xsi:type="v8:StandardPeriodVariant">Custom</v8:variant>
                        <v8:startDate>0001-01-01T00:00:00</v8:startDate>
                        <v8:endDate>0001-01-01T00:00:00</v8:endDate>
                    </dcscor:value>
                </dcscor:item>
            </dcsset:dataParameters>
            <dcsset:outputParameters>
                <dcscor:item xsi:type="dcsset:SettingsParameterValue">
                    <dcscor:parameter>МакетОформления</dcscor:parameter>
                    <dcscor:value xsi:type="xs:string">Античный</dcscor:value>
                </dcscor:item>
            </dcsset:outputParameters>
            <dcsset:item xsi:type="dcsset:StructureItemGroup">
                <dcsset:order>
                    <dcsset:item xsi:type="dcsset:OrderItemAuto"/>
                </dcsset:order>
                <dcsset:selection>
                    <dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
                </dcsset:selection>
                <dcsset:outputParameters/>
            </dcsset:item>
        </dcsset:settings>
    </settingsVariant>
</DataCompositionSchema>
13 АгентБезопасной Нацио
 
20.06.23
16:38
проставь периоды виртуальных таблиц как положено в запросе для скд
и учти, что при левом соединении просрешь часть данных из второго периода
14 GhostCry
 
20.06.23
17:05
(13) ИЗ
    РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, Месяц, ) КАК ПродажиОбороты
это не как положено ?
случайно добавил версию с левым
15 АгентБезопасной Нацио
 
20.06.23
17:29
(14) "как положено" - это перейти, например, на закладку "компоновка" в конструкторе, и назначить параметры у виртуальной таблицы.

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ПродажиОбороты2.Номенклатура КАК Номенклатура2,
    ПродажиОбороты2.КоличествоОборот КАК Количество2,
    ПродажиОбороты2.СуммаОборот КАК Сумма2,
    ПродажиОбороты2.Период КАК Период2
ПОМЕСТИТЬ ВторойПериод
ИЗ
    РегистрНакопления.Продажи.Обороты(&НачалоПериода2 {(&НачалоПериода2)}, &КонецПериода2 {(&КонецПериода2)}, Месяц, ) КАК ПродажиОбороты2
16 GhostCry
 
21.06.23
09:25
(15) Спасибо большее очень помогло !
Работает как нужно.
17 GhostCry
 
21.06.23
09:29
Хотя результат в конструкторе запроса и отличается от скд. Будем разбираться.