Вывод данных на макет печати

1. user1008893 19.02.19 13:11 Сейчас в теме
Собираю данные из запроса и вывожу их на печать. Вывод должен быть в форме расписания пример в снимке. Помогите пожалуйста,может кто сталкивался.. У меня выводятся даты и один заказ из всех.
Процедура ПриОткрытии()
	ТабДок=ЭлементыФормы.ПолеТабличногоДокумента1;
	МакетПечать=ПолучитьМакет("Печать_Макет");
	
	ТекущийПериод  = НачалоДня(ТекущаяДата());
	Горизонт = КонецМесяца(ГоризонтПланирования);
	_Период     = НачалоМесяца(ТекущийПериод);
	_КонПериод  = КонецДня(Горизонт);
	
	Шапка=МакетПечать.ПолучитьОбласть("Шапка");
	Шапка.Параметры.ДатаНач=_Период;
	Шапка.Параметры.ДатаКон=_КонПериод;
	ТабДок.Вывести(Шапка);
	
	ЗапросЗаказы=Новый Запрос;
	ЗапросЗаказы.Текст="ВЫБРАТЬ
	|	ПС_ЗаказыДляОтгрузки.Контрагент КАК Контрагент,
	|	ПС_ЗаказыДляОтгрузкиЗаказы.Заказ КАК Заказ,
	|	ПС_ЗаказыДляОтгрузкиЗаказы.Вес КАК Вес,
	|	ПС_ЗаказыДляОтгрузкиЗаказы.Объем КАК Объем,
	|	ПС_ЗаказыДляОтгрузкиЗаказы.Сумма КАК Сумма,
	|	ПС_ЗаказыДляОтгрузки.ДеньОтгрузки КАК ДатаОтгрузки
	|ИЗ
	|	Документ.ПС_ЗаказыДляОтгрузки.Заказы КАК ПС_ЗаказыДляОтгрузкиЗаказы
	|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПС_ЗаказыДляОтгрузки КАК ПС_ЗаказыДляОтгрузки
	|		ПО ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка = ПС_ЗаказыДляОтгрузки.Ссылка
	|ГДЕ
	|	НЕ ПС_ЗаказыДляОтгрузки.ПометкаУдаления
	|
	|СГРУППИРОВАТЬ ПО
	|	ПС_ЗаказыДляОтгрузки.ДеньОтгрузки,
	|	ПС_ЗаказыДляОтгрузки.Контрагент,
	|	ПС_ЗаказыДляОтгрузкиЗаказы.Заказ,
	|	ПС_ЗаказыДляОтгрузкиЗаказы.Вес,
	|	ПС_ЗаказыДляОтгрузкиЗаказы.Объем,
	|	ПС_ЗаказыДляОтгрузкиЗаказы.Сумма";	
	Заказы = ЗапросЗаказы.Выполнить();
	
	выборка=Заказы.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
	Пока выборка.Следующий() Цикл	
		Таблица=МакетПечать.ПолучитьОбласть("Таблица|Дата");
		ОбластьЗаказы=МакетПечать.ПолучитьОбласть("Таблица|Заказы");
		Пока _Период <= _КонПериод Цикл
			Таблица.Параметры.Дата = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
			ТабДок.Вывести(Таблица);
			ОбластьЗаказы.Параметры.Заполнить(выборка);
			Если  _Период = выборка.ДатаОтгрузки Тогда  	
				табДок.Присоединить(ОбластьЗаказы);
			КонецЕсли; 		
			_Период  = КонецДня(_Период) + 1;
		КонецЦикла;	
	КонецЦикла;
	
КонецПроцедуры
Показать
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Anion86 19.02.19 13:40 Сейчас в теме
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПС_ЗаказыДляОтгрузки КАК ПС_ЗаказыДляОтгрузки
| ПО ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка = ПС_ЗаказыДляОтгрузки.Ссылка --- эти две строки лишние

"ОбходРезультатаЗапроса.ПоГруппировкам" используется когда в запросе есть итоги , а у вас их нет и должно быть выборка=Заказы.Выбрать();
3. user1008893 19.02.19 13:44 Сейчас в теме
(2)почему лишнее? это же связь с тч
4. Anion86 19.02.19 13:48 Сейчас в теме
(3)так будет нормальнее ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка.Контрагент , у вас реквизиты "шапки" документа и так доступены
6. user1008893 19.02.19 13:58 Сейчас в теме
(4)все равно ничего не поменялось
5. YannikAlx 43 19.02.19 13:55 Сейчас в теме
(3) Лишнее потому что вы и без них имеете всю информацию в запросе
Для наглядности:
Вот так вы получите доступ к любым полям документа

ЗаказыДляОтгрузкиЗаказы.Ссылка.Контрагент КАК Контрагент
7. YannikAlx 43 19.02.19 14:02 Сейчас в теме
Действительно - не понятно зачем вообще используете группировки, не вычисляя ничего по ним
Сначала упростите запрос, и получите осмысленные данные в консоли запросов, а потом уж пытайтесь их впихнуть в свой макет
8. user1008893 19.02.19 14:02 Сейчас в теме
9. YannikAlx 43 19.02.19 14:03 Сейчас в теме
Покажите результаты запроса из консоли ...
Что ваш запрос выдает?
10. user1008893 19.02.19 14:10 Сейчас в теме
(9)
ВЫБРАТЬ
	ПС_ЗаказыДляОтгрузкиЗаказы.Заказ КАК Заказ,
	ПС_ЗаказыДляОтгрузкиЗаказы.Вес КАК Вес,
	ПС_ЗаказыДляОтгрузкиЗаказы.Объем КАК Объем,
	ПС_ЗаказыДляОтгрузкиЗаказы.Сумма КАК Сумма,
	ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка.ДеньОтгрузки КАК ДатаОтгрузки,
	ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка.Контрагент КАК Контрагент
ИЗ
	Документ.ПС_ЗаказыДляОтгрузки.Заказы КАК ПС_ЗаказыДляОтгрузкиЗаказы
ГДЕ
	НЕ ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка.ПометкаУдаления

СГРУППИРОВАТЬ ПО
	ПС_ЗаказыДляОтгрузкиЗаказы.Заказ,
	ПС_ЗаказыДляОтгрузкиЗаказы.Вес,
	ПС_ЗаказыДляОтгрузкиЗаказы.Объем,
	ПС_ЗаказыДляОтгрузкиЗаказы.Сумма,
	ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка.ДеньОтгрузки,
	ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка.Контрагент
Показать
Прикрепленные файлы:
11. YannikAlx 43 19.02.19 14:29 Сейчас в теме
Так зачем у вас применяется СГРУППИРОВАТЬ ПО ???

В совершенно то же самое получите из запроса


ВЫБРАТЬ
    ПС_ЗаказыДляОтгрузкиЗаказы.Заказ КАК Заказ,
    ПС_ЗаказыДляОтгрузкиЗаказы.Вес КАК Вес,
    ПС_ЗаказыДляОтгрузкиЗаказы.Объем КАК Объем,
    ПС_ЗаказыДляОтгрузкиЗаказы.Сумма КАК Сумма,
    ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка.ДеньОтгрузки КАК ДатаОтгрузки,
    ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка.Контрагент КАК Контрагент
ИЗ
    Документ.ПС_ЗаказыДляОтгрузки.Заказы КАК ПС_ЗаказыДляОтгрузкиЗаказы
ГДЕ
    НЕ ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка.ПометкаУдаления
Показать
12. user1008893 19.02.19 14:30 Сейчас в теме
(11)я и без этого пробовала,все равно не получается
13. YannikAlx 43 19.02.19 14:37 Сейчас в теме
И кстати в запросе не хватает Условия

И ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка.ДеньОтгрузки МЕЖДУ &НачалоПериода и &КонецПериода
14. YannikAlx 43 19.02.19 14:44 Сейчас в теме
Поменяйте местами циклы- вы же сначала заполняете дату, а внутри этой даты имеете несколько записей...


 Пока выборка.Следующий() Цикл    

        Пока _Период <= _КонПериод Цикл

И отсортируйте запрос по дню отгрузки...
Тогда будет результат
Оставьте свое сообщение

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