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

Отчет по продажам (по месяцам)

Автор sali, 06 фев 2025, 09:29

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

Максим75

sali, нет, период - это период, по нему связь идет с месяцами из календаря.
а это еще один набор данных, в котором будет клиент и количество различных периодов, в которые этому клиенту что-то продавали.

sali

Максим75, вот смотрите я тут пока делал код в консоле и пришел к такому
ВЫБРАТЬ
    РеализацияТМЗОбороты.ДоговорКонтрагента.Владелец КАК Контрагент,
    РеализацияТМЗОбороты.Номенклатура КАК Номенклатура,
    РеализацияТМЗОбороты.КоличествоОборот КАК Количество,
    РеализацияТМЗОбороты.Период
ПОМЕСТИТЬ вт_данные
ИЗ
    РегистрНакопления.РеализацияТМЗ.Обороты(&начпериод, &конпериод, Запись, ДоговорКонтрагента.Владелец В ИЕРАРХИИ (&контрагент)) КАК РеализацияТМЗОбороты
ГДЕ
    ВЫБОР
            КОГДА РеализацияТМЗОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
                ТОГДА РеализацияТМЗОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
            ИНАЧЕ РеализацияТМЗОбороты.Регистратор ССЫЛКА Документ.ВозвратТоваровОтПокупателя
        КОНЕЦ
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    НАЧАЛОПЕРИОДА(РегламентированныйПроизводственныйКалендарь.ДатаКалендаря, МЕСЯЦ) КАК Поле1
ПОМЕСТИТЬ вт_к
ИЗ
    РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    вт_к.Поле1,
    вт_данные.Контрагент КАК Контрагент,
    вт_данные.Номенклатура КАК Номенклатура,
    вт_данные.Количество КАК Количество,
    вт_данные.Период КАК Период
ИЗ
    вт_к КАК вт_к
        ПОЛНОЕ СОЕДИНЕНИЕ вт_данные КАК вт_данные
        ПО вт_к.Поле1 = вт_данные.Период

СГРУППИРОВАТЬ ПО
    вт_к.Поле1,
    вт_данные.Контрагент,
    вт_данные.Номенклатура,
    вт_данные.Количество,
    вт_данные.Период
ИТОГИ ПО
    Контрагент,
    Номенклатура
Снимок экрана (126).png
код группирует контрагента и номенклатуру вывод количество продаж по записи


этот код делает аналогичные действия но выводит количество продаваемых месяцев и количество проданного товара
ВЫБРАТЬ
РеализацияТМЗОбороты.ДоговорКонтрагента.Владелец КАК Контрагент,
РеализацияТМЗОбороты.Номенклатура КАК Номенклатура,
РеализацияТМЗОбороты.КоличествоОборот КАК Количество,
РеализацияТМЗОбороты.Период
ПОМЕСТИТЬ вт_данные
ИЗ
РегистрНакопления.РеализацияТМЗ.Обороты(&начпериод, &конпериод, Запись, ДоговорКонтрагента.Владелец В ИЕРАРХИИ (&контрагент)) КАК РеализацияТМЗОбороты
ГДЕ
ВЫБОР
КОГДА РеализацияТМЗОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
ТОГДА РеализацияТМЗОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
ИНАЧЕ РеализацияТМЗОбороты.Регистратор ССЫЛКА Документ.ВозвратТоваровОтПокупателя
КОНЕЦ
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
НАЧАЛОПЕРИОДА(РегламентированныйПроизводственныйКалендарь.ДатаКалендаря, МЕСЯЦ) КАК Поле1
ПОМЕСТИТЬ вт_к
ИЗ
РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
вт_к.Поле1,
вт_данные.Контрагент КАК Контрагент,
вт_данные.Номенклатура КАК Номенклатура,
СУММА(вт_данные.Количество) КАК Количество,
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ вт_данные.Период) КАК Период
ИЗ
вт_к КАК вт_к
ПОЛНОЕ СОЕДИНЕНИЕ вт_данные КАК вт_данные
ПО вт_к.Поле1 = вт_данные.Период

СГРУППИРОВАТЬ ПО
вт_к.Поле1,
вт_данные.Контрагент,
вт_данные.Номенклатура
ИТОГИ ПО
Контрагент,


Номенклатура
Снимок экрана (127).png

Максим75

sali, и-и-и, что?
я вроде как четко спросил - какие будут группировки?
был отчет - по клиенту.
а здесь уже товар начинает подключаться.
Вы разницу понимаете?

sali

Цитата: Максим75 от 10 фев 2025, 14:45и-и-и, что?
мне скорее надо использовать второй вариант и добавить еще запрос с продажами
Цитата: Максим75 от 10 фев 2025, 13:57в котором будет клиент и количество различных периодов, в которые этому клиенту что-то продавали.

sali

Максим75, вы не знаете почему может так выходить? Снимок экрана (130).png

sali

ВЫБОР
КОГДА вт_к.ПолеКалендарь = 1
ТОГДА "Январь"
КОГДА вт_к.ПолеКалендарь = 2
ТОГДА "Февраль"
КОГДА вт_к.ПолеКалендарь = 3
ТОГДА "Март"
КОГДА вт_к.ПолеКалендарь = 4
ТОГДА "Апрель"
КОГДА вт_к.ПолеКалендарь = 5
ТОГДА "Май"
КОГДА вт_к.ПолеКалендарь = 6
ТОГДА "Июнь"
КОГДА вт_к.ПолеКалендарь = 7
ТОГДА "Июль"
КОГДА вт_к.ПолеКалендарь = 8
ТОГДА "Август"
КОГДА вт_к.ПолеКалендарь = 9
ТОГДА "Сентябрь"
КОГДА вт_к.ПолеКалендарь = 10
ТОГДА "Октябрь"
КОГДА вт_к.ПолеКалендарь = 11
ТОГДА "Ноябрь"
ИНАЧЕ "Декабрь"
КОНЕЦ КАК ПолеКалендарь
ИЗ
вт_данные КАК вт_данные
ЛЕВОЕ СОЕДИНЕНИЕ вт_к КАК вт_к
прописал

sali


Теги:

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

Рейтинг@Mail.ru

Поиск