Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
19 мая 2024, 02:26

Помогите разобраться с отчетом

Автор Vladius, 18 янв 2013, 14:11

0 Пользователей и 1 гость просматривают эту тему.

Vladius

В отчет вывожу данные по товарам беру товар с заказа и ищу его в реализации(Количество) потом смотрю сколько заказано и отгружено. Реализацию беру подчиненную этому заказу. В отчет выводятся товары которые есть в заказе, а то что в реализации не выводится. Это понятно потому что я полным соединением по номенклатуре тяну количество с реализации. А как мне тогда выбрать все товары с реализации и заказа? Что бы выводились товары и с заказа и с реализации? Подскажите а то не могу разобраться. Вот код:
"ВЫБРАТЬ
| СУММА(0) КАК Выполнение,
| ЗаказПокупателяТовары.Номенклатура КАК Номенклатура,
| СУММА(ЗаказПокупателяТовары.Количество) КАК Заказ,
| ЗаказПокупателяТовары.Ссылка.Ссылка КАК Документ,
| ЗаказПокупателяТовары.Ссылка.Контрагент КАК Контрагент,
| ЗаказПокупателяТовары.Номенклатура.Родитель КАК Группа,
| ЗаказПокупателяТовары.Ссылка.Агент КАК Агент,
| СУММА(ВложенныйЗапрос.Количество) КАК Количество
|{ВЫБРАТЬ
| Выполнение,
| Номенклатура.*,
| Заказ,
| Документ.*,
| Контрагент.*,
| Группа.*,
| Агент.*,
| Количество}
|ИЗ
| Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
| ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| РеализацияТоваровУслугТовары.Ссылка КАК Ссылка,
| РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
| РеализацияТоваровУслугТовары.Количество КАК Количество
| ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары) КАК ВложенныйЗапрос
| ПО ЗаказПокупателяТовары.Ссылка = ВложенныйЗапрос.Ссылка.Сделка
| И ЗаказПокупателяТовары.Номенклатура = ВложенныйЗапрос.Номенклатура
|ГДЕ
| ЗаказПокупателяТовары.Ссылка.Проведен = ИСТИНА
| И ЗаказПокупателяТовары.Ссылка.ПометкаУдаления = ЛОЖЬ
| И ЗаказПокупателяТовары.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаКонца
|{ГДЕ
| ЗаказПокупателяТовары.Номенклатура.*,
| ЗаказПокупателяТовары.Ссылка.Контрагент.*,
| ЗаказПокупателяТовары.Номенклатура.Родитель.*,
| ЗаказПокупателяТовары.Ссылка.Агент.*,
| ЗаказПокупателяТовары.Ссылка.Подразделение.*}
|
|СГРУППИРОВАТЬ ПО
| ЗаказПокупателяТовары.Номенклатура,
| ЗаказПокупателяТовары.Ссылка.Ссылка,
| ЗаказПокупателяТовары.Ссылка.Контрагент,
| ЗаказПокупателяТовары.Номенклатура.Родитель,
| ЗаказПокупателяТовары.Ссылка.Агент
|
|УПОРЯДОЧИТЬ ПО
| Номенклатура
|{УПОРЯДОЧИТЬ ПО
| Номенклатура.*,
| Группа.*}
|ИТОГИ
| СУММА(Количество) / СУММА(Заказ) * 100 КАК Выполнение,
| СУММА(Заказ),
| СУММА(Количество)
|ПО
| ОБЩИЕ
|{ИТОГИ ПО
| Выполнение,
| Номенклатура.*,
| Документ.*,
| Контрагент.*,
| Группа.*,
| Агент.*,
| Заказ,
| Количество}"

sertak

Если я правильно понял, вы хотите увидеть товары из реализации, которых не было в соответствующих заказах.
В таком случае надо перестроить запрос, например, так: вместо присоединения выборки из реализации к выборке из заказа, а затем наложения общего фильтра на получившуюся выборку (что и зарезает записи, содержащие NULL в левой части), стоит сделать выборку из двух вложенных запросов, каждый из которых будет содержать свои фильтры. Тогда, например, ЗаказПокупателяТовары.Ссылка.Проведен = ИСТИНА не будет применяться к товарам, которые продавали без соответствующего заказа.
То есть должно получиться нечто такое (условный запрос):
ВЫБРАТЬ Заказ.Товар, Заказ.Количество, Реализация.Количество
ИЗ
(ВЫБРАТЬ Ссылка, Товар, Количество ИЗ Заказы ГДЕ ...) КАК Заказ
ПОЛНОЕ СОЕДИНЕНИЕ
(ВЫБРАТЬ Ссылка.Сделка КАК СсылкаНаЗаказОснование, Товар, Количество ИЗ Реализации ГДЕ ...) КАК Реализация
ПО Заказ.Ссылка = Реализация.СсылкаНаЗаказОснование И Заказ.Товар = Реализация.Товар

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск