Имя: Пароль:
1C
 
Срез последних на дату документа
0 Admin_Net_1C
 
05.09.14
08:54
Народ, подскажите плиз. Начал изучать СКД. Необходимо создать отчет (конфа УТ 11.1.7.56), который выводит по документам Внутреннее потребление информацию по количеству и сумме (сумма получается как количетсво * цену, по виду цен, который указан в документе). Набросал схему компоновки данных:



<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="http://www.w3.org/2001/XMLSchema-instance">;
    <dataSource>
        <name>ИсточникДанных1</name>
        <dataSourceType>Local</dataSourceType>
    </dataSource>
    <dataSet xsi:type="DataSetQuery">
        <name>СписокДокументов</name>
        <field xsi:type="DataSetFieldField">
            <dataPath>Количество</dataPath>
            <field>Количество</field>
        </field>
        <field xsi:type="DataSetFieldField">
            <dataPath>ВидЦены</dataPath>
            <field>ВидЦены</field>
        </field>
        <field xsi:type="DataSetFieldField">
            <dataPath>Упаковка</dataPath>
            <field>Упаковка</field>
        </field>
        <field xsi:type="DataSetFieldField">
            <dataPath>Ссылка</dataPath>
            <field>Ссылка</field>
        </field>
        <field xsi:type="DataSetFieldField">
            <dataPath>КоличествоУпаковок</dataPath>
            <field>КоличествоУпаковок</field>
        </field>
        <field xsi:type="DataSetFieldField">
            <dataPath>Номенклатура</dataPath>
            <field>Номенклатура</field>
        </field>
        <field xsi:type="DataSetFieldField">
            <dataPath>Дата</dataPath>
            <field>Дата</field>
        </field>
        <dataSource>ИсточникДанных1</dataSource>
        <query>ВЫБРАТЬ
    ВнутреннееПотреблениеТоваровТовары.Ссылка,
    ВнутреннееПотреблениеТоваровТовары.Ссылка.Дата,
    ВнутреннееПотреблениеТоваровТовары.Ссылка.ВидЦены,
    ВнутреннееПотреблениеТоваровТовары.Номенклатура,
    ВнутреннееПотреблениеТоваровТовары.Упаковка,
    СУММА(ВнутреннееПотреблениеТоваровТовары.КоличествоУпаковок) КАК КоличествоУпаковок,
    СУММА(ВнутреннееПотреблениеТоваровТовары.Количество) КАК Количество
ИЗ
    Документ.ВнутреннееПотреблениеТоваров.Товары КАК ВнутреннееПотреблениеТоваровТовары
ГДЕ
    ВнутреннееПотреблениеТоваровТовары.Ссылка.Проведен

СГРУППИРОВАТЬ ПО
    ВнутреннееПотреблениеТоваровТовары.Ссылка,
    ВнутреннееПотреблениеТоваровТовары.Ссылка.ВидЦены,
    ВнутреннееПотреблениеТоваровТовары.Номенклатура,
    ВнутреннееПотреблениеТоваровТовары.Упаковка</query>
    </dataSet>
    <dataSet xsi:type="DataSetQuery">
        <name>ЦеныНоменклатуры</name>
        <field xsi:type="DataSetFieldField">
            <dataPath>Номенклатура</dataPath>
            <field>Номенклатура</field>
        </field>
        <field xsi:type="DataSetFieldField">
            <dataPath>Цена</dataPath>
            <field>Цена</field>
        </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>
        </field>
        <field xsi:type="DataSetFieldField">
            <dataPath>ВидЦены</dataPath>
            <field>ВидЦены</field>
        </field>
        <dataSource>ИсточникДанных1</dataSource>
        <query>ВЫБРАТЬ
    &amp;Дата,
    ЦеныНоменклатурыСрезПоследних.ВидЦены,
    ЦеныНоменклатурыСрезПоследних.Номенклатура,
    ЦеныНоменклатурыСрезПоследних.Цена
ИЗ
    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
            &amp;Дата,
            ВидЦены = &amp;ВидЦены
                И Номенклатура = &amp;Номенклатура) КАК ЦеныНоменклатурыСрезПоследних</query>
    </dataSet>
    <dataSetLink>
        <sourceDataSet>СписокДокументов</sourceDataSet>
        <destinationDataSet>ЦеныНоменклатуры</destinationDataSet>
        <sourceExpression>Дата</sourceExpression>
        <destinationExpression>Дата</destinationExpression>
        <parameter>Дата</parameter>
        <parameterListAllowed>false</parameterListAllowed>
    </dataSetLink>
    <dataSetLink>
        <sourceDataSet>СписокДокументов</sourceDataSet>
        <destinationDataSet>ЦеныНоменклатуры</destinationDataSet>
        <sourceExpression>ВидЦены</sourceExpression>
        <destinationExpression>ВидЦены</destinationExpression>
        <parameter>ВидЦены</parameter>
        <parameterListAllowed>false</parameterListAllowed>
    </dataSetLink>
    <dataSetLink>
        <sourceDataSet>СписокДокументов</sourceDataSet>
        <destinationDataSet>ЦеныНоменклатуры</destinationDataSet>
        <sourceExpression>Номенклатура</sourceExpression>
        <destinationExpression>Номенклатура</destinationExpression>
        <parameter>Номенклатура</parameter>
        <parameterListAllowed>false</parameterListAllowed>
    </dataSetLink>
    <calculatedField>
        <dataPath>СуммаПоСтрокеДокумента</dataPath>
        <expression>Количество * Цена</expression>
        <title xsi:type="v8:LocalStringType">
            <v8:item>
                <v8:lang>ru</v8:lang>
                <v8:content>Сумма</v8:content>
            </v8:item>
        </title>
    </calculatedField>
    <totalField>
        <dataPath>Количество</dataPath>
        <expression>Сумма(Количество)</expression>
    </totalField>
    <totalField>
        <dataPath>КоличествоУпаковок</dataPath>
        <expression>Сумма(КоличествоУпаковок)</expression>
    </totalField>
    <totalField>
        <dataPath>Цена</dataPath>
        <expression>Сумма(Цена)</expression>
        <group>Номенклатура</group>
    </totalField>
    <totalField>
        <dataPath>СуммаПоСтрокеДокумента</dataPath>
        <expression>Сумма(СуммаПоСтрокеДокумента)</expression>
        <group>Номенклатура</group>
        <group>Ссылка</group>
    </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>
    </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 xmlns:d4p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d4p1:CatalogRef.ВидыЦен</v8:Type>;
        </valueType>
        <value xsi:type="dcscor:DesignTimeValue">Справочник.ВидыЦен.ПустаяСсылка</value>
        <useRestriction>true</useRestriction>
    </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>true</useRestriction>
    </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 xmlns:d4p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d4p1:CatalogRef.Номенклатура</v8:Type>;
        </valueType>
        <value xsi:type="dcscor:DesignTimeValue">Справочник.Номенклатура.ПустаяСсылка</value>
        <useRestriction>true</useRestriction>
    </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="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>Количество</dcsset:field>
                </dcsset:item>
                <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:selection>
            <dcsset:dataParameters>
                <dcscor:item xsi:type="dcsset:SettingsParameterValue">
                    <dcscor:parameter>Период</dcscor:parameter>
                    <dcscor:value xsi:type="xs:dateTime">0001-01-01T00:00:00</dcscor:value>
                    <dcsset:userSettingID>a52597a9-578d-46d2-bc1b-97fdd9207b79</dcsset:userSettingID>
                </dcscor:item>
            </dcsset:dataParameters>
            <dcsset:order>
                <dcsset:item xsi:type="dcsset:OrderItemField">
                    <dcsset:field>Ссылка</dcsset:field>
                    <dcsset:orderType>Asc</dcsset:orderType>
                </dcsset:item>
                <dcsset:item xsi:type="dcsset:OrderItemField">
                    <dcsset:field>Номенклатура</dcsset:field>
                    <dcsset:orderType>Asc</dcsset:orderType>
                </dcsset:item>
            </dcsset:order>
            <dcsset:item xsi:type="dcsset:StructureItemGroup">
                <dcsset:groupItems>
                    <dcsset:item xsi:type="dcsset:GroupItemField">
                        <dcsset:field>Ссылка</dcsset:field>
                        <dcsset:groupType>Items</dcsset:groupType>
                        <dcsset:periodAdditionType>None</dcsset:periodAdditionType>
                        <dcsset:periodAdditionBegin xsi:type="xs:dateTime">0001-01-01T00:00:00</dcsset:periodAdditionBegin>
                        <dcsset:periodAdditionEnd xsi:type="xs:dateTime">0001-01-01T00:00:00</dcsset:periodAdditionEnd>
                    </dcsset:item>
                </dcsset:groupItems>
                <dcsset:order>
                    <dcsset:item xsi:type="dcsset:OrderItemAuto"/>
                </dcsset:order>
                <dcsset:selection>
                    <dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
                </dcsset:selection>
                <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:item>
            </dcsset:item>
        </dcsset:settings>
    </settingsVariant>
</dataCompositionSchema>



Пара вопросов:
1) Почему цену берет не на дату документа (хотя делал по аналогии с http://infostart.ru/public/77568/ )?
2) Как добавить отбор по периоду документов в пользовательские поля?

Заранее благодарен за любые подсказки и критику
1 Wobland
 
05.09.14
08:55
(0) экая матрица
2 Admin_Net_1C
 
05.09.14
09:00
(1) выложить в xml?
3 Крошка Ру
 
05.09.14
09:02
(2) А просто запрос можно?
4 Admin_Net_1C
 
05.09.14
09:02
(0) схема в xml: http://dropmefiles.com/pBgqr
5 Admin_Net_1C
 
05.09.14
09:06
(3) Там два набора данных:
Первый:


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

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


Второй:

ВЫБРАТЬ
    &Дата,
    ЦеныНоменклатурыСрезПоследних.ВидЦены,
    ЦеныНоменклатурыСрезПоследних.Номенклатура,
    ЦеныНоменклатурыСрезПоследних.Цена
ИЗ
    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
            &Дата,
            ВидЦены = &ВидЦены
                И Номенклатура = &Номенклатура) КАК ЦеныНоменклатурыСрезПоследних


Связи наборов по полям: Дата, ВидЦены, Номенклатура
6 vyaz
 
05.09.14
09:09
(5) запрос явно должен быть другой
7 Escander
 
05.09.14
09:09
(5) второй запрос выполняешь в цикле?
А что в параметр Дата передаёшь?
И какая периодичность у РС ЦеныНоменклатуры?
8 vyaz
 
05.09.14
09:10
+6
вт с датами документов + соединение с физтаблицой цен и группировка по макс
9 Admin_Net_1C
 
05.09.14
09:11
(6) какой из них?
(7) в параметр Дата передаю из первого запроса ВнутреннееПотреблениеТоваровТовары.Ссылка.Дата (если я правильно понял суть из публикации указанной в (0)). Периодичность - в пределах секунды, подчинен регистратору
10 Admin_Net_1C
 
05.09.14
09:11
(8) а средствами СКД через два набора никак? (делал по аналогии с публикацией из (0))
11 Крошка Ру
 
05.09.14
09:12
(0)>>цену берет не на дату документа

То есть установили цену 1.01, потом 5.01, и для документа от 10.01 показывает цену от 1.01?
12 Admin_Net_1C
 
05.09.14
09:13
(11) да
13 Admin_Net_1C
 
05.09.14
09:13
(12) такое чувство, что во второй запрос не передается дата, поэтому он и выдает цены на текущий момент
14 Escander
 
05.09.14
09:17
(13)а не проще сделать всё в рамках 1 запроса?
15 Крошка Ру
 
05.09.14
09:19
(13)Попробуй так:

ВЫБРАТЬ
    ВнутреннееПотреблениеТоваровТовары.Ссылка,
    ВнутреннееПотреблениеТоваровТовары.Ссылка.Дата КАК Дата,
    ВнутреннееПотреблениеТоваровТовары.Ссылка.ВидЦены КАК ВидЦены,
    ВнутреннееПотреблениеТоваровТовары.Номенклатура, ....
16 vyaz
 
05.09.14
09:19
(10) я когда пробовал СКД вела себя непредсказуемо.
голосую за 1 запрос.
17 Admin_Net_1C
 
05.09.14
09:23
(15) не помогло
(16) ну если так не победю ))), то придется переделывать на 1 запрос. Хотя хотелось бы понять, что не так в моем случае...
18 Крошка Ру
 
05.09.14
09:23
(17) Ещё раз связи наборов проверь
19 Admin_Net_1C
 
05.09.14
09:27
(18) проверил, все в порядке, на мой взгляд
http://www.picshare.ru/view/5147176/
20 Admin_Net_1C
 
05.09.14
09:37
(0) вот нашел поиском http://kb.mista.ru/article.php?id=92
здесь тоже сказано, что можно и через связь наборов данных
21 Admin_Net_1C
 
05.09.14
09:49
гуру СКД, хелп ))
22 Крошка Ру
 
05.09.14
12:29
(21)Вот это вот ещё:

ВЫБРАТЬ
    &Дата КАК Дата,
23 Admin_Net_1C
 
05.09.14
12:44
(22) что это еще?
24 vyaz
 
05.09.14
12:57
(23) Это он имеет ввиду прописать алиас во втором наборе данных, но это все равно не работает, я проверил у себя :)
25 Admin_Net_1C
 
05.09.14
12:58
(24) да, согласен не помогает )
26 Admin_Net_1C
 
05.09.14
13:20
(0) на закладке Параметры, у параметра Период надо прописывать в поле Выражение = "&Дата"?
27 Admin_Net_1C
 
05.09.14
13:24
(0) УРА!!! победил )))
28 vyaz
 
05.09.14
13:46
(26) Откуда у тебя период в параметрах, если ты отключил автозаполнение для второго набора?

PS У меня тоже получилось, добавил все поля в доступные и заработало
29 vyaz
 
05.09.14
13:49
(27)(28) мой вариант решения, если вдруг надо :)
http://dropmefiles.com/cmTyI
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.