Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Соединить два регистра сведений по периодам.

Соединить два регистра сведений по периодам.
Я
   Beduin
 
01.12.17 - 10:16
Есть два регистра сведений из зарплаты типовой.
РаботникиОрганизаций и ПлановыеНачисленияРаботниковОрганизаций.
В одном отражаются кадровые движения, в другом виды расчета по сотруднику.
Можно ли с помощью запроса при любом кадровом движении показывать активные начисления сотрудника.
например
01.01.2017 Кадровое перемещение ВидРасчета1 10000
01.01.2017 Кадровое перемещение ВидРасчета2 3000
01.02.2017 Кадровое перемещение ВидРасчета1 10000
01.03.2017 Кадровое перемещение ВидРасчета1 5000
01.01.2017 Кадровое перемещение ВидРасчета3 1000

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

УПОРЯДОЧИТЬ ПО
    Сотрудник
 
 
   3achem
 
1 - 01.12.17 - 10:21
(0) Убери вложенный запрос, сделай временную таблицу, в неё помещаешь плановые начисления с отбором по сотруднику и соединяешь с регистром.
   lopus
 
2 - 01.12.17 - 10:25
По идее еще нужно ПериодЗавершения проверять.
   perester
 
3 - 01.12.17 - 10:26
ОБЪЕДИНИТЬ?
   Beduin
 
4 - 01.12.17 - 10:28
(1) А как мне узнать, на каждую дату какие виды расчета активны. Если использовать срез последних, то я могу снять состояние на дату по активным видам расчета. Но срез последних я могу использовать только на одну дату поступившую в запрос в виде параметра. Поэтому мне надо реализовать свой срез последних. И вот тут проблема. У регистра сведений работникиорганизаций нет вида расчета как измерения. И мне нужно расширить таблицу работников организаций видам расчета
   marriachi
 
5 - 01.12.17 - 10:30
Надо использовать Левое соединение, срез последних не использовать, связь по периоду
   3achem
 
6 - 01.12.17 - 10:34
(4) Получаешь все начисления, потом в отдельной таблицу получаешь активные, в конце всё собираешь.Тебе работникиорганизации нужны только для получения даты кадрового пермещения. Поэтому ты левым соединением складываешь по сотруднику.
   Beduin
 
7 - 01.12.17 - 10:36
(2) Это все проверятся, я для упрощения из запроса лишнее убрал.
   Beduin
 
8 - 01.12.17 - 10:40
(6) Вот в этом и проблема, мне нужно на каждую дату движения по регистру РаботникиОрганизаций получать активные виды расчета. Я не знаю как, если я добавлю список всех видов расчета по сотруднику и расширю таблицу РаботникиОрганизаций, то там будут лишнее. Хотя можно через внутреннее соединение, только те которые равны. Сейчас попробую, напишу если получится.
   3achem
 
9 - 01.12.17 - 10:42
(8) ЕСТЬ NULL

Там простой запрос получается, но с несколькими временными таблицами.

Список тем форума
Рекламное место пустует  Рекламное место пустует
Программист всегда исправляет последнюю ошибку.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует