|
Не получается написать отчет на основе универсального. | ☑ | ||
---|---|---|---|---|
0
Румата
24.12.15
✎
18:21
|
Необходимо написать отчет продажи по месяцам. Самое главное чтобы выводились позиции, которые не продавались за выбранный период, но удовлетворяют отбору (например находятся в выбранной при отборе группе). Как это сделать, не пойму. Может кто-нибудь подобное делал, подмогите кодом или советом плиз. С наступающим ;)
|
|||
1
Web00001
24.12.15
✎
18:22
|
левое соединение справочника номенклатура с регистром остатков, где справа null там и не продавалось.
|
|||
2
Румата
24.12.15
✎
18:25
|
(Web00001) все бы хорошо, но периоды тоже как-то пределать надо. Надо чтобы по таким позициям выводилась не только сама номенклатура, но и все месяца. Причем именно запросом...
|
|||
3
FIXXXL
24.12.15
✎
18:26
|
(2) они и выведутся
выведется ВСЯ номенклатура |
|||
4
Тoлько_
Просмотр 24.12.15
✎
18:26
|
(2) Ну сделай таблицу месяцев в запросе.
|
|||
5
Михаил Козлов
24.12.15
✎
18:27
|
Непонятно, зачем в отчете по продажам товары, которые не продавались.
Может быть нужен отчет по неликвидам? (2) В чем сложность? Периоды из запроса по регистру продаж, номенклатура - из справочника. |
|||
6
Румата
24.12.15
✎
18:27
|
Мне надо потом все месяца (ячейки), в которых нет продаж раскрасить розовым цветом.
|
|||
7
FIXXXL
24.12.15
✎
18:27
|
(2)или у тебя случай, когда отбирают по одной номенклатуре, а она месяцами не продается?
|
|||
8
Румата
24.12.15
✎
18:30
|
(FIXXXL) и такое может быть. Там отборы надо предусмотреть по контрагентам и ответственным менеджерам. В любом случае может случиться так, что не будет ни одной продажи. А вывести нужно все попавшие в отбор номенклатурные позиции и во всех месяцах вывести пустые ячейки по продажам.
|
|||
9
Web00001
24.12.15
✎
18:31
|
(2)Еще какие то скрытые пожелания которые меняют смысл (0) есть? Хорошо бы их озвучивать до 100го поста.
Еще раз. Левое соединение только с таблицей в которой номенклатура с периодами. |
|||
10
Румата
24.12.15
✎
18:36
|
(Web00001) Нет, других пожеланий нет ! Только это ! Подскажите как сделать такую таблицу ( в которой номенклатура с периодами).
|
|||
11
Румата
24.12.15
✎
18:38
|
Может есть примерчик ? Буду признателен. Интересует как именно в запросе получить всю номенклатуру со всеми месяцами ...
|
|||
12
sash-ml
24.12.15
✎
18:44
|
конфигурация какая?
|
|||
13
Михаил Козлов
24.12.15
✎
18:52
|
(11) Если Вам нужен отчет (а не запрос со всеми месяцами), то вывод результата построителя в табличный документ САМ проставит "нули" (если месяцы в колонках) в тех месяцах, когда не было продаж.
|
|||
14
Румата
24.12.15
✎
19:28
|
Конфигурация УТ 10.3
|
|||
15
Мимохожий Однако
24.12.15
✎
19:38
|
А при чём здесь универсальный отчет?
|
|||
16
Румата
24.12.15
✎
20:04
|
(МимохожийОднако) На базе универсального отчета делаю.
|
|||
17
Румата
24.12.15
✎
20:05
|
http://programna1c.narod.ru/docs/UnivReport1C/UnivReport.html Вот по этой статье
|
|||
18
Мимохожий Однако
24.12.15
✎
20:07
|
(16)Возьми любую консоль запросов и отладь сначала на ней. Универсальный отчет - это уже следующие ступени.
|
|||
19
Румата
24.12.15
✎
20:08
|
(МимохожийОднако) Я не знаю как соединить справочник номенклатуры с месяцами. Откуда взять месяца ?
|
|||
20
Мимохожий Однако
24.12.15
✎
20:12
|
Текст запроса кинь сюда. Может кто и подскажет. Без подробностей все советы - гадание на кофейной гуще. Обычно в параметрах запроса указывается период - месяц.
|
|||
21
Румата
24.12.15
✎
20:16
|
ВЫБРАТЬ
СпрНоменклатура.Ссылка КАК Ссылка, ПродажиОбороты.Период КАК Период ИЗ Справочник.Номенклатура КАК СпрНоменклатура, РегистрНакопления.Продажи.Обороты(&Начдата, &КонДата, Месяц, ) КАК ПродажиОбороты ГДЕ СпрНоменклатура.Ссылка В ИЕРАРХИИ(&ВыбНоменклатура) СГРУППИРОВАТЬ ПО СпрНоменклатура.Ссылка, ПродажиОбороты.Период УПОРЯДОЧИТЬ ПО Ссылка ИЕРАРХИЯ, Период |
|||
22
Румата
24.12.15
✎
20:18
|
Вернее так :
ВЫБРАТЬ СпрНоменклатура.Ссылка КАК Ссылка, ПродажиОбороты.Период КАК Период ИЗ Справочник.Номенклатура КАК СпрНоменклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(&Начдата, &КонДата, Месяц, ) КАК ПродажиОбороты ПО (1 = 1) ГДЕ СпрНоменклатура.Ссылка В ИЕРАРХИИ(&ВыбНоменклатура) СГРУППИРОВАТЬ ПО СпрНоменклатура.Ссылка, ПродажиОбороты.Период УПОРЯДОЧИТЬ ПО Ссылка ИЕРАРХИЯ, Период |
|||
23
Михаил Козлов
25.12.15
✎
10:50
|
(22) Посмотрите штатный отчет по продажам с группировкой в колонках по месяцам (и ничего делать не нужно будет).
|
|||
24
FIXXXL
25.12.15
✎
13:33
|
(23) он "пустые" месяца хочет в отчете
типа: продаем весь товар в ноябре и в декабре (ёлки новогодние :)) типовой отчет с группировкой по месяцам покажет две колонки периодов ТС 12 хочет |
|||
25
Румата
28.12.15
✎
09:04
|
Вот последний текст запроса :
ВЫБРАТЬ ВЫБОР КОГДА ПродажиОбороты.Контрагент.ОсновнойМенеджерПокупателя ЕСТЬ NULL ТОГДА "" ИНАЧЕ ПродажиОбороты.Контрагент.ОсновнойМенеджерПокупателя КОНЕЦ КАК ОсновнойМенеджер, ВЫБОР КОГДА ПродажиОбороты.Контрагент ЕСТЬ NULL ТОГДА "" ИНАЧЕ ПродажиОбороты.Контрагент КОНЕЦ КАК Контрагент, ВложенныйЗапрос.Ссылка КАК Номенклатура, ВложенныйЗапрос.Период КАК Период, СУММА(ВЫБОР КОГДА ПродажиОбороты.КоличествоОборот ЕСТЬ NULL ТОГДА 0 ИНАЧЕ ПродажиОбороты.КоличествоОборот КОНЕЦ) КАК Количество {ВЫБРАТЬ ОсновнойМенеджер.*, Контрагент.*, Номенклатура.*, Период, Количество} ИЗ (ВЫБРАТЬ СпрНоменклатура.Ссылка КАК Ссылка, ПродажиОбороты.Период КАК Период, ПродажиОбороты.Контрагент КАК Контрагент ИЗ Справочник.Номенклатура КАК СпрНоменклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, Месяц, ) КАК ПродажиОбороты ПО (1 = 1) СГРУППИРОВАТЬ ПО СпрНоменклатура.Ссылка, ПродажиОбороты.Период, ПродажиОбороты.Контрагент) КАК ВложенныйЗапрос ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, Месяц, ) КАК ПродажиОбороты ПО ВложенныйЗапрос.Ссылка = ПродажиОбороты.Номенклатура И ВложенныйЗапрос.Период = ПродажиОбороты.Период И ВложенныйЗапрос.Контрагент = ПродажиОбороты.Контрагент {ГДЕ (ВЫБОР КОГДА ПродажиОбороты.Контрагент.ОсновнойМенеджерПокупателя ЕСТЬ NULL ТОГДА "" ИНАЧЕ ПродажиОбороты.Контрагент.ОсновнойМенеджерПокупателя КОНЕЦ).* КАК Менеджер, (ВЫБОР КОГДА ПродажиОбороты.Контрагент ЕСТЬ NULL ТОГДА "" ИНАЧЕ ПродажиОбороты.Контрагент КОНЕЦ).* КАК Контрагент, ВложенныйЗапрос.Ссылка.* КАК Номенклатура} СГРУППИРОВАТЬ ПО ВЫБОР КОГДА ПродажиОбороты.Контрагент.ОсновнойМенеджерПокупателя ЕСТЬ NULL ТОГДА "" ИНАЧЕ ПродажиОбороты.Контрагент.ОсновнойМенеджерПокупателя КОНЕЦ, ВЫБОР КОГДА ПродажиОбороты.Контрагент ЕСТЬ NULL ТОГДА "" ИНАЧЕ ПродажиОбороты.Контрагент КОНЕЦ, ВложенныйЗапрос.Ссылка, ВложенныйЗапрос.Период {УПОРЯДОЧИТЬ ПО Номенклатура.*, Период, ОсновнойМенеджер.*, Контрагент.*} ИТОГИ СУММА(Количество) ПО Номенклатура ИЕРАРХИЯ {ИТОГИ ПО ОсновнойМенеджер.*, Контрагент.*, Номенклатура.*, Период} АВТОУПОРЯДОЧИВАНИЕ Если не устанавливать отборы при формировании отчета, вся номенклатура, даже та, по которой не было продаж, отображается. Если сделать отбор, например по контрагенту, остается только та номенклатура по которой были продажи. Как исправить ? |
|||
26
Румата
28.12.15
✎
09:44
|
Вверх
|
|||
27
rabbidX
28.12.15
✎
10:05
|
Посмотри отладчиком на итоговый текст запроса. Возможно, там внутреннее соединение появилось. Замени Выбор на ЕстьNull и ... перепиши все заново, а то криво. Вот что ты во вложенном запросе получаешь, там же полное соединение номенклатуры с продажами.
Попробуй сначала выбрать продажи во временную таблицу, добавить там условия для построителя, больше нигде поля таблицы продажи в условия не добавлять. Таблицу с периодами отдельную сделай, через производственный календарь или запросом типа Выбрать ДатаВремя(2015,1,1) Объединить все Выбрать ДатаВремя(2015,2,1) и т.д. |
|||
28
Румата
28.12.15
✎
10:39
|
ВЫБРАТЬ
ЕСТЬNULL(ПродажиОбороты.Контрагент.ОсновнойМенеджерПокупателя, "") КАК ОсновнойМенеджер, ЕСТЬNULL(ПродажиОбороты.Контрагент, "") КАК Контрагент, ВложенныйЗапрос.Ссылка КАК Номенклатура, ВложенныйЗапрос.Период КАК Период, СУММА(ЕСТЬNULL(ПродажиОбороты.КоличествоОборот, 0)) КАК Количество {ВЫБРАТЬ ОсновнойМенеджер.*, Контрагент.*, Номенклатура.*, Период, Количество} ИЗ (ВЫБРАТЬ СпрНоменклатура.Ссылка КАК Ссылка, ПродажиОбороты.Период КАК Период, ПродажиОбороты.Контрагент КАК Контрагент ИЗ Справочник.Номенклатура КАК СпрНоменклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, Месяц, ) КАК ПродажиОбороты ПО (1 = 1) СГРУППИРОВАТЬ ПО СпрНоменклатура.Ссылка, ПродажиОбороты.Период, ПродажиОбороты.Контрагент) КАК ВложенныйЗапрос ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, Месяц, ) КАК ПродажиОбороты ПО ВложенныйЗапрос.Ссылка = ПродажиОбороты.Номенклатура И ВложенныйЗапрос.Период = ПродажиОбороты.Период И ВложенныйЗапрос.Контрагент = ПродажиОбороты.Контрагент {ГДЕ (ВЫБОР КОГДА ПродажиОбороты.Контрагент.ОсновнойМенеджерПокупателя ЕСТЬ NULL ТОГДА "" ИНАЧЕ ПродажиОбороты.Контрагент.ОсновнойМенеджерПокупателя КОНЕЦ).* КАК Менеджер, (ВЫБОР КОГДА ПродажиОбороты.Контрагент ЕСТЬ NULL ТОГДА "" ИНАЧЕ ПродажиОбороты.Контрагент КОНЕЦ).* КАК Контрагент, ВложенныйЗапрос.Ссылка.* КАК Номенклатура} СГРУППИРОВАТЬ ПО ВложенныйЗапрос.Ссылка, ВложенныйЗапрос.Период, ЕСТЬNULL(ПродажиОбороты.Контрагент.ОсновнойМенеджерПокупателя, ""), ЕСТЬNULL(ПродажиОбороты.Контрагент, "") {УПОРЯДОЧИТЬ ПО Номенклатура.*, Период, ОсновнойМенеджер.*, Контрагент.*} ИТОГИ СУММА(Количество) ПО Номенклатура ИЕРАРХИЯ {ИТОГИ ПО ОсновнойМенеджер.*, Контрагент.*, Номенклатура.*, Период} АВТОУПОРЯДОЧИВАНИЕ Заменил выбор на ЕстьNull. Но не в этом же дело. Во вложенном запросе я получаю всю номенклатуру и все периоды. Левым соединением получившуюся таблицу я соединяю с продажами. Вроде все хорошо работает, пока не поставишь фильтр по контрагенту или ответственному менеджеру. После этого в таблице сразу теряются записи (номенклатурные позиции), которые не продавались за выбранный период. Есть ли способ чтобы все записи по номенклатуре и периодам не исчезали из отчета ? Это вообще возможно ? |
|||
29
Мимохожий Однако
28.12.15
✎
10:41
|
А у тебя получился запрос, чтобы без заполнения пустых периодов был результат?
|
|||
30
Румата
28.12.15
✎
10:43
|
(МимохожийОднако) Вот вложенный запрос, который выбирает все периоды и всю номенклатуру...
ВЫБРАТЬ СпрНоменклатура.Ссылка КАК Ссылка, ПродажиОбороты.Период КАК Период, ПродажиОбороты.Контрагент КАК Контрагент ИЗ Справочник.Номенклатура КАК СпрНоменклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, Месяц, ) КАК ПродажиОбороты ПО (1 = 1) СГРУППИРОВАТЬ ПО СпрНоменклатура.Ссылка, ПродажиОбороты.Период, ПродажиОбороты.Контрагент |
|||
31
sash-ml
28.12.15
✎
11:03
|
(30) убери контрагента из вложенного запроса. вместо него вытягивай количествооборот но дальше не используй.
во втором соединении убери условие по контрагенту |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |