Имя: Пароль:
1C
1С v8
Связь таблиц в запросе.
0 val245
 
20.05.13
13:24
Имеется конфигурация ЗУП для бюджетных организаций. В регистрах по начислениям нет реквизита Должность. Мне же нужно составить отчет, который будет показывать начисления по должностям, то есть должность - начисление. Для реализации данной задачи я составляю таблицу всех начислений по сотрудникам в разрезе по периоду начисления.

ВЫБРАТЬ
   БУОсновныеНачисления.ПериодРегистрации КАК ПериодРегистрации,
   БУОсновныеНачисления.ФизЛицо КАК ФизЛицо,
   СУММА(БУОсновныеНачисления.Результат) КАК Результат
ИЗ
   РегистрРасчета.БУОсновныеНачисления КАК БУОсновныеНачисления
ГДЕ
   БУОсновныеНачисления.ПериодРегистрации МЕЖДУ &ДатаНач И &ДатаКон

СГРУППИРОВАТЬ ПО
   БУОсновныеНачисления.ПериодРегистрации,
   БУОсновныеНачисления.ФизЛицо

Перебирая строки таблицы нахожу должность сотрудника на данный период запросом

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

Потом исходя из полученной таблицы составляю временную таблицу и ее уже привожу в нужный мне вид.
Но записей там огромное количество. и таких таблиц в отчете мне нужно составлять несколько. Естественно отчет формируется долго (до 5 минут). Можно ли как-нибудь находить данные по сотруднику (должность) на период в одном запросе? то есть Период, Сотрудник, должность на период, начисление, не создавая реквизит Должность в регистре? Думаю, это бы значительно ускорило работу отчета
1 vicof
 
20.05.13
13:30
выбирай из регистра РаботникиОрганизаций срез на начало периода + обороты за период, затем соединяй с начислениями по должности
2 vicof
 
20.05.13
13:31
если в бюджетной зарплате такой регистр есть
3 val245
 
20.05.13
13:32
в ом то и дело что нет. В регистре нет Должности. Но брать должности на конец или начала периода не правильно, они же могут меняться в течении периода, поэтому и нужно находить на период.. вот как это сделать в одном запросе, не знаю
4 val245
 
20.05.13
13:33
*нужно брать должности на период начисления
5 vicof
 
20.05.13
13:36
(3) читаем внимательно (1).
6 val245
 
20.05.13
13:51
вверх
7 val245
 
20.05.13
16:20
ddth[
8 DexterMorgan
 
20.05.13
16:29
(0) в яндекс (гугл) - срез последних на каждую дату в запросе
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс