|
отчет продажи, СКД и задвоение, затроение записей | ☑ | ||
---|---|---|---|---|
0
Эмбеддер
26.03.13
✎
14:11
|
В КА стандартный отчет "продажи" хочу добавить цену товара по типам цен, делаю такое соединение
// Здесь мы определяем даты, откуда будем брать цены ЛЕВОЕ СОЕДИНЕНИЕ ( ВЫБРАТЬ Максимум(РегЦеныВнутр.Период) МаксПериод, НАЧАЛОПЕРИОДА(ОтборПродажи.Регистратор.Дата, День) ПериодДок, РегЦеныВнутр.Номенклатура Номенклатура, РегЦеныВнутр.ТипЦен, РегЦеныВнутр.ХарактеристикаНоменклатуры ИЗ РегистрСведений.ЦеныНоменклатуры РегЦеныВнутр СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, Регистратор, {Номенклатура }) КАК ОтборПродажи ПО РегЦеныВнутр.Номенклатура = ОтборПродажи.Номенклатура И РегЦеныВнутр.ХарактеристикаНоменклатуры = ОтборПродажи.ХарактеристикаНоменклатуры И ВЫБОР КОГДА ОтборПродажи.ДокументПродажи ССЫЛКА Документ.РеализацияТоваровУслуг ТОГДА ВЫРАЗИТЬ(ОтборПродажи.ДокументПродажи КАК Документ.РеализацияТоваровУслуг).ТипЦен ИНАЧЕ Неопределено КОНЕЦ = РегЦеныВнутр.ТипЦен И РегЦеныВнутр.Период<=НАЧАЛОПЕРИОДА(ОтборПродажи.Регистратор.Дата, День) СГРУППИРОВАТЬ ПО НАЧАЛОПЕРИОДА(ОтборПродажи.Регистратор.Дата, День), РегЦеныВнутр.Номенклатура, РегЦеныВнутр.ТипЦен, РегЦеныВнутр.ХарактеристикаНоменклатуры ) ЗапросЦен ПО ИсточникДанных.Номенклатура=ЗапросЦен.Номенклатура И ВЫБОР КОГДА ИсточникДанных.ДокументПродажи ССЫЛКА Документ.РеализацияТоваровУслуг ТОГДА ВЫРАЗИТЬ(ИсточникДанных.ДокументПродажи КАК Документ.РеализацияТоваровУслуг).ТипЦен ИНАЧЕ Неопределено КОНЕЦ = ЗапросЦен.ТипЦен И ИсточникДанных.ХарактеристикаНоменклатуры=ЗапросЦен.ХарактеристикаНоменклатуры И ЗапросЦен.ПериодДок=НАЧАЛОПЕРИОДА(ИсточникДанных.Регистратор.Дата, День) // а здесь собственно сами цены на эти даты ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ Период, ТипЦен, Номенклатура, ХарактеристикаНоменклатуры, Цена ИЗ РегистрСведений.ЦеныНоменклатуры ) РегЦены ПО РегЦены.Номенклатура = ЗапросЦен.Номенклатура И РегЦены.ХарактеристикаНоменклатуры = ЗапросЦен.ХарактеристикаНоменклатуры И РегЦены.ТипЦен = ЗапросЦен.ТипЦен И РегЦены.Период=ЗапросЦен.МаксПериод если просто выполняю запрос, все соединяется нормально. а в отчете продаж записи множатся. подозреваю, что это происходит из-за того, что СКД выкидывает какие-то неиспользуемые поля, они уходят из условия и записи множатся. что надо сделать с фигурными скобками, чтобы все условия в отборе сохранились (их не выкинуло СКД)? |
|||
1
samozvanec
26.03.13
✎
14:17
|
че значит множатся?
|
|||
2
Эмбеддер
26.03.13
✎
14:24
|
(1) например, в 2-х таблицах (продажи и цены) по 10 записей, везде номенклатура+характеристика номенклатуры+период уникальные (различные). и соединяем их по условию номенклатура=номенклатура, характеристика=характеристика, период=период, то при равенстве всех наборов 10 записей так и останется. но если выкинуть какие-то проверки, что делает СКД, оставив допустим только номенклатура=номенклатура, то записей станет больше 10, максимум 10*10=100 штук
|
|||
3
samozvanec
26.03.13
✎
14:35
|
(2) типа СКД игнорирует условия соединения, ты это имеешь в виду?
|
|||
4
Эмбеддер
26.03.13
✎
14:40
|
(3) да
|
|||
5
samozvanec
26.03.13
✎
14:46
|
(4) не бывает такого. смотри настройки. может там связь наборов, может ресурсы как-то по-хитрому считают...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |