Имя: Пароль:
1C
1С v8
СКД. Два периода, колонки друг за другом.
0 pocketbeast
 
21.03.25
13:04
Всем прекраснейшего пятничного дня, коллеги!

Будьте добры, подскажите, пожалуйста, как мне решить вот такую задачу:

Есть отчет на СКД по прослеживаемости отгрузки за два выбранных периода. Для примера возьмем с января по март 2022 года и с января по март 2023 года. Делаю через соединение двух запросов. Для первого и второго периода, соответственно. Каждый период вывожу помесячно и получается вот так: https://disk.yandex.ru/i/sNtE4yQh3iwI1g

А мне хотелось бы, чтобы месяца выводились друг за другом. То есть: январь 2023 после января 2022, февраль 2023 после февраля 2022 и т.д. Как такое можно реализовать, не вмешиваясь в программный процесс компоновки?

Нужно это для того, что потом будет добавлена колонка "Отклонение веса", в котором будет показано, на сколько, собственно, вес различается между первым и вторым месяцем.

Первый запрос:
ВЫБРАТЬ
	НАЧАЛОПЕРИОДА(ГпОтгрузка.Период, МЕСЯЦ) КАК ПериодМесяц,
	ГпОтгрузка.ГпТранспортнаяУпаковка КАК ТранспортнаяУпаковка,
	ГпОтгрузка.ГпТранспортнаяУпаковка.СсылкаГпАналитикаГруппа.СсылкаПодразделенияПроизводственныеЦеха КАК Цех,
	ГпОтгрузка.Вес * &КоэффициентИзмерения КАК Вес,
	ГпОтгрузка.СуммаСоСкидкой КАК СуммаСоСкидкой,
	ГпОтгрузка.ГпТранспортнаяУпаковка.СсылкаГпАналитикаВид КАК ВидПродукции,
	ГпОтгрузка.ГпТранспортнаяУпаковка.СсылкаГпАналитикаГруппа КАК ГруппаПродукции,
	ГпОтгрузка.ГпТранспортнаяУпаковка.СсылкаГпКоличествоМестВТаре.ПризнакВесовой КАК ПризнакВесовой
ИЗ
	РегистрНакопления.ГпОтгрузка КАК ГпОтгрузка
ГДЕ
	ГпОтгрузка.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
	И ГпОтгрузка.ГпТранспортнаяУпаковка.СсылкаГпАналитикаВид <> &Напитки
	И ГпОтгрузка.ГпТранспортнаяУпаковка.СсылкаГпАналитикаПодвид <> &ГПНапитки


Второй запрос:
ВЫБРАТЬ
	НАЧАЛОПЕРИОДА(ГпОтгрузка.Период, МЕСЯЦ) КАК ПериодМесяцДоп,
	ГпОтгрузка.ГпТранспортнаяУпаковка КАК ТранспортнаяУпаковка,
	ГпОтгрузка.ГпТранспортнаяУпаковка.СсылкаГпАналитикаГруппа.СсылкаПодразделенияПроизводственныеЦеха КАК Цех,
	ГпОтгрузка.Вес * &КоэффициентИзмерения КАК ВесДоп,
	ГпОтгрузка.СуммаСоСкидкой КАК СуммаСоСкидкойДоп,
	ГпОтгрузка.ГпТранспортнаяУпаковка.СсылкаГпАналитикаВид КАК ВидПродукции,
	ГпОтгрузка.ГпТранспортнаяУпаковка.СсылкаГпАналитикаГруппа КАК ГруппаПродукции,
	ГпОтгрузка.ГпТранспортнаяУпаковка.СсылкаГпКоличествоМестВТаре.ПризнакВесовой КАК ПризнакВесовой
ИЗ
	РегистрНакопления.ГпОтгрузка КАК ГпОтгрузка
ГДЕ
	ГпОтгрузка.Период МЕЖДУ &ДатаНачалаДоп И &ДатаОкончанияДоп
	И ГпОтгрузка.ГпТранспортнаяУпаковка.СсылкаГпАналитикаВид <> &Напитки
	И ГпОтгрузка.ГпТранспортнаяУпаковка.СсылкаГпАналитикаПодвид <> &ГПНапитки


Вот так выглядит структура: https://disk.yandex.ru/i/_yuRydzf4jc5Kg

Сам отчет: https://disk.yandex.ru/d/5fiHfEY6qFgz7A
(Только работать он все равно не будет, потому что у меня там при компоновке еще заполняются параметры. И там все кривовато, поэтому я бы не хотел его выставлять на суд общественности без необходимости)
1 mikecool
 
21.03.25
13:12
сформируй вспом табличку с периодами и сортировкой как тебе надо, используй ее при выводе
2 pocketbeast
 
21.03.25
13:17
(1) Вы имеете в виду использовать в наборах данных вместо запросов объект? Вот так: https://disk.yandex.ru/i/5FNZQTegvQWKNA
3 Мультук
 
гуру
21.03.25
13:31
(2)

Нет, он имеет в виду "ВыражениеДляСортировки"
ВЫБРАТЬ
	НАЧАЛОПЕРИОДА(ГпОтгрузка.Период, МЕСЯЦ) КАК ПериодМесяц,
        {Тут что-то умное}                      КАК ВыражениеДляСортировки,
	ГпОтгрузка.ГпТранспортнаяУпаковка КАК ТранспортнаяУпаковка,
	ГпОтгрузка.ГпТранспортнаяУпаковка.СсылкаГпАналитикаГруппа.СсылкаПодразделенияПроизводственныеЦеха КАК Цех,
	ГпОтгрузка.Вес * &КоэффициентИзмерения КАК Вес,
	ГпОтгрузка.СуммаСоСкидкой КАК СуммаСоСкидкой,
	ГпОтгрузка.ГпТранспортнаяУпаковка.СсылкаГпАналитикаВид КАК ВидПродукции,
	ГпОтгрузка.ГпТранспортнаяУпаковка.СсылкаГпАналитикаГруппа КАК ГруппаПродукции,
	ГпОтгрузка.ГпТранспортнаяУпаковка.СсылкаГпКоличествоМестВТаре.ПризнакВесовой КАК ПризнакВесовой
ИЗ
	РегистрНакопления.ГпОтгрузка КАК ГпОтгрузка
ГДЕ
	ГпОтгрузка.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
	И ГпОтгрузка.ГпТранспортнаяУпаковка.СсылкаГпАналитикаВид <> &Напитки
	И ГпОтгрузка.ГпТранспортнаяУпаковка.СсылкаГпАналитикаПодвид <> &ГПНапитки



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

ВЫБРАТЬ
	НАЧАЛОПЕРИОДА(ГпОтгрузка.Период, МЕСЯЦ) КАК ПериодМесяцДоп,
        {И тут что-то умное}                      КАК ВыражениеДляСортировки,
	ГпОтгрузка.ГпТранспортнаяУпаковка КАК ТранспортнаяУпаковка,
	ГпОтгрузка.ГпТранспортнаяУпаковка.СсылкаГпАналитикаГруппа.СсылкаПодразделенияПроизводственныеЦеха КАК Цех,
	ГпОтгрузка.Вес * &КоэффициентИзмерения КАК ВесДоп,
	ГпОтгрузка.СуммаСоСкидкой КАК СуммаСоСкидкойДоп,
	ГпОтгрузка.ГпТранспортнаяУпаковка.СсылкаГпАналитикаВид КАК ВидПродукции,
	ГпОтгрузка.ГпТранспортнаяУпаковка.СсылкаГпАналитикаГруппа КАК ГруппаПродукции,
	ГпОтгрузка.ГпТранспортнаяУпаковка.СсылкаГпКоличествоМестВТаре.ПризнакВесовой КАК ПризнакВесовой
ИЗ
	РегистрНакопления.ГпОтгрузка КАК ГпОтгрузка
ГДЕ
	ГпОтгрузка.Период МЕЖДУ &ДатаНачалаДоп И &ДатаОкончанияДоп
	И ГпОтгрузка.ГпТранспортнаяУпаковка.СсылкаГпАналитикаВид <> &Напитки
	И ГпОтгрузка.ГпТранспортнаяУпаковка.СсылкаГпАналитикаПодвид <> &ГПНапитки
4 pocketbeast
 
21.03.25
13:40
(3) теперь понял, спасибо. Но только это же не сработает в данном случае, потому что в структуре в колонке у меня два поля периода. Ну и получается, что сначала все равно будут выводиться только колонки первого периода, а за ними колонки второго периода.

Пока это писал, кажется, до меня дошло, что в (1) имелось в виду. Я попробую соединить эти два запроса в ВТ, а потом из нее выбрать с нужной мне сортировкой. Спасибо большое за наводку!
Ошибка? Это не ошибка, это системная функция.