|
Срез последних на дату документа
| ☑ |
0
Admin_Net_1C
05.09.14
✎
08:54
|
Народ, подскажите плиз. Начал изучать СКД. Необходимо создать отчет (конфа УТ 11.1.7.56), который выводит по документам Внутреннее потребление информацию по количеству и сумме (сумма получается как количетсво * цену, по виду цен, который указан в документе). Набросал схему компоновки данных:
<dataCompositionSchema xmlns="; xmlns:dcscom="; xmlns:dcscor="; xmlns:dcsset="; xmlns:v8="; xmlns:v8ui="; xmlns:xs="; xmlns:xsi=";
<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>ВЫБРАТЬ
&Дата,
ЦеныНоменклатурыСрезПоследних.ВидЦены,
ЦеныНоменклатурыСрезПоследних.Номенклатура,
ЦеныНоменклатурыСрезПоследних.Цена
ИЗ
РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
&Дата,
ВидЦены = &ВидЦены
И Номенклатура = &Номенклатура) КАК ЦеныНоменклатурыСрезПоследних</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=";
</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=";
</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="; xmlns:sys="; xmlns:web="; xmlns:win=";
<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) Почему цену берет не на дату документа (хотя делал по аналогии с )?
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:
|
|
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) проверил, все в порядке, на мой взгляд
|
|
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) мой вариант решения, если вдруг надо :)
|
|