|
УТ 10.2. Переделанная. Регистр накоплений «Заказы покупателей» | ☑ | ||
---|---|---|---|---|
0
sol
03.10.11
✎
09:39
|
Уважаемые форумчане!
Есть отчет, который выдает состояние количества регистра накопления ЗаказыПокупателей на текущую дату, а не на дату окончания периода отчета. Например, сегодня 03.10.2011, а в отчете задан период на 1 полугодие 2011. Так отчет будет выдавать количество не на 30.06.2011, а на сегодняшний день. А мне нужны данные на конец заданного периода. Ниже привожу текст запроса: Текст = "ВЫБРАТЬ | СУММА(ТаблицаРегистра.КоличествоОборот) КАК Количество, | СУММА(ТаблицаРегистра.КоличествоОборот * ТаблицаРегистра.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент) КАК КоличествоБазовыхЕд, | СУММА(ТаблицаРегистра.СтоимостьОборот) КАК Стоимость, | СУММА(ЕСТЬNULL(ТаблицаРегистраСебестоимость.СтоимостьОборот, 0) + ЕСТЬNULL(ТаблицаРегистраСебестоимостьКорректировка.СтоимостьОборот, 0)) КАК Себестоимость, | СУММА(ТаблицаРегистра.СтоимостьОборот - ЕСТЬNULL(ТаблицаРегистраСебестоимость.СтоимостьОборот, 0) - ЕСТЬNULL(ТаблицаРегистраСебестоимостьКорректировка.СтоимостьОборот, 0)) КАК ВаловаяПрибыль, | ВЫРАЗИТЬ(ВЫБОР | КОГДА СУММА(ТаблицаРегистра.КоличествоОборот) <> 0 | ТОГДА СУММА(ТаблицаРегистра.СтоимостьОборот) / СУММА(ТаблицаРегистра.КоличествоОборот) | ИНАЧЕ ""-"" | КОНЕЦ КАК ЧИСЛО(15, 2)) КАК ЦенаПрод, | ВЫРАЗИТЬ(ВЫБОР | КОГДА СУММА(ТаблицаРегистра.КоличествоОборот) <> 0 | ТОГДА СУММА(ЕСТЬNULL(ТаблицаРегистраСебестоимость.СтоимостьОборот, 0) + ЕСТЬNULL(ТаблицаРегистраСебестоимостьКорректировка.СтоимостьОборот, 0)) / СУММА(ТаблицаРегистра.КоличествоОборот) | ИНАЧЕ ""-"" | КОНЕЦ КАК ЧИСЛО(15, 2)) КАК ЦенаСеб, | ВЫРАЗИТЬ(ВЫБОР | КОГДА СУММА(ТаблицаРегистра.СтоимостьОборот) <> 0 | ТОГДА СУММА(100 * (ТаблицаРегистра.СтоимостьОборот - ЕСТЬNULL(ТаблицаРегистраСебестоимость.СтоимостьОборот, 0) - ЕСТЬNULL(ТаблицаРегистраСебестоимостьКорректировка.СтоимостьОборот, 0))) / СУММА(ТаблицаРегистра.СтоимостьОборот) | ИНАЧЕ ""-"" | КОНЕЦ КАК ЧИСЛО(15, 2)) КАК РентабельностьПродаж, | ТаблицаРегистра.ДоговорКонтрагента.Владелец КАК Покупатель, | ТаблицаРегистра.Номенклатура КАК Номенклатура, | ТаблицаРегистра.Номенклатура.БазоваяЕдиницаИзмерения КАК НоменклатураБазоваяЕдиницаИзмерения, | ВЫБОР | КОГДА РасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток = РасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовПриход | ТОГДА ""Не оплачено"" | КОГДА РасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток > 0 | ТОГДА ""Оплачено частично"" | КОГДА РасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток = 0 | ИЛИ РасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток ЕСТЬ NULL | ТОГДА ""Оплачено полностью"" | ИНАЧЕ ""Переплата"" | КОНЕЦ КАК СостояниеОплаты, | ВЫБОР | КОГДА ЗаказыПокупателейОстатки.КоличествоОстаток = 0 | ИЛИ ЗаказыПокупателейОстатки.КоличествоОстаток ЕСТЬ NULL | ТОГДА ""Отгружено полностью"" | ИНАЧЕ ВЫБОР | КОГДА ЗаказыПокупателейОстатки.КоличествоОстаток > 0 | ТОГДА ""Отгружено частично"" | ИНАЧЕ ""Отгружен излишек"" | КОНЕЦ | КОНЕЦ КАК СостояниеОтгрузки, | ВЫБОР | КОГДА ТаблицаРегистра.ЗаказПокупателя.ВалютаДокумента = &Рубли | ТОГДА ТаблицаРегистра.ЗаказПокупателя.СуммаДокумента | ИНАЧЕ ВЫРАЗИТЬ(ТаблицаРегистра.ЗаказПокупателя.СуммаДокумента * ТаблицаРегистра.ЗаказПокупателя.КурсВзаиморасчетов КАК ЧИСЛО(15, 2)) | КОНЕЦ КАК СуммаЗаказаУпр |{ВЫБРАТЬ | ТаблицаРегистра.ДоговорКонтрагента.Владелец.* КАК Покупатель, | ТаблицаРегистра.ДоговорКонтрагента.* КАК ДоговорКонтрагента, | ТаблицаРегистра.ЗаказПокупателя.* КАК ЗаказПокупателя, | ТаблицаРегистра.Номенклатура.* КАК Номенклатура, | ТаблицаРегистра.Номенклатура.БазоваяЕдиницаИзмерения.* КАК НоменклатураБазоваяЕдиницаИзмерения, | ТаблицаРегистра.ХарактеристикаНоменклатуры.* КАК ХарактеристикаНоменклатуры, | ТаблицаРегистра.ДокументПродажи.* КАК ДокументПродажи, | ТаблицаРегистра.Подразделение.* КАК Подразделение, | ТаблицаРегистра.Период, | ТаблицаРегистра.Регистратор.* КАК Регистратор, | (НАЧАЛОПЕРИОДА(ТаблицаРегистра.Период, ДЕНЬ)) КАК ПериодДень, | (НАЧАЛОПЕРИОДА(ТаблицаРегистра.Период, НЕДЕЛЯ)) КАК ПериодНеделя, | (НАЧАЛОПЕРИОДА(ТаблицаРегистра.Период, МЕСЯЦ)) КАК ПериодМесяц, | (НАЧАЛОПЕРИОДА(ТаблицаРегистра.Период, КВАРТАЛ)) КАК ПериодКвартал, | (НАЧАЛОПЕРИОДА(ТаблицаРегистра.Период, ГОД)) КАК ПериодГод, | СостояниеОтгрузки, | СостояниеОплаты, | СуммаЗаказаУпр} |ИЗ | РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, Регистратор, ) КАК ТаблицаРегистра | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПродажиСебестоимость.Обороты(&ДатаНач, &ДатаКон, Регистратор, ) КАК ТаблицаРегистраСебестоимость | ПО ТаблицаРегистра.Номенклатура = ТаблицаРегистраСебестоимость.Номенклатура | И ТаблицаРегистра.ХарактеристикаНоменклатуры = ТаблицаРегистраСебестоимость.ХарактеристикаНоменклатуры | И ТаблицаРегистра.ЗаказПокупателя = ТаблицаРегистраСебестоимость.ЗаказПокупателя | И ТаблицаРегистра.Подразделение = ТаблицаРегистраСебестоимость.Подразделение | И ТаблицаРегистра.Регистратор = ТаблицаРегистраСебестоимость.Регистратор | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | СУММА(ПродажиСебестоимость.Стоимость) КАК СтоимостьОборот, | ПродажиСебестоимость.Номенклатура КАК Номенклатура, | ПродажиСебестоимость.ДокументДвижения КАК ДокументДвижения, | ПродажиСебестоимость.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, | ПродажиСебестоимость.ЗаказПокупателя КАК ЗаказПокупателя, | ПродажиСебестоимость.Подразделение КАК Подразделение | ИЗ | РегистрНакопления.ПродажиСебестоимость КАК ПродажиСебестоимость | | СГРУППИРОВАТЬ ПО | ПродажиСебестоимость.Номенклатура, | ПродажиСебестоимость.ДокументДвижения, | ПродажиСебестоимость.ХарактеристикаНоменклатуры, | ПродажиСебестоимость.ЗаказПокупателя, | ПродажиСебестоимость.Подразделение) КАК ТаблицаРегистраСебестоимостьКорректировка | ПО (ТаблицаРегистраСебестоимостьКорректировка.Номенклатура = ТаблицаРегистра.Номенклатура) | И (ТаблицаРегистраСебестоимостьКорректировка.ХарактеристикаНоменклатуры = ТаблицаРегистра.ХарактеристикаНоменклатуры) | И (ТаблицаРегистраСебестоимостьКорректировка.ЗаказПокупателя = ТаблицаРегистра.ЗаказПокупателя) | И (ТаблицаРегистраСебестоимостьКорректировка.Подразделение = ТаблицаРегистра.Подразделение) | И (ТаблицаРегистраСебестоимостьКорректировка.ДокументДвижения = ТаблицаРегистра.Регистратор) | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыПокупателей.Остатки(&ДатаКон, ) КАК ЗаказыПокупателейОстатки | ПО ТаблицаРегистра.ЗаказПокупателя = ЗаказыПокупателейОстатки.ЗаказПокупателя | И ТаблицаРегистра.Номенклатура = ЗаказыПокупателейОстатки.Номенклатура | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РасчетыСКонтрагентами.ОстаткиИОбороты КАК РасчетыСКонтрагентамиОстаткиИОбороты | ПО ТаблицаРегистра.ЗаказПокупателя = РасчетыСКонтрагентамиОстаткиИОбороты.Сделка | И ТаблицаРегистра.ДоговорКонтрагента = РасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента |{ГДЕ | ТаблицаРегистра.ДоговорКонтрагента.Владелец.* КАК Покупатель, | ТаблицаРегистра.ДоговорКонтрагента.* КАК ДоговорКонтрагента, | ТаблицаРегистра.ЗаказПокупателя.* КАК ЗаказПокупателя, | ТаблицаРегистра.Номенклатура.* КАК Номенклатура, | ТаблицаРегистра.Номенклатура.БазоваяЕдиницаИзмерения.* КАК НоменклатураБазоваяЕдиницаИзмерения, | ТаблицаРегистра.ХарактеристикаНоменклатуры.* КАК ХарактеристикаНоменклатуры, | ТаблицаРегистра.ДокументПродажи.* КАК ДокументПродажи, | ТаблицаРегистра.Подразделение.* КАК Подразделение, | ТаблицаРегистра.Период, | ТаблицаРегистра.Регистратор.* КАК Регистратор, | (ВЫБОР | КОГДА ЗаказыПокупателейОстатки.КоличествоОстаток = 0 | ИЛИ ЗаказыПокупателейОстатки.КоличествоОстаток ЕСТЬ NULL | ТОГДА ""Отгружено полностью"" | ИНАЧЕ ""Отгружено частично"" | КОНЕЦ) КАК СостояниеОтгрузки, | (ВЫБОР | КОГДА РасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток = РасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовПриход | ТОГДА ""Не оплачено"" | КОГДА РасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток > 0 | ТОГДА ""Оплачено частично"" | КОГДА РасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток = 0 | ИЛИ РасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток ЕСТЬ NULL | ТОГДА ""Оплачено полностью"" | ИНАЧЕ ""Переплата"" | КОНЕЦ) КАК СостояниеОплаты} | |СГРУППИРОВАТЬ ПО | ТаблицаРегистра.ДоговорКонтрагента.Владелец, | ТаблицаРегистра.Номенклатура, | ТаблицаРегистра.Номенклатура.БазоваяЕдиницаИзмерения, | ВЫБОР | КОГДА ЗаказыПокупателейОстатки.КоличествоОстаток = 0 | ИЛИ ЗаказыПокупателейОстатки.КоличествоОстаток ЕСТЬ NULL | ТОГДА ""Отгружено полностью"" | ИНАЧЕ ВЫБОР | КОГДА ЗаказыПокупателейОстатки.КоличествоОстаток > 0 | ТОГДА ""Отгружено частично"" | ИНАЧЕ ""Отгружен излишек"" | КОНЕЦ | КОНЕЦ, | ВЫБОР | КОГДА РасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток = 0 | ИЛИ РасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток ЕСТЬ NULL | ТОГДА ""Оплачено полностью"" | ИНАЧЕ ВЫБОР | КОГДА РасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток > 0 | ТОГДА ""Оплачено частично"" | ИНАЧЕ ""Переплата"" | КОНЕЦ | КОНЕЦ, | ВЫБОР | КОГДА РасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток = РасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовПриход | ТОГДА ""Не оплачено"" | КОГДА РасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток > 0 | ТОГДА ""Оплачено частично"" | КОГДА РасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток = 0 | ИЛИ РасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток ЕСТЬ NULL | ТОГДА ""Оплачено полностью"" | ИНАЧЕ ""Переплата"" | КОНЕЦ, | ВЫБОР | КОГДА ТаблицаРегистра.ЗаказПокупателя.ВалютаДокумента = &Рубли | ТОГДА ТаблицаРегистра.ЗаказПокупателя.СуммаДокумента | ИНАЧЕ ВЫРАЗИТЬ(ТаблицаРегистра.ЗаказПокупателя.СуммаДокумента * ТаблицаРегистра.ЗаказПокупателя.КурсВзаиморасчетов КАК ЧИСЛО(15, 2)) | КОНЕЦ |{УПОРЯДОЧИТЬ ПО | ТаблицаРегистра.ДоговорКонтрагента.Владелец.* КАК Покупатель, | ТаблицаРегистра.ДоговорКонтрагента.* КАК ДоговорКонтрагента, | ТаблицаРегистра.ЗаказПокупателя.* КАК ЗаказПокупателя, | ТаблицаРегистра.Номенклатура.* КАК Номенклатура, | ТаблицаРегистра.Номенклатура.БазоваяЕдиницаИзмерения.* КАК НоменклатураБазоваяЕдиницаИзмерения, | ТаблицаРегистра.ХарактеристикаНоменклатуры.* КАК ХарактеристикаНоменклатуры, | ТаблицаРегистра.ДокументПродажи.* КАК ДокументПродажи, | ТаблицаРегистра.Подразделение.* КАК Подразделение, | ТаблицаРегистра.Период, | ТаблицаРегистра.Регистратор.* КАК Регистратор, | СостояниеОтгрузки, | СостояниеОплаты} |ИТОГИ | СУММА(Количество), | СУММА(КоличествоБазовыхЕд), | СУММА(Стоимость), | СУММА(Себестоимость), | СУММА(ВаловаяПрибыль), | ВЫБОР | КОГДА СУММА(Количество) <> 0 | ТОГДА СУММА(Стоимость) / СУММА(Количество) | ИНАЧЕ ""-"" | КОНЕЦ КАК ЦенаПрод, | ВЫБОР | КОГДА СУММА(Количество) <> 0 | ТОГДА СУММА(Себестоимость) / СУММА(Количество) | ИНАЧЕ ""-"" | КОНЕЦ КАК ЦенаСеб, | ВЫБОР | КОГДА СУММА(Стоимость) <> 0 | ТОГДА 100 * (СУММА(Стоимость) - СУММА(Себестоимость)) / СУММА(Стоимость) | ИНАЧЕ ""-"" | КОНЕЦ КАК РентабельностьПродаж |ПО | ОБЩИЕ, | Покупатель, | Номенклатура |{ИТОГИ ПО | Покупатель.* КАК Покупатель, | ТаблицаРегистра.ДоговорКонтрагента.* КАК ДоговорКонтрагента, | ТаблицаРегистра.ЗаказПокупателя.* КАК ЗаказПокупателя, | Номенклатура.* КАК Номенклатура, | НоменклатураБазоваяЕдиницаИзмерения.* КАК НоменклатураБазоваяЕдиницаИзмерения, | ТаблицаРегистра.ХарактеристикаНоменклатуры.* КАК ХарактеристикаНоменклатуры, | ТаблицаРегистра.ДокументПродажи.* КАК ДокументПродажи, | ТаблицаРегистра.Подразделение.* КАК Подразделение, | (НАЧАЛОПЕРИОДА(ТаблицаРегистра.Период, ДЕНЬ)) КАК ПериодДень, | (НАЧАЛОПЕРИОДА(ТаблицаРегистра.Период, НЕДЕЛЯ)) КАК ПериодНеделя, | (НАЧАЛОПЕРИОДА(ТаблицаРегистра.Период, МЕСЯЦ)) КАК ПериодМесяц, | (НАЧАЛОПЕРИОДА(ТаблицаРегистра.Период, КВАРТАЛ)) КАК ПериодКвартал, | (НАЧАЛОПЕРИОДА(ТаблицаРегистра.Период, ГОД)) КАК ПериодГод, | СостояниеОтгрузки, | СостояниеОплаты} |АВТОУПОРЯДОЧИВАНИЕ"; |
|||
1
ZOMI
03.10.11
✎
09:48
|
как параметр &ДатаКон устанавливается ?
|
|||
2
sol
03.10.11
✎
09:56
|
(1) &ДатаКон соответствует концу заданного периода. Проверил в отладчике.
|
|||
3
sol
03.10.11
✎
11:07
|
(2) + Посмотрел в конструкторе запросов конструктор выражений. Слишком мало средств для маневра.
Может быть кто-нибудь намекнет хотя бы средства для решения этой проблемы? |
|||
4
sol
03.10.11
✎
11:38
|
Или это может быть связано со свойствами данного регистра накопления?
|
|||
5
poligraf
03.10.11
✎
11:41
|
ИЗ
| РегистрНакопления.ПродажиСебестоимость КАК ПродажиСебестоимость Нашел одну таблицу, у которой период не задан Может и другие есть |
|||
6
sol
03.10.11
✎
13:03
|
(5) Посмотри в конструкторе запроса. Период для данной таблицы задан.
|
|||
7
poligraf
03.10.11
✎
14:56
|
(6) 1. Не буду я твой запрос в конструктор пихать, не хочется.
2. В тексте я вижу, что период не задан 3. Наши мнения не обязаны совпадать |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |