Добрый день! конфа 1с ЗУП обычное приложение.
Используется документ "Кадровое перемещение организаций"
Запросом собираются данные в несколько ВТ, в итоге выборкой отображаются (ну в принципе схема стандартная тут)
Вопрос заключается вот в чем:
В одной из ВТ есть 2 "подзапроса", один с табличной части ОсновныеНачисления, другой с ДополнительныхНачислений.
Как сделать соединение 2х записей в одну?
Код запроса этой ВТ (если вдруг кому интересно):
//персональная надбавка = основное начисление
//материальная помощь = дополнительное начисление.
PS. если кто считает, что с документа данные тянуть не корректно, то я в курсе. Но по другому никак. Увы (((
Заранее благодарю за помощь.
Прикреплены 2 скрина строк. Первый в 2 строки как формируется, второй в одну строку как надо. (Для более точного понятия моего вопроса)
Используется документ "Кадровое перемещение организаций"
Запросом собираются данные в несколько ВТ, в итоге выборкой отображаются (ну в принципе схема стандартная тут)
Вопрос заключается вот в чем:
В одной из ВТ есть 2 "подзапроса", один с табличной части ОсновныеНачисления, другой с ДополнительныхНачислений.
Как сделать соединение 2х записей в одну?
Код запроса этой ВТ (если вдруг кому интересно):
ВЫБРАТЬ
КадровоеПеремещениеОрганизацийОсновныеНачисления.Ссылка,
КадровоеПеремещениеОрганизацийРаботникиОрганизации.ДатаНачала,
КадровоеПеремещениеОрганизацийРаботникиОрганизации.ДатаОкончания,
КадровоеПеремещениеОрганизацийОсновныеНачисления.Сотрудник,
КадровоеПеремещениеОрганизацийОсновныеНачисления.Действие КАК Действие,
КадровоеПеремещениеОрганизацийОсновныеНачисления.ВидРасчета КАК ВидРасчета,
КадровоеПеремещениеОрганизацийОсновныеНачисления.Показатель1 КАК Сумма,
0 КАК ДопДействие,
0 КАК ДопВидРасчета,
0 КАК ДопСумма
ПОМЕСТИТЬ КПОсновныеНачисления
ИЗ
Документ.КадровоеПеремещениеОрганизаций.ОсновныеНачисления КАК КадровоеПеремещениеОрганизацийОсновныеНачисления
ЛЕВОЕ СОЕДИНЕНИЕ Документ.КадровоеПеремещениеОрганизаций.РаботникиОрганизации КАК КадровоеПеремещениеОрганизацийРаботникиОрганизации
ПО КадровоеПеремещениеОрганизацийОсновныеНачисления.Ссылка = КадровоеПеремещениеОрганизацийРаботникиОрганизации.Ссылка
И КадровоеПеремещениеОрганизацийОсновныеНачисления.Сотрудник = КадровоеПеремещениеОрганизацийРаботникиОрганизации.Сотрудник
ГДЕ
ВЫБОР
КОГДА КадровоеПеремещениеОрганизацийОсновныеНачисления.Действие <> ЗНАЧЕНИЕ(Перечисление.ВидыДействияСНачислением.НеИзменять)
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ
И КадровоеПеремещениеОрганизацийРаботникиОрганизации.ДатаОкончания <> &ПустоеЗначение
И ВЫБОР
КОГДА КадровоеПеремещениеОрганизацийРаботникиОрганизации.ДатаОкончания = &ТекущаяДата
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
КадровоеПеремещениеОрганизацийДополнительныеНачисления.Ссылка,
КадровоеПеремещениеОрганизацийРаботникиОрганизации.ДатаНачала,
КадровоеПеремещениеОрганизацийРаботникиОрганизации.ДатаОкончания,
КадровоеПеремещениеОрганизацийДополнительныеНачисления.Сотрудник,
0,
0,
0,
КадровоеПеремещениеОрганизацийДополнительныеНачисления.Действие,
КадровоеПеремещениеОрганизацийДополнительныеНачисления.ВидРасчета,
КадровоеПеремещениеОрганизацийДополнительныеНачисления.Показатель1
ИЗ
Документ.КадровоеПеремещениеОрганизаций.ДополнительныеНачисления КАК КадровоеПеремещениеОрганизацийДополнительныеНачисления
ЛЕВОЕ СОЕДИНЕНИЕ Документ.КадровоеПеремещениеОрганизаций.РаботникиОрганизации КАК КадровоеПеремещениеОрганизацийРаботникиОрганизации
ПО КадровоеПеремещениеОрганизацийДополнительныеНачисления.Ссылка = КадровоеПеремещениеОрганизацийРаботникиОрганизации.Ссылка
И КадровоеПеремещениеОрганизацийДополнительныеНачисления.Сотрудник = КадровоеПеремещениеОрганизацийРаботникиОрганизации.Сотрудник
ГДЕ
ВЫБОР
КОГДА КадровоеПеремещениеОрганизацийДополнительныеНачисления.Действие <> ЗНАЧЕНИЕ(Перечисление.ВидыДействияСНачислением.НеИзменять)
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ
И ВЫБОР
КОГДА КадровоеПеремещениеОрганизацийРаботникиОрганизации.ДатаОкончания = &ТекущаяДата
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ
И КадровоеПеремещениеОрганизацийРаботникиОрганизации.ДатаОкончания <> &ПустоеЗначение
;
Показать//персональная надбавка = основное начисление
//материальная помощь = дополнительное начисление.
PS. если кто считает, что с документа данные тянуть не корректно, то я в курсе. Но по другому никак. Увы (((
Заранее благодарю за помощь.
Прикреплены 2 скрина строк. Первый в 2 строки как формируется, второй в одну строку как надо. (Для более точного понятия моего вопроса)
Прикрепленные файлы:


По теме из базы знаний
- Баттерфляй - метод быстрого расчета нарастающего итога в запросе
- Разбиение / "суммирование" строк в запросе
- Смотрим запросы 1С через Microsoft SQL Profiler по следам ошибок разработчиков, приводящих к проблемам производительности
- Модель запроса SQL
- Заметки по SQL: Создание ранжирующей функции ROW_NUMBER и функций смещения LAG и LEAD простым запросом
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) Опять же, если вы имеете ввиду несколько запросов, то скорее мне это не очень подойдет (либо я не знаю всех возможностей), так как в итоге это будет отчет на скд. Или здесь Вы имеете ввиду сделать несколько наборов данных, в итоге сделав п ним объединение?
(10)
выбрать в две ВТ (ОсновныеНачисления и ДополнительныеНачисления), потом из обеих в одну ВТ по ключу Сотрудник и уже потом выбрать дальше как надо
Модно не в две ВТ выбирать а в два подзапроса и потом соединять и выбрать без объединения из двух поздапросов в одну ВТ по ключу. Это уже на любителя.
В одной из ВТ есть 2 "подзапроса", один с табличной части ОсновныеНачисления, другой с ДополнительныхНачислений.
Как сделать соединение 2х записей в одну?
Как сделать соединение 2х записей в одну?
выбрать в две ВТ (ОсновныеНачисления и ДополнительныеНачисления), потом из обеих в одну ВТ по ключу Сотрудник и уже потом выбрать дальше как надо
Модно не в две ВТ выбирать а в два подзапроса и потом соединять и выбрать без объединения из двух поздапросов в одну ВТ по ключу. Это уже на любителя.
Сначала делайте пакетный запрос суммируйте по ресурсам (без измерений, кроме сотрудника и тех, где всегда есть значение не 0). Потом соединение его с основным запросом по измерениям, которые в нем были, и добавление максимумов тем измерений, которых не были в пакетном запросе
(6) Образно я поняла о чем Вы говорите. И если я поняла правильно, то одним запросом здесь не обойтись? а у меня в итоге это будет отчет на скд.
И еще, здесь используется документ. имеет ли это значение при группировке и суммировании? Так как конкретных разграничений в измерениях и ресурсах не видно.
И еще, здесь используется документ. имеет ли это значение при группировке и суммировании? Так как конкретных разграничений в измерениях и ресурсах не видно.
(11) В принципе, сейчас в этой временной таблице, и есть 2 пакетных запроса по этим двум табличным частям документа.
Т.е. Вы предлагаете сначала в этой временной таблице проссумировать ресурсы, а потом в выборке сделать максимум по измерениям? правильно? ))
Если да, то нужно попробовать ), но тогда еще вопрос, а ресурсы, которые мы проссумировали во временной таблице в выборке нужно будет поставить максимум?
Т.е. Вы предлагаете сначала в этой временной таблице проссумировать ресурсы, а потом в выборке сделать максимум по измерениям? правильно? ))
Если да, то нужно попробовать ), но тогда еще вопрос, а ресурсы, которые мы проссумировали во временной таблице в выборке нужно будет поставить максимум?
(14) Сначала суммируйте ресурсы по важным реквизитам (сотрудник, график работы и по тем, в которых не могут быть нули вместо значений). Потом делайте левое соединение этого пакетного запроса с основным по реквизитам из пакетного и добавляете реквизиты из 1 запросы по максимальным его значениям (где могли быть нули, например "действие, вид расчета"). Ресурсы из пакеты тоже можно сделать максимумы для верности
(9)(10)Где вы там в тексте увидели про несколько запросов.
Вам говорят, что нужно сперва отдельно выбрать "основу" - у вас это первые четыре поля. А потом к ним уже присоединять недостающие поля. Определившись предварительно, что нужно делать, если количество записей в ТЧ будет разным.
Вам говорят, что нужно сперва отдельно выбрать "основу" - у вас это первые четыре поля. А потом к ним уже присоединять недостающие поля. Определившись предварительно, что нужно делать, если количество записей в ТЧ будет разным.
(13)
Это были мои предположения и вопрос.
Спасибо за разъяснение. На словах немного тяжело понять, что предлагают. Поэтому и уточняю, и задаю такие вопросы. ))
Где вы там в тексте увидели про несколько запросов.
Это были мои предположения и вопрос.
Вам говорят, что нужно сперва отдельно выбрать "основу" - у вас это первые четыре поля. А потом к ним уже присоединять недостающие поля.
Спасибо за разъяснение. На словах немного тяжело понять, что предлагают. Поэтому и уточняю, и задаю такие вопросы. ))
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот