Нужна помощь с отчетом УТ 10.3
22.10.2015
09:58
#1
ХЕЛП!!! Подскажите как завязать в один узел данные. Конфигурация УТ 10.3. Идея такая: Есть продажи текущего периода. Аналитика период, подразделения и номенклатура - это фактические продажи. Есть месячные планы продаж, аналитика та же.
Нужно сделать разбивку месячного плана продаж по дням, но с учетом продаж прошлого периода и вывести это все в один отчет.
период1 | период2 | период3
подразделения
номенклатура план,факт по сумме и количеству,
отклонение факта от плана.
например есть месячный план продаж на 60 рублей, в анализируемом периоде продали на 30 рублей, причем полмесяца продаж не было, а потом по 2 штуки в день. значит в текущем плане должно быть полмесяца о руб, а затем 4 штуки в день.
я сделал отчет но он медленно формируется и выдает нехватку памяти.
Делал на СКД двумя внешними наборами данных. один набор фактические продажи текущие, другой - плановые по дням.
отчет есть по ссылке
Нужно сделать разбивку месячного плана продаж по дням, но с учетом продаж прошлого периода и вывести это все в один отчет.
период1 | период2 | период3
подразделения
номенклатура план,факт по сумме и количеству,
отклонение факта от плана.
например есть месячный план продаж на 60 рублей, в анализируемом периоде продали на 30 рублей, причем полмесяца продаж не было, а потом по 2 штуки в день. значит в текущем плане должно быть полмесяца о руб, а затем 4 штуки в день.
я сделал отчет но он медленно формируется и выдает нехватку памяти.
Делал на СКД двумя внешними наборами данных. один набор фактические продажи текущие, другой - плановые по дням.
отчет есть по ссылке
26.10.2015
15:21
#2
Думаю, что нужно не "набор данных - Объединение" создавать, а 2 "Набор данных - Объект" (под каждую таблицу-источник данных). А так же не забыть прописать соединение этих наборов данных, а то как можно рассчитывать "отклонение", когда неизвестно какая строка плана какой строке факта соответствует.
Ответили:
пост #3
27.10.2015
01:46
#3
Ответ на
пост №2
Денис (САМАРА), с набором данным объект и связями есть подводный камень: если в приемнике есть данные, а в источнике нет, тогда данные не попадут в отбор. А соответствие установлено по группировке период, подразделение.Появилась идея сделать всё без внешних таблиц. Суть такова: берем месячный план текущего периода, делим его на месячный факт прошлого периода - получаем общий коэффициент. Теперь берем продажи прошлого периода по дням и умножаем их на этот коэффициент. Получаем план текущего месяца по дням с учетом продаж прошлого периода. Только два вопроса: 1. будет ли это правильной формулой и как это запросом вытащить...Есть идеи?
27.10.2015
10:51
#4
Прочитал первый раз "появившуюся идею" и не понял ничего.
Прочитал второй раз и понял, что если прочитаю еще раз, то мой мозг взорвется.
P.S. А начиналось все вроде бы просто — план, факт, отклонение...
Прочитал второй раз и понял, что если прочитаю еще раз, то мой мозг взорвется.
P.S. А начиналось все вроде бы просто — план, факт, отклонение...
28.10.2015
02:07
#5
Попробую объяснить. Есть план продаж, установленный на месяц. Допустим 100 тысяч рублей. Руководство хочет видеть исполнение этого плана, например по дням. Ежедневные фактические продажи-то мы видим. Вопрос как распределить сумму 100 тысяч на каждый день месяца? Равными долями не вариант. Решено использовать в качестве функции распределения фактические продажи за такой же период в прошлом году. Тут сразу усложняем - не обязательно в прошлом году, а в любом указанном периоде, такой же длины. Например формируем отчет с 1 января по 31 января, а в качестве периода сравнения указываем с 1 декабря прошедшего года по 31 декабря.
Теперь идея:
Например, половину месяца в декабре продаж не было вовсе, а во второй половине продали на 60 тысяч. То есть за 100% "плана" прошлого периода взято 60 тысяч. в текущем периоде план 100 тысяч. Выводим коэффициент для расчета 100 тыс / 60 тыс. получаем 1.667. То есть по сравнению с прошлым периодом план подняли на 1.667. Значит чтобы получить ежедневный план нужно ежедневные продажи умножить на 1.667.
Вопрос 1: верно ли это? (проверил - вроде бы верно)
Вопрос 2: как сделать?
Теперь идея:
Например, половину месяца в декабре продаж не было вовсе, а во второй половине продали на 60 тысяч. То есть за 100% "плана" прошлого периода взято 60 тысяч. в текущем периоде план 100 тысяч. Выводим коэффициент для расчета 100 тыс / 60 тыс. получаем 1.667. То есть по сравнению с прошлым периодом план подняли на 1.667. Значит чтобы получить ежедневный план нужно ежедневные продажи умножить на 1.667.
Вопрос 1: верно ли это? (проверил - вроде бы верно)
Вопрос 2: как сделать?
28.10.2015
04:55
#6
Есть запрос, но почему-то когда периодичность отчета больше месяца он начинает показывать неверные данные
| Код |
|---|
Запрос=новый запрос();
Текст="ВЫБРАТЬ // таблица соответствия текщуго периода прошлому
| СоотвПериодов.НП, СоотвПериодов.НПП
|ПОМЕСТИТЬ СоотвПериодов
|ИЗ &СоотвПериодов КАК СоотвПериодов;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ //текущие планы продаж. минимум помесячно. для расчета коэффициентов.
| ПланыПродажОбороты.Период,
| СоотвПериодов.НПП КАК ПериодПП,
| ПланыПродажОбороты.Подразделение,
| ПланыПродажОбороты.Номенклатура,
| ПланыПродажОбороты.Номенклатура.НоменклатурнаяГруппа,
| СУММА(ПланыПродажОбороты.СтоимостьОборот + ПланыПродажОбороты.НДСОборот) КАК СуммаТекПлан,
| СУММА(ПланыПродажОбороты.КоличествоОборот) КАК КоличествоТекПлан
|ПОМЕСТИТЬ ПланыПродажТекПериод
|ИЗ
| РегистрНакопления.ПланыПродаж.Обороты(&НачалоПериода, &КонецПериода,
| МинимумМесяц,
| ) КАК ПланыПродажОбороты
| ЛЕВОЕ СОЕДИНЕНИЕ СоотвПериодов КАК СоотвПериодов
| ПО ПланыПродажОбороты.Период = СоотвПериодов.НП
|
|СГРУППИРОВАТЬ ПО
| ПланыПродажОбороты.Период,
| СоотвПериодов.НПП,
| ПланыПродажОбороты.Номенклатура,
| ПланыПродажОбороты.Подразделение,
| ПланыПродажОбороты.Номенклатура.НоменклатурнаяГруппа;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ //факт продаж прошлого периода. Минимум помесячно. для расчета коэффициентов.
| СоотвПериодов.НП КАК Период, // + соответсвие текущему периоду.
| ПродажиОбороты.Период КАК ПериодПП,
| ПродажиОбороты.Подразделение,
| ПродажиОбороты.Номенклатура,
| ПродажиОбороты.Номенклатура.НоменклатурнаяГруппа,
| СУММА(ПродажиОбороты.КоличествоОборот) КАК КоличествоПП,
| СУММА(ПродажиОбороты.СтоимостьОборот + ПродажиОбороты.НДСОборот) КАК СуммаПП
|ПОМЕСТИТЬ ПродажиПП
|ИЗ
| РегистрНакопления.Продажи.Обороты(&НПП, &КПП,
| МинимумМесяц,
| ) КАК ПродажиОбороты
| ЛЕВОЕ СОЕДИНЕНИЕ СоотвПериодов КАК СоотвПериодов
| ПО ПродажиОбороты.Период = СоотвПериодов.НПП
|
|СГРУППИРОВАТЬ ПО
| СоотвПериодов.НП,
| ПродажиОбороты.Подразделение,
| ПродажиОбороты.Номенклатура.НоменклатурнаяГруппа,
| ПродажиОбороты.Период,
| ПродажиОбороты.Номенклатура
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ //расчет коэффициентов (отношение сумм текущего плана к факту прошлых продаж. период из верхних таблиц.
| ЕСТЬNULL(ПланыПродажТекПериод.Период, ПродажиПП.Период) КАК Период,
| СУММА(ВЫБОР
| КОГДА ПродажиПП.СуммаПП = 0
| ИЛИ ПродажиПП.СуммаПП ЕСТЬ NULL
| ТОГДА 0
| ИНАЧЕ ЕСТЬNULL(ПланыПродажТекПериод.СуммаТекПлан, 0) / ПродажиПП.СуммаПП
| КОНЕЦ) КАК КоэфСумма,
| СУММА(ВЫБОР
| КОГДА ПродажиПП.КоличествоПП = 0
| ИЛИ ПродажиПП.КоличествоПП ЕСТЬ NULL
| ТОГДА 0
| ИНАЧЕ ЕСТЬNULL(ПланыПродажТекПериод.КоличествоТекПлан, 0) / ПродажиПП.КоличествоПП
| КОНЕЦ) КАК КоэфКолВо,
| ЕСТЬNULL(ПланыПродажТекПериод.Подразделение, ПродажиПП.Подразделение) КАК Подразделение,
| ПродажиПП.Номенклатура КАК Номенклатура,
| ЕСТЬNULL(ПланыПродажТекПериод.ПериодПП, ПродажиПП.ПериодПП) КАК ПериодПП
|ПОМЕСТИТЬ Коэффициенты
|ИЗ
| ПланыПродажТекПериод КАК ПланыПродажТекПериод
| ПОЛНОЕ СОЕДИНЕНИЕ ПродажиПП КАК ПродажиПП
| ПО ПланыПродажТекПериод.Период = ПродажиПП.Период
| И ПланыПродажТекПериод.НоменклатураНоменклатурнаяГруппа = ПродажиПП.НоменклатураНоменклатурнаяГруппа
| И ПланыПродажТекПериод.Подразделение = ПродажиПП.Подразделение
|
|СГРУППИРОВАТЬ ПО
| ЕСТЬNULL(ПланыПродажТекПериод.Период, ПродажиПП.Период),
| ЕСТЬNULL(ПланыПродажТекПериод.Подразделение, ПродажиПП.Подразделение),
| ЕСТЬNULL(ПланыПродажТекПериод.ПериодПП, ПродажиПП.ПериодПП),
| ПродажиПП.Номенклатура
|;
|
|////////////////////////////////////////////////////////////////////////////////
|УНИЧТОЖИТЬ ПродажиПП; //остались только коэффициент. минимум помесячно.
|УНИЧТОЖИТЬ ПланыПродажТекПериод;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| СоотвПериодов.НП КАК Период,
| СУММА((ЕСТЬNULL(ПродажиОбороты.СтоимостьОборот, 0) + ЕСТЬNULL(ПродажиОбороты.НДСОборот, 0)) * ЕСТЬNULL(Коэффициенты.КоэфСумма, 0)) КАК СуммаПлан,
| СУММА(ЕСТЬNULL(ПродажиОбороты.КоличествоОборот, 0) * ЕСТЬNULL(Коэффициенты.КоэфКолВо, 0)) КАК КоличествоПлан,
| СУММА(ПродажиОбороты.СтоимостьОборот + ПродажиОбороты.НДСОборот) КАК СуммаППП,
| СУММА(ПродажиОбороты.КоличествоОборот) КАК КоличествоППП,
| СУММА(0) КАК СуммаФакт,
| СУММА(0) КАК КоличествоФакт,
| ПродажиОбороты.Номенклатура,
| ПродажиОбороты.Подразделение
|ПОМЕСТИТЬ Почти
|ИЗ
| РегистрНакопления.Продажи.Обороты(&НПП, &КПП,
| МинимумДень //периодичность отчета.
| , ) КАК ПродажиОбороты
| ЛЕВОЕ СОЕДИНЕНИЕ СоотвПериодов КАК СоотвПериодов
| ПО ПродажиОбороты.Период = СоотвПериодов.НПП
| ЛЕВОЕ СОЕДИНЕНИЕ Коэффициенты КАК Коэффициенты
| ПО (НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, МЕСЯЦ) = Коэффициенты.ПериодПП)
| И ПродажиОбороты.Номенклатура = Коэффициенты.Номенклатура
| И ПродажиОбороты.Подразделение = Коэффициенты.Подразделение
|
|СГРУППИРОВАТЬ ПО
| СоотвПериодов.НП,
| ПродажиОбороты.Номенклатура,
| ПродажиОбороты.Подразделение
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ПродажиОбороты.Период,
| СУММА(0),
| СУММА(0),
| СУММА(0),
| СУММА(0),
| СУММА(ПродажиОбороты.СтоимостьОборот + ПродажиОбороты.НДСОборот),
| СУММА(ПродажиОбороты.КоличествоОборот),
| ПродажиОбороты.Номенклатура,
| ПродажиОбороты.Подразделение
|ИЗ
| РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода,
| МинимумДень //ПериодичностьОтчета
| , ) КАК ПродажиОбороты
|
|СГРУППИРОВАТЬ ПО
| ПродажиОбороты.Период,
| ПродажиОбороты.Номенклатура,
| ПродажиОбороты.Подразделение
|;
|
|////////////////////////////////////////////////////////////////////////////////
|УНИЧТОЖИТЬ Коэффициенты
|;
|
|////////////////////////////////////////////////////////////////////////////////
|УНИЧТОЖИТЬ СоотвПериодов
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Почти.Период КАК Период,
| СУММА(Почти.СуммаПлан) КАК СуммаПлан,
| СУММА(Почти.КоличествоПлан) КАК КоличествоПлан,
| СУММА(Почти.СуммаППП) КАК ППП_Сумма,
| СУММА(Почти.КоличествоППП) КАК ППП_Количество,
| СУММА(Почти.СуммаФакт) КАК СуммаФакт,
| СУММА(Почти.КоличествоФакт) КАК КоличествоФакт,
| Почти.Номенклатура,
| Почти.Подразделение
|ИЗ
| Почти КАК Почти
|
|СГРУППИРОВАТЬ ПО
| Почти.Период,
| Почти.Номенклатура,
| Почти.Подразделение
|
|УПОРЯДОЧИТЬ ПО
| Период";
МинимумМесяц="Месяц";
МинимумДень="День";
ПериодыОтчета(МинимумМесяц,МинимумДень);
Текст=СтрЗаменить(Текст,"МинимумМесяц",МинимумМесяц);
Текст=СтрЗаменить(Текст,"МинимумДень",МинимумДень);
Запрос.Текст=Текст;
Запрос.УстановитьПараметр("НачалоПериода",НачалоПериода);
Запрос.УстановитьПараметр("КонецПериода",КонецДня(КонецПериода));
РазницаМеждуПериодами=НачалоПериода-НачалоПериодаРасчетаДинамики;
Запрос.УстановитьПараметр("СоотвПериодов",ТаблицаСоответствияПериодов(РазницаМеждуПериодами));
Запрос.УстановитьПараметр("НПП",НачалоПериодаРасчетаДинамики);
Запрос.УстановитьПараметр("КПП",КонецДня(КонецПериода-РазницаМеждуПериодами));
Возврат Запрос.Выполнить().Выгрузить(); |
28.10.2015
13:54
#7
Так никто не делает. Обычно составляют общий план, а потом обработкой его детализируют по дням (неделям или чему там еще надо). Потому уже этот детальный план сравнивают с фактом продаж в отчете.
29.10.2015
03:12
#8
Дело не в том кто как делает, а в том как решить поставленную задачу. требуется детализировать план "налету". Если бы все было так просто не было бы этой темы. Сравнил два регистра и вся недолга.
29.10.2015
10:52
#9
| Цитата |
|---|
| требуется детализировать план "налету". |
Но решать как делать конечно же Вам...
Больничный при пилотном проектепочему книга продаж и книга покупок по постановлению 1137 не совпадают формы.
Читают тему
(гостей: 1)