|
Срез цен по позиции регистратора | ☑ | ||
---|---|---|---|---|
0
vicof
09.08.11
✎
07:41
|
Добрый день.
Такая задача: получить для каждой номенклатуры из документов списания цену. А также на момент проведения документа списания цену из установки цен номенклатуры, и рассчитать разницу между ними. Покурил Книга знаний: Срез последних на каждую дату в запросе В результате у меня получился следующий запрос: ВЫБРАТЬ Вложенный.Ссылка, Вложенный.Номенклатура, Вложенный.ЕдиницаИзмерения, Вложенный.Количество, Вложенный.Цена, Вложенный.Сумма, Вложенный.Период, Вложенный.ЦеныНоменклатура, Вложенный.ЦеныЕдиницаИзмерения, Вложенный.ЦеныТипЦен, Вложенный.ЦеныЦена ИЗ (ВЫБРАТЬ СписаниеТоваровТовары.Ссылка КАК Ссылка, СписаниеТоваровТовары.Номенклатура КАК Номенклатура, СписаниеТоваровТовары.ЕдиницаИзмерения КАК ЕдиницаИзмерения, СписаниеТоваровТовары.Количество КАК Количество, СписаниеТоваровТовары.Цена КАК Цена, СписаниеТоваровТовары.Сумма КАК Сумма, МАКСИМУМ(ЦеныНоменклатуры.Период) КАК Период, ЦеныНоменклатуры.Номенклатура КАК ЦеныНоменклатура, ЦеныНоменклатуры.ЕдиницаИзмерения КАК ЦеныЕдиницаИзмерения, ЦеныНоменклатуры.ТипЦен КАК ЦеныТипЦен, ЦеныНоменклатуры.Цена КАК ЦеныЦена ИЗ Документ.СписаниеТоваров.Товары КАК СписаниеТоваровТовары ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры ПО СписаниеТоваровТовары.Номенклатура = ЦеныНоменклатуры.Номенклатура И СписаниеТоваровТовары.Ссылка.Склад.ТипЦенРозничнойТорговли >= ЦеныНоменклатуры.ТипЦен И СписаниеТоваровТовары.Ссылка.Дата >= ЦеныНоменклатуры.Период ГДЕ ЦеныНоменклатуры.ТипЦен = &ТипЦен И СписаниеТоваровТовары.Ссылка.СписатьНаФЛ И СписаниеТоваровТовары.Ссылка.ПричинаСписания = &ПричинаСписания СГРУППИРОВАТЬ ПО СписаниеТоваровТовары.Ссылка, СписаниеТоваровТовары.Номенклатура, СписаниеТоваровТовары.ЕдиницаИзмерения, СписаниеТоваровТовары.Количество, СписаниеТоваровТовары.Цена, СписаниеТоваровТовары.Сумма, ЦеныНоменклатуры.Номенклатура, ЦеныНоменклатуры.ЕдиницаИзмерения, ЦеныНоменклатуры.ТипЦен, ЦеныНоменклатуры.Цена) КАК Вложенный ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК Цены ПО Вложенный.Период = Цены.Период И Вложенный.Номенклатура = Цены.Номенклатура И Вложенный.ЦеныТипЦен = Цены.ТипЦен УПОРЯДОЧИТЬ ПО Вложенный.Ссылка, Вложенный.Период УБЫВ Теперь вопрос: как можно дополнительно отфильтровать записи в запросе по периоду? Сейчас для каждой номенклатуры выбираются все установки цен до даты проведения документа списания. Нужна только последняя по дате запись. |
|||
1
Jstunner
09.08.11
✎
07:43
|
в КЗ все есть
|
|||
2
vicof
09.08.11
✎
10:48
|
еще потыкался, в общем, получилось. Кому надо - пользуйтесь.
ВЫБРАТЬ Списание.Ссылка.ФизЛицо КАК Физлицо, Списание.Ссылка.Дата КАК Дата, Списание.Ссылка КАК Регистратор, Списание.Номенклатура КАК Номенклатура, СУММА(Списание.Количество) КАК Количество, Списание.Цена КАК Цена, СУММА(Списание.Сумма) КАК Сумма ПОМЕСТИТЬ ВТБезЦен ИЗ Документ.СписаниеТоваров.Товары КАК Списание ГДЕ Списание.Ссылка.ПричинаСписания = &Причина И Списание.Ссылка.СписатьНаФЛ //И Списание.Номенклатура = &Номен СГРУППИРОВАТЬ ПО Списание.Ссылка.ФизЛицо, Списание.Ссылка.Дата, Списание.Ссылка, Списание.Номенклатура, Списание.Цена ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ втБезЦен.Физлицо КАК Физлицо, втБезЦен.Дата КАК Дата, втБезЦен.Регистратор КАК Регистратор, втБезЦен.Номенклатура КАК Номенклатура, втБезЦен.Цена КАК Цена, втБезЦен.Количество КАК Количество, втБезЦен.Сумма КАК Сумма, МАКСИМУМ(ЦеныНоменклатуры.Период) КАК Период ПОМЕСТИТЬ втМаксПериод ИЗ ВТБезЦен КАК втБезЦен ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры ПО втБезЦен.Номенклатура = ЦеныНоменклатуры.Номенклатура И втБезЦен.Дата >= ЦеныНоменклатуры.Период СГРУППИРОВАТЬ ПО втБезЦен.Физлицо, втБезЦен.Дата, втБезЦен.Регистратор, втБезЦен.Номенклатура, втБезЦен.Цена, втБезЦен.Количество, втБезЦен.Сумма ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ втМаксПериод.Физлицо КАК Физлицо, втМаксПериод.Номенклатура, втМаксПериод.Регистратор, втМаксПериод.Цена КАК ЦенаДокумент, СУММА(втМаксПериод.Количество) КАК Количество, СУММА(втМаксПериод.Сумма) КАК СуммаДокумент, ЦеныНоменклатуры.Цена КАК Цена, СУММА(ЦеныНоменклатуры.Цена * втМаксПериод.Количество) КАК Сумма, СУММА(втМаксПериод.Сумма - ЦеныНоменклатуры.Цена * втМаксПериод.Количество) КАК Разница ИЗ втМаксПериод КАК втМаксПериод ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры ПО втМаксПериод.Номенклатура = ЦеныНоменклатуры.Номенклатура И втМаксПериод.Период = ЦеныНоменклатуры.Период ГДЕ ЦеныНоменклатуры.ТипЦен = &ТипЦен СГРУППИРОВАТЬ ПО втМаксПериод.Физлицо, втМаксПериод.Регистратор, втМаксПериод.Номенклатура, втМаксПериод.Цена, ЦеныНоменклатуры.Цена ИТОГИ ПО ОБЩИЕ, втМаксПериод.Физлицо, втМаксПериод.Номенклатура АВТОУПОРЯДОЧИВАНИЕ |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |