Имя: Пароль:
1C
1С v8
ЗУП: Помогите с запросом
0 yabes
 
01.12.11
12:08
Задачка по ЗУП!
Задача отчета состоит в том, чтобы за выбранный период проконтролировать количество отработанных сотрудником часов с нормой по его графику и по пятидневке!
Данные для отчета я беру из р.р. "Основные начисления сотрудников организации". В регистре есть колонка НормаЧасовПоПятидневке. Но проблема в том, что предпраздничные дни в этой колонке все равно учитываются как 8 часов, а не как 7. Бухгалтеров это не удовлетворяет!
Я решил сделать так... Вытащить все необходимые данные из "Основные начисления сотрудников организации", сгруппированные по сотрудникам и Видам расчета и вытащить минимальную и максимальную дату расчетов, за этот период сделать обращение к производственному календарю и вытащить из него количество предпраздничных дней. На это количество и надо уменьшить НормуЧасовПоПятидневке, чтобы получить правильный результат! У меня есть 2 запрос: Один к р.р."Основные начисления сотрудников организации", второй к Производственному календарю!
Как вот только их объединить в один запрос, чтобы в таблице первого запроса добавить еще одну колонку, в которой будет отображаться количество предпраздничных дней для сотрудника за расчетный период (он для каждого сотрудника свой)!

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

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

ИМЕЮЩИЕ
   (СУММА(ОсновныеНачисленияРаботниковОрганизаций.ОтработаноДней) > 0
       ИЛИ СУММА(ОсновныеНачисленияРаботниковОрганизаций.ОтработаноЧасов) > 0
       ИЛИ СУММА(ОсновныеНачисленияРаботниковОрганизаций.НормаДней) > 0
       ИЛИ СУММА(ОсновныеНачисленияРаботниковОрганизаций.НормаЧасов) > 0
       ИЛИ СУММА(ОсновныеНачисленияРаботниковОрганизаций.НормаДнейПоПятидневке) > 0
       ИЛИ СУММА(ОсновныеНачисленияРаботниковОрганизаций.НормаЧасовПоПятидневке) > 0
       ИЛИ СУММА(ОсновныеНачисленияРаботниковОрганизаций.ОтработаноДнейПоПятидневке) > 0
       ИЛИ СУММА(ОсновныеНачисленияРаботниковОрганизаций.ОтработаноЧасовПоПятидневке) > 0)

Второй запрос:
ВЫБРАТЬ
   СУММА(РегламентированныйПроизводственныйКалендарь.Пятидневка) КАК Пятидневка
ИЗ
   РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
ГДЕ
   РегламентированныйПроизводственныйКалендарь.ВидДня = ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Предпраздничный)
   И РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &Нач И &Кон
Который должен формироваться для каждого сотрудника, где &Нач и &Кон - это параметры, которые должны браться из ПериодДействияНачало и ПериодДействияКонец первого запроса.
1 СаПеР
 
01.12.11
14:24
в производственном календаре есть реквизит ДатаКалендаря, только по нему
пример можно посмотреть в табеле
2 RomaH
 
naïve
01.12.11
14:47
а может сделать проще и правильнее - выставить правильную норму в регистре?
3 almar
 
01.12.11
14:51
(2) Нельзя, это задумманное разработчиками поведение программы
4 almar
 
01.12.11
14:51
Эти данные используются при расчете среднего заработка в случае частичного учета премий согласно постановлению №922 от 24 декабря 2007 г.
5 RomaH
 
naïve
01.12.11
15:17
(4) и как же они используются?
норма по графику 7 часов, а в регистре 8
можно на примере?
6 RomaH
 
naïve
01.12.11
15:20
я реально не понимаю как можно использовать недостоверные данные для каких-либо расчетов