0
val245
20.05.13
✎
13:24
|
Имеется конфигурация ЗУП для бюджетных организаций. В регистрах по начислениям нет реквизита Должность. Мне же нужно составить отчет, который будет показывать начисления по должностям, то есть должность - начисление. Для реализации данной задачи я составляю таблицу всех начислений по сотрудникам в разрезе по периоду начисления.
ВЫБРАТЬ
БУОсновныеНачисления.ПериодРегистрации КАК ПериодРегистрации,
БУОсновныеНачисления.ФизЛицо КАК ФизЛицо,
СУММА(БУОсновныеНачисления.Результат) КАК Результат
ИЗ
РегистрРасчета.БУОсновныеНачисления КАК БУОсновныеНачисления
ГДЕ
БУОсновныеНачисления.ПериодРегистрации МЕЖДУ &ДатаНач И &ДатаКон
СГРУППИРОВАТЬ ПО
БУОсновныеНачисления.ПериодРегистрации,
БУОсновныеНачисления.ФизЛицо
Перебирая строки таблицы нахожу должность сотрудника на данный период запросом
ВЫБРАТЬ
РаботникиОрганизацийСрезПоследних.Сотрудник,
РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации,
РаботникиОрганизацийСрезПоследних.Должность,
ВложенныйЗапрос.Значение
ИЗ
РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Период, Сотрудник.Физлицо = &Физлицо) КАК РаботникиОрганизацийСрезПоследних
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ЗначенияСвойствОбъектов.Объект КАК Объект,
ЗначенияСвойствОбъектов.Значение КАК Значение
ИЗ
РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
ГДЕ
ЗначенияСвойствОбъектов.Свойство = &СвойствоВид) КАК ВложенныйЗапрос
ПО РаботникиОрганизацийСрезПоследних.Должность = ВложенныйЗапрос.Объект
Потом исходя из полученной таблицы составляю временную таблицу и ее уже привожу в нужный мне вид.
Но записей там огромное количество. и таких таблиц в отчете мне нужно составлять несколько. Естественно отчет формируется долго (до 5 минут). Можно ли как-нибудь находить данные по сотруднику (должность) на период в одном запросе? то есть Период, Сотрудник, должность на период, начисление, не создавая реквизит Должность в регистре? Думаю, это бы значительно ускорило работу отчета
|
|
3
val245
20.05.13
✎
13:32
|
в ом то и дело что нет. В регистре нет Должности. Но брать должности на конец или начала периода не правильно, они же могут меняться в течении периода, поэтому и нужно находить на период.. вот как это сделать в одном запросе, не знаю
|
|