Объединение строк в запросе

1. a.nikulnikova 15.05.18 11:48 Сейчас в теме
Добрый день! конфа 1с ЗУП обычное приложение.
Используется документ "Кадровое перемещение организаций"
Запросом собираются данные в несколько ВТ, в итоге выборкой отображаются (ну в принципе схема стандартная тут)
Вопрос заключается вот в чем:
В одной из ВТ есть 2 "подзапроса", один с табличной части ОсновныеНачисления, другой с ДополнительныхНачислений.
Как сделать соединение 2х записей в одну?
Код запроса этой ВТ (если вдруг кому интересно):

ВЫБРАТЬ
	КадровоеПеремещениеОрганизацийОсновныеНачисления.Ссылка,
	КадровоеПеремещениеОрганизацийРаботникиОрганизации.ДатаНачала,
	КадровоеПеремещениеОрганизацийРаботникиОрганизации.ДатаОкончания,
	КадровоеПеремещениеОрганизацийОсновныеНачисления.Сотрудник,
	КадровоеПеремещениеОрганизацийОсновныеНачисления.Действие КАК Действие,
	КадровоеПеремещениеОрганизацийОсновныеНачисления.ВидРасчета КАК ВидРасчета,
	КадровоеПеремещениеОрганизацийОсновныеНачисления.Показатель1 КАК Сумма,
	0 КАК ДопДействие,
	0 КАК ДопВидРасчета,
	0 КАК ДопСумма
ПОМЕСТИТЬ КПОсновныеНачисления
ИЗ
	Документ.КадровоеПеремещениеОрганизаций.ОсновныеНачисления КАК КадровоеПеремещениеОрганизацийОсновныеНачисления
		ЛЕВОЕ СОЕДИНЕНИЕ Документ.КадровоеПеремещениеОрганизаций.РаботникиОрганизации КАК КадровоеПеремещениеОрганизацийРаботникиОрганизации
		ПО КадровоеПеремещениеОрганизацийОсновныеНачисления.Ссылка = КадровоеПеремещениеОрганизацийРаботникиОрганизации.Ссылка
			И КадровоеПеремещениеОрганизацийОсновныеНачисления.Сотрудник = КадровоеПеремещениеОрганизацийРаботникиОрганизации.Сотрудник
ГДЕ
	ВЫБОР
			КОГДА КадровоеПеремещениеОрганизацийОсновныеНачисления.Действие <> ЗНАЧЕНИЕ(Перечисление.ВидыДействияСНачислением.НеИзменять)
				ТОГДА ИСТИНА
			ИНАЧЕ ЛОЖЬ
		КОНЕЦ
	И КадровоеПеремещениеОрганизацийРаботникиОрганизации.ДатаОкончания <> &ПустоеЗначение
	И ВЫБОР
			КОГДА КадровоеПеремещениеОрганизацийРаботникиОрганизации.ДатаОкончания = &ТекущаяДата
				ТОГДА ИСТИНА
			ИНАЧЕ ЛОЖЬ
		КОНЕЦ

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

ВЫБРАТЬ
	КадровоеПеремещениеОрганизацийДополнительныеНачисления.Ссылка,
	КадровоеПеремещениеОрганизацийРаботникиОрганизации.ДатаНачала,
	КадровоеПеремещениеОрганизацийРаботникиОрганизации.ДатаОкончания,
	КадровоеПеремещениеОрганизацийДополнительныеНачисления.Сотрудник,
	0,
	0,
	0,
	КадровоеПеремещениеОрганизацийДополнительныеНачисления.Действие,
	КадровоеПеремещениеОрганизацийДополнительныеНачисления.ВидРасчета,
	КадровоеПеремещениеОрганизацийДополнительныеНачисления.Показатель1
ИЗ
	Документ.КадровоеПеремещениеОрганизаций.ДополнительныеНачисления КАК КадровоеПеремещениеОрганизацийДополнительныеНачисления
		ЛЕВОЕ СОЕДИНЕНИЕ Документ.КадровоеПеремещениеОрганизаций.РаботникиОрганизации КАК КадровоеПеремещениеОрганизацийРаботникиОрганизации
		ПО КадровоеПеремещениеОрганизацийДополнительныеНачисления.Ссылка = КадровоеПеремещениеОрганизацийРаботникиОрганизации.Ссылка
			И КадровоеПеремещениеОрганизацийДополнительныеНачисления.Сотрудник = КадровоеПеремещениеОрганизацийРаботникиОрганизации.Сотрудник
ГДЕ
	ВЫБОР
			КОГДА КадровоеПеремещениеОрганизацийДополнительныеНачисления.Действие <> ЗНАЧЕНИЕ(Перечисление.ВидыДействияСНачислением.НеИзменять)
				ТОГДА ИСТИНА
			ИНАЧЕ ЛОЖЬ
		КОНЕЦ
	И ВЫБОР
			КОГДА КадровоеПеремещениеОрганизацийРаботникиОрганизации.ДатаОкончания = &ТекущаяДата
				ТОГДА ИСТИНА
			ИНАЧЕ ЛОЖЬ
		КОНЕЦ
	И КадровоеПеремещениеОрганизацийРаботникиОрганизации.ДатаОкончания <> &ПустоеЗначение
;
Показать


//персональная надбавка = основное начисление
//материальная помощь = дополнительное начисление.

PS. если кто считает, что с документа данные тянуть не корректно, то я в курсе. Но по другому никак. Увы (((

Заранее благодарю за помощь.

Прикреплены 2 скрина строк. Первый в 2 строки как формируется, второй в одну строку как надо. (Для более точного понятия моего вопроса)
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. Kaval88 177 15.05.18 11:58 Сейчас в теме
(1) Сгруппируйте результат запроса. По видам расчета возьмите максимум().
a.nikulnikova; +1 Ответить
4. Den75Ch 15.05.18 12:00 Сейчас в теме
(3) А если будет не 2 строки,а 3? Что максимум даст?
7. a.nikulnikova 15.05.18 12:10 Сейчас в теме
(3) Хорошее решение. Подходит. Спасибо, Но что-то не учли мы то, что могут несколько изменений делать... Тогда получится, что остальные не включатся в результат. Возможно ли сделать это программно, типа условием...
2. FIGOR 15.05.18 11:57 Сейчас в теме
Возможно следует выбирать поля в разные таблицы и потом соединять в одну общую выборку в одно поле деля связку таблиц по некоему ключу, например Сотрудник
10. a.nikulnikova 15.05.18 12:19 Сейчас в теме
(2) Опять же, если вы имеете ввиду несколько запросов, то скорее мне это не очень подойдет (либо я не знаю всех возможностей), так как в итоге это будет отчет на скд. Или здесь Вы имеете ввиду сделать несколько наборов данных, в итоге сделав п ним объединение?
12. FIGOR 15.05.18 12:24 Сейчас в теме
(10)
В одной из ВТ есть 2 "подзапроса", один с табличной части ОсновныеНачисления, другой с ДополнительныхНачислений.
Как сделать соединение 2х записей в одну?


выбрать в две ВТ (ОсновныеНачисления и ДополнительныеНачисления), потом из обеих в одну ВТ по ключу Сотрудник и уже потом выбрать дальше как надо

Модно не в две ВТ выбирать а в два подзапроса и потом соединять и выбрать без объединения из двух поздапросов в одну ВТ по ключу. Это уже на любителя.
a.nikulnikova; +1 Ответить
17. a.nikulnikova 15.05.18 12:49 Сейчас в теме
(12) Спасибо, попробую сделать, Может получится чего.
Делала уже правда обе ТЧ в разные ВТ, но без объединения их потом в еще одну ВТ, а сразу в выборку. Но толку от этого не было.
5. spezc 795 15.05.18 12:02 Сейчас в теме
Запросы надо не объединять, а соединять
8. a.nikulnikova 15.05.18 12:12 Сейчас в теме
(5) Что это изменит? Если изменить связи, то толку от этого не будет. Или Вы про что-то другое говорите?
6. Den75Ch 15.05.18 12:06 Сейчас в теме
Сначала делайте пакетный запрос суммируйте по ресурсам (без измерений, кроме сотрудника и тех, где всегда есть значение не 0). Потом соединение его с основным запросом по измерениям, которые в нем были, и добавление максимумов тем измерений, которых не были в пакетном запросе
a.nikulnikova; +1 Ответить
9. a.nikulnikova 15.05.18 12:16 Сейчас в теме
(6) Образно я поняла о чем Вы говорите. И если я поняла правильно, то одним запросом здесь не обойтись? а у меня в итоге это будет отчет на скд.
И еще, здесь используется документ. имеет ли это значение при группировке и суммировании? Так как конкретных разграничений в измерениях и ресурсах не видно.
11. Den75Ch 15.05.18 12:23 Сейчас в теме
(9) Можно одним запросим. Зачем несколько делать? В обычном запросе тоже можно сделать пакетный запрос (сначала на закладке "Дополнительно" сделайте временный запрос. Документ ни на что не влияет. Его реквизиты условно разделяйте на измерения и ресурсы
14. a.nikulnikova 15.05.18 12:30 Сейчас в теме
(11) В принципе, сейчас в этой временной таблице, и есть 2 пакетных запроса по этим двум табличным частям документа.
Т.е. Вы предлагаете сначала в этой временной таблице проссумировать ресурсы, а потом в выборке сделать максимум по измерениям? правильно? ))
Если да, то нужно попробовать ), но тогда еще вопрос, а ресурсы, которые мы проссумировали во временной таблице в выборке нужно будет поставить максимум?
15. Den75Ch 15.05.18 12:37 Сейчас в теме
(14) Сначала суммируйте ресурсы по важным реквизитам (сотрудник, график работы и по тем, в которых не могут быть нули вместо значений). Потом делайте левое соединение этого пакетного запроса с основным по реквизитам из пакетного и добавляете реквизиты из 1 запросы по максимальным его значениям (где могли быть нули, например "действие, вид расчета"). Ресурсы из пакеты тоже можно сделать максимумы для верности
a.nikulnikova; +1 Ответить
18. a.nikulnikova 15.05.18 12:52 Сейчас в теме
(15)
Сначала суммируйте ресурсы по важным реквизитам (сотрудник, график работы и по тем, в которых не могут быть нули вместо значений)
не получится, нет возможности выбрать сумму в группировке по этим данным
19. Den75Ch 15.05.18 12:59 Сейчас в теме
(18) Как нельзя? Суммируйте по числовым значениям, а группируйте не по числовым
a.nikulnikova; +1 Ответить
20. a.nikulnikova 15.05.18 13:00 Сейчас в теме
(19) все, я поняла Вас. ))) я поняла что Вы предлагаете сделать. Спасибо, сейчас попробую.
21. a.nikulnikova 15.05.18 13:10 Сейчас в теме
(19) Помогло, но только если в документе по одному изменению в начислениях. Если будет что-то третье, то выходят уже не корректные данные, смешивающие данные в колонках.
Короче группировки - это сила. Надо в них ковыряться. к сожалению в них я не сильна.
22. Den75Ch 15.05.18 13:18 Сейчас в теме
(21) ну тогда группируйте только по одному измерению "Сотрудник", а остальные делайте максимальными в суммируемых полях вместе с суммой по ресурсам
23. catena 110 15.05.18 13:27 Сейчас в теме
(21)Возьмите один сложный документ с разным количеством строк в тч-ах и нарисуйте вручную, как он должен отобразиться в вашем отчете. Это сильно прояснит вам путь решения.
13. catena 110 15.05.18 12:25 Сейчас в теме
(9)(10)Где вы там в тексте увидели про несколько запросов.

Вам говорят, что нужно сперва отдельно выбрать "основу" - у вас это первые четыре поля. А потом к ним уже присоединять недостающие поля. Определившись предварительно, что нужно делать, если количество записей в ТЧ будет разным.
a.nikulnikova; bad_wag; +2 Ответить
16. a.nikulnikova 15.05.18 12:38 Сейчас в теме
(13)
Где вы там в тексте увидели про несколько запросов.

Это были мои предположения и вопрос.
Вам говорят, что нужно сперва отдельно выбрать "основу" - у вас это первые четыре поля. А потом к ним уже присоединять недостающие поля.

Спасибо за разъяснение. На словах немного тяжело понять, что предлагают. Поэтому и уточняю, и задаю такие вопросы. ))
Оставьте свое сообщение

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