helpf.pro
Регистрация

v8: запрос, по работающим сотрудникам

tugev
12.09.2013 20:11Прочитано: 13534
Про консультируйте, пжт, правильно ли написан запрос , по работающим сотрудникам компании на указанную дату

Запрос=новый Запрос;
Запрос.Текст="
|ВЫБРАТЬ
| РаботникиОрганизации.Сотрудник КАК Сотрудник,
| ВЫБОР
| КОГДА РаботникиОрганизации.ПериодЗавершения <= &ДатаСобытия
| И РаботникиОрганизации.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
| ТОГДА РаботникиОрганизации.ПодразделениеОрганизацииЗавершения
| ИНАЧЕ РаботникиОрганизации.ПодразделениеОрганизации
| КОНЕЦ КАК ПодразделениеОрганизации,
| ВЫБОР
| КОГДА РаботникиОрганизации.ПериодЗавершения <= &ДатаСобытия
| И РаботникиОрганизации.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
| ТОГДА РаботникиОрганизации.ДолжностьЗавершения
| ИНАЧЕ РаботникиОрганизации.Должность
| КОНЕЦ КАК Должность,
| ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.Показатель1 КАК ЗначениеСтавкиОсновногоНачисления
|ИЗ
| РегистрСведений.РаботникиОрганизаций.СрезПоследних(&ДатаСобытия, ) КАК РаботникиОрганизации
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПлановыеНачисленияРаботниковОрганизаций.СрезПоследних(, ) КАК ПлановыеНачисленияРаботниковОрганизацийСрезПоследних
| ПО РаботникиОрганизации.Сотрудник = ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.Сотрудник
|ГДЕ
| РаботникиОрганизации.ЗанимаемыхСтавок > 0
| И ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ВидРасчета = &ВидРасчета
|";
Запрос.УстановитьПараметр("ВидРасчета",ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОкладПоДням);
Запрос.УстановитьПараметр("ДатаСобытия",Дата("12.09.2013 0:00:00"));
Результат = Запрос.Выполнить().Выбрать();
Пока Результат.Следующий() Цикл
КонецЦикла;
Изменено 12.09.13 20:15:10
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
12.09.2013 20:29Ответ № 1
(0) tugev, что-то как-то очень сложно:
надо сделать запрос к регистру сведений - кадровые данные работников и еще Состояние работников организаций
tugev
12.09.2013 22:19Ответ № 2
на дату понятно, а за период (месяц) как тут быть
IKSparrow
17.09.2013 13:01Ответ № 3
(2) Держи. Только недавно ковырялся.
(1) А в ЗУПе всё непросто )

За период, надо получать по таблице регистра соединяя её со срезом последних на начало и конец периода.
IKSparrow
17.09.2013 13:01Ответ № 4
Ой, запрос забыл
Код 1C v 8.2 УП
 
ВЫБРАТЬ
РаботникиОрганизаций.Сотрудник КАК Сотрудник,
РаботникиОрганизаций.Период КАК ДатаС,
ВЫБОР
КОГДА МИНИМУМ(РаботникиОрганизаций1.ПричинаИзмененияСостояния) = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)
ТОГДА МИНИМУМ(РаботникиОрганизаций1.Период)
ИНАЧЕ ДОБАВИТЬКДАТЕ(МИНИМУМ(РаботникиОрганизаций1.Период), ДЕНЬ, -1)
КОНЕЦ КАК ДатаПо,
РаботникиОрганизаций.ПодразделениеОрганизации,
РаботникиОрганизаций.Должность
ИЗ
РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций1
ПО РаботникиОрганизаций.Сотрудник = РаботникиОрганизаций1.Сотрудник
И РаботникиОрганизаций.Период < РаботникиОрганизаций1.Период
ГДЕ
РаботникиОрганизаций.ПричинаИзмененияСостояния <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)

СГРУППИРОВАТЬ ПО
РаботникиОрганизаций.Период,
РаботникиОрганизаций.ПодразделениеОрганизации,
РаботникиОрганизаций.Должность,
РаботникиОрганизаций.Сотрудник,
РаботникиОрганизаций.ПричинаИзмененияСостояния

УПОРЯДОЧИТЬ ПО
Сотрудник,
ДатаС
IKSparrow
17.09.2013 14:14Ответ № 5
Черт, не то скинул. Вот.

Код 1C v 8.2 УП
 
ВЫБРАТЬ
ВЫБОР
КОГДА РаботникиОрганизацийСрезПоследних.Период < &НачалоПериода
ТОГДА &НачалоПериода
ИНАЧЕ РаботникиОрганизацийСрезПоследних.Период
КОНЕЦ КАК Период,
РаботникиОрганизацийСрезПоследних.Сотрудник,
РаботникиОрганизацийСрезПоследних.ГрафикРаботы.ДлительностьРабочейНедели КАК ДлительностьРабочейНедели,
РаботникиОрганизацийСрезПоследних.ГрафикРаботы.ДлительностьРабочейНедели / 5 КАК ЧасовВДень,
РаботникиОрганизацийСрезПоследних.ЗанимаемыхСтавок
ИЗ
РегистрСведений.РаботникиОрганизаций.СрезПоследних(&НачалоПериода, Сотрудник В (&Сотрудник)) КАК РаботникиОрганизацийСрезПоследних

ОБЪЕДИНИТЬ

ВЫБРАТЬ
ВЫБОР
КОГДА РаботникиОрганизаций.Период < &НачалоПериода
ТОГДА &НачалоПериода
ИНАЧЕ РаботникиОрганизаций.Период
КОНЕЦ,
РаботникиОрганизаций.Сотрудник,
РаботникиОрганизаций.ГрафикРаботы.ДлительностьРабочейНедели,
РаботникиОрганизаций.ГрафикРаботы.ДлительностьРабочейНедели / 5,
РаботникиОрганизаций.ЗанимаемыхСтавок
ИЗ
РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
ГДЕ
РаботникиОрганизаций.Период МЕЖДУ &НачалоПериода И &КонецПериода
И РаботникиОрганизаций.Сотрудник В(&Сотрудник)

ОБЪЕДИНИТЬ

ВЫБРАТЬ
ВЫБОР
КОГДА РаботникиОрганизацийСрезПоследних.Период < &НачалоПериода
ТОГДА &НачалоПериода
ИНАЧЕ РаботникиОрганизацийСрезПоследних.Период
КОНЕЦ,
РаботникиОрганизацийСрезПоследних.Сотрудник,
РаботникиОрганизацийСрезПоследних.ГрафикРаботы.ДлительностьРабочейНедели,
РаботникиОрганизацийСрезПоследних.ГрафикРаботы.ДлительностьРабочейНедели / 5,
РаботникиОрганизацийСрезПоследних.ЗанимаемыхСтавок
ИЗ
РегистрСведений.РаботникиОрганизаций.СрезПоследних(&КонецПериода, Сотрудник В (&Сотрудник)) КАК РаботникиОрганизацийСрезПоследних
Подсказка: Для быстрого поиска ответов - используйте 'Поиск'
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.