Отчет СКД

1. user5300 534 15.09.20 08:31 Сейчас в теме
Доброе утро, помогите нарисовать такой отчет на СКД,
Два периода и сопоставить их по дням недели... Как можно реализовать ?


ВЫБРАТЬ
	НАЧАЛОПЕРИОДА(ПродажиОбороты.ПериодДень, ДЕНЬ) КАК Период,
	ДЕНЬНЕДЕЛИ(НАЧАЛОПЕРИОДА(ПродажиОбороты.ПериодДень, ДЕНЬ)) КАК ДеньНедели
ПОМЕСТИТЬ ВР
ИЗ
	РегистрНакопления.Продажи.Обороты(&НачалоПериода1, &КонецПериода1, Авто, ) КАК ПродажиОбороты

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	НАЧАЛОПЕРИОДА(ПродажиОбороты.ПериодДень, ДЕНЬ),
	ДЕНЬНЕДЕЛИ(НАЧАЛОПЕРИОДА(ПродажиОбороты.ПериодДень, ДЕНЬ))
ИЗ
	РегистрНакопления.Продажи.Обороты(&НачалоПериода2, &КонецПериода2, Авто, ) КАК ПродажиОбороты
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВР.ПериодДень КАК ПериодДень,
	ВР.ДеньНедели КАК ДеньНедели
ИЗ
	ВР КАК ВР

СГРУППИРОВАТЬ ПО
	ВР.ПериодДень,
	ВР.ДеньНедели

Показать
Прикрепленные файлы:
Вознаграждение за ответ
Показать полностью
Найденные решения
4. ab_initio 82 15.09.20 09:12 Сейчас в теме +0.71 $m
Я вот недавно что-то похожее делал:
ВЫБРАТЬ РАЗЛИЧНЫЕ
	НЕДЕЛЯ(ПродажиОбороты.ПериодДень)-НЕДЕЛЯ(&НачалоПериода1) КАК НомерНедели,
	НАЧАЛОПЕРИОДА(ПродажиОбороты.ПериодДень, ДЕНЬ) КАК ПериодДень,
	ДЕНЬНЕДЕЛИ(НАЧАЛОПЕРИОДА(ПродажиОбороты.ПериодДень, ДЕНЬ)) КАК ДеньНедели
ПОМЕСТИТЬ Вт1
ИЗ
	РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&НачалоПериода1, &КонецПериода1, Авто, ) КАК ПродажиОбороты
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
	НЕДЕЛЯ(ПродажиОбороты.ПериодДень)-НЕДЕЛЯ(&НачалоПериода2) КАК НомерНедели,
	НАЧАЛОПЕРИОДА(ПродажиОбороты.ПериодДень, ДЕНЬ) КАК ПериодДень,
	ДЕНЬНЕДЕЛИ(НАЧАЛОПЕРИОДА(ПродажиОбороты.ПериодДень, ДЕНЬ)) КАК ДеньНедели
ПОМЕСТИТЬ Вт2
ИЗ
	РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&НачалоПериода2, &КонецПериода2, Авто, ) КАК ПродажиОбороты
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	isnull(Вт1.НомерНедели,Вт2.НомерНедели) КАК НомерНедели,
	isnull(Вт1.ДеньНедели,Вт2.ДеньНедели) КАК ДеньНедели,
	МИНИМУМ(Вт1.ПериодДень) КАК ПериодДень1,
	МИНИМУМ(Вт2.ПериодДень) КАК ПериодДень2
ИЗ
	Вт1 КАК Вт1
		ПОЛНОЕ СОЕДИНЕНИЕ Вт2 КАК Вт2
		ПО (Вт1.ДеньНедели = Вт2.ДеньНедели)
		и (Вт1.НомерНедели = Вт2.НомерНедели)

СГРУППИРОВАТЬ ПО
	isnull(Вт1.НомерНедели,Вт2.НомерНедели),
	isnull(Вт1.ДеньНедели,Вт2.ДеньНедели)

УПОРЯДОЧИТЬ ПО
	НомерНедели,
	ДеньНедели,
	ПериодДень1,
	ПериодДень2

Показать


(только здесь регистр накопления по-другому называется, вставьте свое название)
alex-l19041; +1 Ответить
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. RustamZz 15.09.20 09:07 Сейчас в теме
(1) Соединить по дню недели и разность дат = 28
3. user834357 39 15.09.20 09:08 Сейчас в теме
При таком запросе
ВЫБРАТЬ РАЗЛИЧНЫЕ
	РегламентированныйПроизводственныйКалендарь.ДатаКалендаря,
	ДЕНЬНЕДЕЛИ(РегламентированныйПроизводственныйКалендарь.ДатаКалендаря) КАК ДеньНедели,
	РАЗНОСТЬДАТ(НачалоПериода(&ДатаНачалаПериод1, Неделя), НачалоПериода(РегламентированныйПроизводственныйКалендарь.ДатаКалендаря, Неделя), День)/7 +1 КАК НомерНедели
ИЗ
	РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
ГДЕ
	РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &ДатаНачалаПериод1 И &ДатаОкончанияПериод1


Будет такая таблица
Для двух таких таблиц уже дело техники соединить по дням и номерам недели
Прикрепленные файлы:
4. ab_initio 82 15.09.20 09:12 Сейчас в теме +0.71 $m
Я вот недавно что-то похожее делал:
ВЫБРАТЬ РАЗЛИЧНЫЕ
	НЕДЕЛЯ(ПродажиОбороты.ПериодДень)-НЕДЕЛЯ(&НачалоПериода1) КАК НомерНедели,
	НАЧАЛОПЕРИОДА(ПродажиОбороты.ПериодДень, ДЕНЬ) КАК ПериодДень,
	ДЕНЬНЕДЕЛИ(НАЧАЛОПЕРИОДА(ПродажиОбороты.ПериодДень, ДЕНЬ)) КАК ДеньНедели
ПОМЕСТИТЬ Вт1
ИЗ
	РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&НачалоПериода1, &КонецПериода1, Авто, ) КАК ПродажиОбороты
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
	НЕДЕЛЯ(ПродажиОбороты.ПериодДень)-НЕДЕЛЯ(&НачалоПериода2) КАК НомерНедели,
	НАЧАЛОПЕРИОДА(ПродажиОбороты.ПериодДень, ДЕНЬ) КАК ПериодДень,
	ДЕНЬНЕДЕЛИ(НАЧАЛОПЕРИОДА(ПродажиОбороты.ПериодДень, ДЕНЬ)) КАК ДеньНедели
ПОМЕСТИТЬ Вт2
ИЗ
	РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&НачалоПериода2, &КонецПериода2, Авто, ) КАК ПродажиОбороты
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	isnull(Вт1.НомерНедели,Вт2.НомерНедели) КАК НомерНедели,
	isnull(Вт1.ДеньНедели,Вт2.ДеньНедели) КАК ДеньНедели,
	МИНИМУМ(Вт1.ПериодДень) КАК ПериодДень1,
	МИНИМУМ(Вт2.ПериодДень) КАК ПериодДень2
ИЗ
	Вт1 КАК Вт1
		ПОЛНОЕ СОЕДИНЕНИЕ Вт2 КАК Вт2
		ПО (Вт1.ДеньНедели = Вт2.ДеньНедели)
		и (Вт1.НомерНедели = Вт2.НомерНедели)

СГРУППИРОВАТЬ ПО
	isnull(Вт1.НомерНедели,Вт2.НомерНедели),
	isnull(Вт1.ДеньНедели,Вт2.ДеньНедели)

УПОРЯДОЧИТЬ ПО
	НомерНедели,
	ДеньНедели,
	ПериодДень1,
	ПериодДень2

Показать


(только здесь регистр накопления по-другому называется, вставьте свое название)
alex-l19041; +1 Ответить
5. user5300 534 15.09.20 09:15 Сейчас в теме
6. ipoloskov 122 15.09.20 09:21 Сейчас в теме
Какая-то странная таблица в примере. 31.07 - среда и 01.08 - среда.
Хотелось бы точнее узнать задание. Если следовать из красоты вывода, то нужно разбивать по неделям (в примере это не так, и первый столбец обрывается на среде).
Если делать красиво, и разбивать по неделям, то нужно:
1) Выделить день недели и номер недели. Отнести номера недели с 1 по N к первому столбцу, номера недели с N+1 по M - ко второму столбцу.
2) Получить таблицу (дата, номер недели, день недели) первого столбца и второго столбца.
3) Соединить таблицы первого и второго столбцов полным соединением по условию:
Т1.НомерНедели+N = Т2.НомерНедели
И Т1.ДеньНедели = Т2.ДеньНедели
8. user5300 534 15.09.20 09:44 Сейчас в теме
(6)
(7)

ab_initio - скинул решение которое нужно было реализовать (С минимальной доработкой)

Спасибо, друзья)
7. xSavantx 13 15.09.20 09:33 Сейчас в теме
В конфигурации имеется производственный календарь?
9. SyachinS 18.09.20 10:37 Сейчас в теме
Через МВТ или Регистр сведений "Производственный календарь" внести в запрос все даты нужного периода, в запросе вывести поля:
Дата
ДеньНедели
Месяц
Остальное прекрасно в нужном виде настраивается через СКД.
Оставьте свое сообщение
Вопросы с вознаграждением