helpf.pro
Регистрация

v8: V8. Управление Торговлей 10.3.

snfr1c
09.09.2011 13:58Прочитано: 1696
Здравствуйте!.
Помогите с отчетом пожалуйста.
Задача проанализировать цены продаж с ценами прайса ( какой либо тип цен) и если цена продажи ниже цены прайса на момент продажи вывести разницу красным.
пошел по пути:
1. сделать запрос по регистру "продажи", получаем таблицу с продажами.
2. пробегаю таблицу по каждой единице товара, получаю из регистра сведений цену
и произвожу вычисления.

но можно выполнить всё одним запросом. с этим у меня возникли сложности.
Никто не делал подобное что нибудь? мне бы примерчик.
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
09.09.2011 14:09Ответ № 1
(0) snfr1c, можно на СКД два запроса и связь, разницу считай через вычисляемы поля
typeharley
13.09.2011 23:47Ответ № 2
Вот тебе пример запроса (на примере левого соединения), отбирающий только товары с ценами, у которых цена продажи меньше цены прайса:

ВЫБРАТЬ
| Продажи.Товар КАК Товар,
| Продажи.ЦенаОтпускная КАК ЦенаОтпускная,
| ЕСТЬNULL(ЦеныТоваров.Цена, 0) КАК ЦенаПрайса
|ИЗ
| РегистрНакопления.ПродажиОптовые.Обороты(&НачПериода, &КонПериода, Запись, Товар В (&СписокТоваров)) КАК Продажи
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныТоваров КАК ЦеныТоваров
| ПО Продажи.Товар = ЦеныТоваров.Товар
| И Продажи.Период = ЦеныТоваров.Период
|ГДЕ
| Продажи.ЦенаОтпускная < ЕСТЬNULL(ЦеныТоваров.Цена, 0)
| И ЦеныТоваров.Прайслист = &Прайслист
|
|СГРУППИРОВАТЬ ПО
| Продажи.Товар,
| ЕСТЬNULL(ЦеныТоваров.Цена, 0),
| Продажи.ЦенаОтпускная

Это случай если у тебя ЦенаПродажи является измерением регистра.
Если она получается из ресурсов делением:

"ВЫБРАТЬ
| Продажи.Товар КАК Товар,
| ВЫБОР
| КОГДА Продажи.КоличествоОборот = 0
| ТОГДА 0
| ИНАЧЕ Продажи.СтоимостьОтпускнаяОборот / Продажи.КоличествоОборот
| КОНЕЦ КАК ЦенаОтпускная,
| ЕСТЬNULL(ЦеныТоваров.Цена, 0) КАК ЦенаПрайса
|ИЗ
| РегистрНакопления.ПродажиОптовые.Обороты(&НачПериода, &КонПериода, Запись, Товар В (&СписокТоваров)) КАК Продажи
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныТоваров КАК ЦеныТоваров
| ПО Продажи.Товар = ЦеныТоваров.Товар
| И Продажи.Период = ЦеныТоваров.Период
|ГДЕ
| ВЫБОР
| КОГДА Продажи.КоличествоОборот = 0
| ТОГДА 0
| ИНАЧЕ Продажи.СтоимостьОтпускнаяОборот / Продажи.КоличествоОборот
| КОНЕЦ < ЕСТЬNULL(ЦеныТоваров.Цена, 0)
| И ЦеныТоваров.Прайслист = &Прайслист

Названия регистров и полей брал со своей БД отличной от "Управление торговлей", но смысл понятен.
Изменено 13.09.11 23:54:43
Подсказка: Для быстрого перемещения к последнему ответу или к вопросу используйте или .
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.