Проблема со сложным отчетом 1С

1. user1370654 08.06.20 00:43 Сейчас в теме
Всем привет!

У меня проблема, не могу сделать отчет.

Отчет отражает не внесенные данные за выбранный период.

Есть 3 регистра сведений, в каждом хранится "Дата" и "Название". Мне необходимо на каждую дату из периода вывести название из справочников (которых тоже 3), если они были проведены в регистре.


Должно выглядеть примерно так:

Допустим промежуток от 06.06.2020 до 09.06.2020

/ Дата / Название регистра 1 / Название регистра 2 / Название регистра 3 /
/ 06.06.2020 / Название 1.1 / Название 2.1 / Название 3.1 /
/ 07.06.2020 / Название 1.2 /__________________/ Название 3.1 /
/ 08.06.2020 /__________________ / Название 2.3 /__________________/
/ 09.06.2020 / Название 1.4 / Название 2.4 /__________________/

То есть дата выводится на весь период, а названия если есть, то выводятся, если нет, то пустое место.

У меня получается выводить все даты и названия только для одного, а когда объединяю и пробую с двумя, то выводится непонятно что...

Пыталась сделать с наборами данных, не получается

Буду рада любой помощи!!! Спасибо!

Вот код:


ВЫБРАТЬ
	ДОБАВИТЬКДАТЕ(&ДатаНачала, ДЕНЬ, Числа.Число) КАК ДатаДень,
	Справочник1.Ссылка КАК Ссылка
ИЗ
	(ВЫБРАТЬ
		Разряд0.Цифра + Разряд1.Цифра * 10 + Разряд2.Цифра * 100 + Разряд3.Цифра * 1000 КАК Число
	ИЗ
		(ВЫБРАТЬ
			0 КАК Цифра
		
		ОБЪЕДИНИТЬ
		
		ВЫБРАТЬ
			1
		
		ОБЪЕДИНИТЬ
		
		ВЫБРАТЬ
			2
		
		ОБЪЕДИНИТЬ
		
		ВЫБРАТЬ
			3
		
		ОБЪЕДИНИТЬ
		
		ВЫБРАТЬ
			4
		
		ОБЪЕДИНИТЬ
		
		ВЫБРАТЬ
			5
		
		ОБЪЕДИНИТЬ
		
		ВЫБРАТЬ
			6
		
		ОБЪЕДИНИТЬ
		
		ВЫБРАТЬ
			7
		
		ОБЪЕДИНИТЬ
		
		ВЫБРАТЬ
			8
		
		ОБЪЕДИНИТЬ
		
		ВЫБРАТЬ
			9) КАК Разряд0
			ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
				0 КАК Цифра
			
			ОБЪЕДИНИТЬ
			
			ВЫБРАТЬ
				1
			
			ОБЪЕДИНИТЬ
			
			ВЫБРАТЬ
				2
			
			ОБЪЕДИНИТЬ
			
			ВЫБРАТЬ
				3
			
			ОБЪЕДИНИТЬ
			
			ВЫБРАТЬ
				4
			
			ОБЪЕДИНИТЬ
			
			ВЫБРАТЬ
				5
			
			ОБЪЕДИНИТЬ
			
			ВЫБРАТЬ
				6
			
			ОБЪЕДИНИТЬ
			
			ВЫБРАТЬ
				7
			
			ОБЪЕДИНИТЬ
			
			ВЫБРАТЬ
				8
			
			ОБЪЕДИНИТЬ
			
			ВЫБРАТЬ
				9) КАК Разряд1
			ПО (ИСТИНА)
			ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
				0 КАК Цифра
			
			ОБЪЕДИНИТЬ
			
			ВЫБРАТЬ
				1
			
			ОБЪЕДИНИТЬ
			
			ВЫБРАТЬ
				2
			
			ОБЪЕДИНИТЬ
			
			ВЫБРАТЬ
				3
			
			ОБЪЕДИНИТЬ
			
			ВЫБРАТЬ
				4
			
			ОБЪЕДИНИТЬ
			
			ВЫБРАТЬ
				5
			
			ОБЪЕДИНИТЬ
			
			ВЫБРАТЬ
				6
			
			ОБЪЕДИНИТЬ
			
			ВЫБРАТЬ
				7
			
			ОБЪЕДИНИТЬ
			
			ВЫБРАТЬ
				8
			
			ОБЪЕДИНИТЬ
			
			ВЫБРАТЬ
				9) КАК Разряд2
			ПО (ИСТИНА)
			ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
				0 КАК Цифра
			
			ОБЪЕДИНИТЬ
			
			ВЫБРАТЬ
				1
			
			ОБЪЕДИНИТЬ
			
			ВЫБРАТЬ
				2
			
			ОБЪЕДИНИТЬ
			
			ВЫБРАТЬ
				3
			
			ОБЪЕДИНИТЬ
			
			ВЫБРАТЬ
				4
			
			ОБЪЕДИНИТЬ
			
			ВЫБРАТЬ
				5
			
			ОБЪЕДИНИТЬ
			
			ВЫБРАТЬ
				6
			
			ОБЪЕДИНИТЬ
			
			ВЫБРАТЬ
				7
			
			ОБЪЕДИНИТЬ
			
			ВЫБРАТЬ
				8
			
			ОБЪЕДИНИТЬ
			
			ВЫБРАТЬ
				9) КАК Разряд3
			ПО (ИСТИНА)) КАК Числа,
	Справочник.Справочник1 КАК Справочник1
ГДЕ
	ДОБАВИТЬКДАТЕ(&ДатаНачала, ДЕНЬ, Числа.Число) <= &ДатаКонца
	
	И НЕ Справочник1.Ссылка В
				(ВЫБРАТЬ
					РегистрСведений.Регистр1.Название
				ИЗ
					РегистрСведений.Регистр1
				ГДЕ
					РегистрСведений.Регистр1.Дата = ДОБАВИТЬКДАТЕ(&ДатаНачала, ДЕНЬ, Числа.Число))


УПОРЯДОЧИТЬ ПО
	ДатаДень
Показать
По теме из базы знаний
Найденные решения
5. user1370654 08.06.20 13:36 Сейчас в теме
Всем спасибо! Я сделала через Наборы данных. В каждом наборе данных делала выборку только по своему регистру, а потом выводила все данные на все даты.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. dhurricane 08.06.20 10:22 Сейчас в теме
Отчет разрабатывается с помощью СКД?
3. user1370654 08.06.20 12:37 Сейчас в теме
4. dhurricane 08.06.20 13:20 Сейчас в теме
(3) Не мудрите с запросом, генерирующим все даты подряд. Берите даты из регистра. А если Вам нужны даже те даты, для которых в заданном периоде нет записей ни в одном регистре, используйте дополнение периода:
Прикрепленные файлы:
5. user1370654 08.06.20 13:36 Сейчас в теме
Всем спасибо! Я сделала через Наборы данных. В каждом наборе данных делала выборку только по своему регистру, а потом выводила все данные на все даты.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот