Нужна помощь с отчетом УТ 10.3
22.10.2015
09:58
#1
ХЕЛП!!! Подскажите как завязать в один узел данные. Конфигурация УТ 10.3. Идея такая: Есть продажи текущего периода. Аналитика период, подразделения и номенклатура - это фактические продажи. Есть месячные планы продаж, аналитика та же.
Нужно сделать разбивку месячного плана продаж по дням, но с учетом продаж прошлого периода и вывести это все в один отчет.
период1 | период2 | период3
подразделения
номенклатура план,факт по сумме и количеству,
отклонение факта от плана.
например есть месячный план продаж на 60 рублей, в анализируемом периоде продали на 30 рублей, причем полмесяца продаж не было, а потом по 2 штуки в день. значит в текущем плане должно быть полмесяца о руб, а затем 4 штуки в день.
я сделал отчет но он медленно формируется и выдает нехватку памяти.
Делал на СКД двумя внешними наборами данных. один набор фактические продажи текущие, другой - плановые по дням.
отчет есть по ссылкеhttps://cloud.mail.ru/public/54tS/GbsE81FC2
Нужно сделать разбивку месячного плана продаж по дням, но с учетом продаж прошлого периода и вывести это все в один отчет.
период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)