Проблема заключаеться вот в чем
Общая информация: Есть УТП для Украины (последний релиз) и есть отчет по отпускам, который выдает список сотрудников, резерв отпусков и арифметические функции с резервом.
Есть запрос по которому выполняется выборка сотрудников компании по документу "НачислениеОтпусков", но тогда новые сотрудники которые еще не использовали свой отпуск вообще не отображаются в отчете, то есть надо выбирать их из "прийома на работу", но ничего не выходит (пытался уже разными способами).
Еще одной проблемой есть то что когда сотрудника переводят (а в базе это увольняют и принимают обратно только в другой отдел, то тот отпуск который был возмещен по увольнению сотрудника не учитывается в самом отчете, то есть не отнимается от "резерва отпуска").
Вот исходный запрос:
Запрос.Текст = "ВЫБРАТЬ
| НачислениеОтпускаРаботникамОрганизаций.Сотрудник КАК Сотрудник,
| СУММА(НачислениеОтпускаРаботникамОрганизаций.ОплаченоДнейЧасов) КАК РезервОтпуска,
| СотрудникиОрганизаций.Резерв2010 КАК Резерв2010,
| СведенияОбИнвалидностиФизлиц.Инвалидность КАК Инвалидность
|ПОМЕСТИТЬ ОсновнаяВыборка
|ИЗ
| Документ.НачислениеОтпускаРаботникамОрганизаций.Начисления КАК НачислениеОтпускаРаботникамОрганизаций
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
| ПО НачислениеОтпускаРаботникамОрганизаций.Сотрудник = СотрудникиОрганизаций.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОбИнвалидностиФизлиц КАК СведенияОбИнвалидностиФизлиц
| ПО СотрудникиОрганизаций.Физлицо = СведенияОбИнвалидностиФизлиц.Физлицо
|ГДЕ
| НачислениеОтпускаРаботникамОрганизаций.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон
|
|СГРУППИРОВАТЬ ПО
| НачислениеОтпускаРаботникамОрганизаций.Сотрудник,
| СотрудникиОрганизаций.Резерв2010,
| СведенияОбИнвалидностиФизлиц.Инвалидность
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Начисления.Сотрудник КАК СотрудникиНач,
| СУММА(Начисления.Результат) КАК РезультатСреднего
|ПОМЕСТИТЬ НачисленияРезультат
|ИЗ
| РегистрРасчета.Начисления КАК Начисления
|ГДЕ
| Начисления.ПериодРегистрации МЕЖДУ ДОБАВИТЬКДАТЕ(&ДатаКон, МЕСЯЦ, -12) И &ДатаКон
|
|СГРУППИРОВАТЬ ПО
| Начисления.Сотрудник
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ПриемНаРаботуВОрганизацию.Сотрудник КАК СотрудникПодр,
| ПриемНаРаботуВОрганизацию.ПодразделениеУпр КАК ПодразделениеУпр
|ПОМЕСТИТЬ ПодразделениеОрганизации
|ИЗ
| Документ.ПриемНаРаботуВОрганизацию.РаботникиОрганизации КАК ПриемНаРаботуВОрганизацию
|
|СГРУППИРОВАТЬ ПО
| ПриемНаРаботуВОрганизацию.Сотрудник,
| ПриемНаРаботуВОрганизацию.ПодразделениеУпр
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ОсновнаяВыборка.Сотрудник КАК Сотрудник,
| ОсновнаяВыборка.Инвалидность КАК Инвалидность,
| ((ОсновнаяВыборка.Резерв2010 - ОсновнаяВыборка.РезервОтпуска) + РАЗНОСТЬДАТ(&ДатаНач, КОНЕЦПЕРИОДА( &ДатаКон, ДЕНЬ), МЕСЯЦ)*2 + 2) КАК Резерв,
| ЕСТЬNULL(НачисленияРезультат.РезультатСреднего, 0) КАК РезультатСреднего,
| ПодразделениеОрганизации.ПодразделениеУпр КАК ПодразделениеУпр,
| ПодразделениеОрганизации.ПодразделениеУпр.Наименование КАК Подр,
| (ЕСТЬNULL(НачисленияРезультат.РезультатСреднего, 0))/355 КАК СредняяЗП,
| ((ОсновнаяВыборка.Резерв2010 - ОсновнаяВыборка.РезервОтпуска) + РАЗНОСТЬДАТ(&ДатаНач, КОНЕЦПЕРИОДА( &ДатаКон, ДЕНЬ), МЕСЯЦ)*2 + 2)*((ЕСТЬNULL(НачисленияРезультат.РезультатСреднего, 0))/355) КАК СумОбесп
|ИЗ
| ОсновнаяВыборка КАК ОсновнаяВыборка
| ЛЕВОЕ СОЕДИНЕНИЕ НачисленияРезультат КАК НачисленияРезультат
| ПО ОсновнаяВыборка.Сотрудник = НачисленияРезультат.СотрудникиНач
| ЛЕВОЕ СОЕДИНЕНИЕ ПодразделениеОрганизации КАК ПодразделениеОрганизации
| ПО НачисленияРезультат.СотрудникиНач = ПодразделениеОрганизации.СотрудникПодр
|
|УПОРЯДОЧИТЬ ПО
| Сотрудник
|АВТОУПОРЯДОЧИВАНИЕ
|";
Вот что я пробовал:
1.
Запрос.Текст = "ВЫБРАТЬ
| ПриемНаРаботуВОрганизацию.Сотрудник КАК Сотрудник,
| ПриемНаРаботуВОрганизацию.ПодразделениеУпр КАК ПодразделениеУпр,
| СотрудникиОрганизаций.Резерв2010 КАК Резерв2010,
| СведенияОбИнвалидностиФизлиц.Инвалидность КАК Инвалидность
|ПОМЕСТИТЬ ОсновнаяВыборка
|ИЗ
| Документ.ПриемНаРаботуВОрганизацию.РаботникиОрганизации КАК ПриемНаРаботуВОрганизацию
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
| ПО ПриемНаРаботуВОрганизацию.Сотрудник = СотрудникиОрганизаций.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОбИнвалидностиФизлиц КАК СведенияОбИнвалидностиФизлиц
| ПО СотрудникиОрганизаций.Физлицо = СведенияОбИнвалидностиФизлиц.Физлицо
|ГДЕ
| ПриемНаРаботуВОрганизацию.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон
|
|
|СГРУППИРОВАТЬ ПО
| ПриемНаРаботуВОрганизацию.Сотрудник,
| ПриемНаРаботуВОрганизацию.ПодразделениеУпр,
| СотрудникиОрганизаций.Резерв2010,
| СведенияОбИнвалидностиФизлиц.Инвалидность
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Начисления.Сотрудник КАК СотрудникиНач,
| СУММА(Начисления.Результат) КАК РезультатСреднего
|ПОМЕСТИТЬ НачисленияРезультат
|ИЗ
| РегистрРасчета.Начисления КАК Начисления
|ГДЕ
| Начисления.ПериодРегистрации МЕЖДУ ДОБАВИТЬКДАТЕ(&ДатаКон, МЕСЯЦ, -12) И &ДатаКон
|
|СГРУППИРОВАТЬ ПО
| Начисления.Сотрудник
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| НачислениеОтпускаРаботникамОрганизаций.Сотрудник КАК СотрудникОтп,
| СУММА(НачислениеОтпускаРаботникамОрганизаций.ОплаченоДнейЧасов) КАК РезервОтпуска
|ПОМЕСТИТЬ НачислениеОтпуска
| ИЗ
| Документ.НачислениеОтпускаРаботникамОрганизаций.Начисления КАК НачислениеОтпускаРаботникамОрганизаций
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
| ПО НачислениеОтпускаРаботникамОрганизаций.Сотрудник = СотрудникиОрганизаций.Ссылка
| ГДЕ
| НачислениеОтпускаРаботникамОрганизаций.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон
| СГРУППИРОВАТЬ ПО
| НачислениеОтпускаРаботникамОрганизаций.Сотрудник
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ОсновнаяВыборка.Сотрудник КАК Сотрудник,
| ОсновнаяВыборка.Инвалидность КАК Инвалидность,
| ((ОсновнаяВыборка.Резерв2010 - НачислениеОтпуска.РезервОтпуска) + РАЗНОСТЬДАТ(&ДатаНач, КОНЕЦПЕРИОДА( &ДатаКон, ДЕНЬ), МЕСЯЦ)*2 + 2) КАК Резерв,
//| ОсновнаяВыборка.РезервОтпуска - ОсновнаяВыборка.Резерв2010 КАК РезервРазница,
//| РАЗНОСТЬДАТ(&ДатаНач, КОНЕЦПЕРИОДА( &ДатаКон, ДЕНЬ), МЕСЯЦ) КАК РазностьДат,
| ЕСТЬNULL(НачисленияРезультат.РезультатСреднего, 0) КАК РезультатСреднего,
| ОсновнаяВыборка.ПодразделениеУпр КАК ПодразделениеУпр,
//| ПодразделениеОрганизации.СотрудникПодр КАК СотрудникПодр,
| ОсновнаяВыборка.ПодразделениеУпр.Наименование КАК Подр,
| (ЕСТЬNULL(НачисленияРезультат.РезультатСреднего, 0))/355 КАК СредняяЗП,
| ((ОсновнаяВыборка.Резерв2010 - НачислениеОтпуска.РезервОтпуска) + РАЗНОСТЬДАТ(&ДатаНач, КОНЕЦПЕРИОДА( &ДатаКон, ДЕНЬ), МЕСЯЦ)*2)*((ЕСТЬNULL(НачисленияРезультат.РезультатСреднего, 0))/355) КАК СумОбесп
|ИЗ
| ОсновнаяВыборка КАК ОсновнаяВыборка
| ЛЕВОЕ СОЕДИНЕНИЕ НачисленияРезультат КАК НачисленияРезультат
| ПО ОсновнаяВыборка.Сотрудник = НачисленияРезультат.СотрудникиНач
| ЛЕВОЕ СОЕДИНЕНИЕ НачислениеОтпуска КАК НачислениеОтпуска
| ПО НачисленияРезультат.СотрудникиНач = НачислениеОтпуска.СотрудникОтп
|
|УПОРЯДОЧИТЬ ПО
| Сотрудник
|АВТОУПОРЯДОЧИВАНИЕ
|";
Тут выдает что "Операции сравнения на больше-меньше допустимы только для значений совпадающих примитивных примитивных типов (Булево, Число, Строка, Дата)"
И вторая попытка:
Запрос.Текст = "ВЫБРАТЬ
| ПриемНаРаботуВОрганизацию.Сотрудник КАК Сотрудник,
| СУММА(НачислениеОтпускаРаботникамОрганизаций.ОплаченоДнейЧасов) КАК РезервОтпуска,
| СотрудникиОрганизаций.Резерв2010 КАК Резерв2010,
| СведенияОбИнвалидностиФизлиц.Инвалидность КАК Инвалидность
|ПОМЕСТИТЬ ОсновнаяВыборка
|ИЗ
| Документ.ПриемНаРаботуВОрганизацию.РаботникиОрганизации КАК ПриемНаРаботуВОрганизацию
//| ЛЕВОЕ СОЕДИНЕНИЕ Документ.НачислениеОтпускаРаботникамОрганизаций.Начисления КАК НачислениеОтпускаРаботникамОрганизаций
//| ПО ПриемНаРаботуВОрганизацию.Сотрудник = НачислениеОтпускаРаботникамОрганизаций.Сотрудник
//| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
//| ПО НачислениеОтпускаРаботникамОрганизаций.Сотрудник = СотрудникиОрганизаций.Ссылка
//| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОбИнвалидностиФизлиц КАК СведенияОбИнвалидностиФизлиц
//| ПО СотрудникиОрганизаций.Физлицо = СведенияОбИнвалидностиФизлиц.Физлицо
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.НачислениеОтпускаРаботникамОрганизаций.Начисления КАК НачислениеОтпускаРаботникамОрганизаций
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОбИнвалидностиФизлиц КАК СведенияОбИнвалидностиФизлиц
| ПО СотрудникиОрганизаций.Физлицо = СведенияОбИнвалидностиФизлиц.Физлицо
| ПО НачислениеОтпускаРаботникамОрганизаций.Сотрудник = СотрудникиОрганизаций.Ссылка
| ПО ПриемНаРаботуВОрганизацию.Сотрудник = НачислениеОтпускаРаботникамОрганизаций.Сотрудник
|ГДЕ
| НачислениеОтпускаРаботникамОрганизаций.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон
|
|СГРУППИРОВАТЬ ПО
| ПриемНаРаботуВОрганизацию.Сотрудник,
| СотрудникиОрганизаций.Резерв2010,
| СведенияОбИнвалидностиФизлиц.Инвалидность
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Начисления.Сотрудник КАК СотрудникиНач,
| СУММА(Начисления.Результат) КАК РезультатСреднего
|ПОМЕСТИТЬ НачисленияРезультат
|ИЗ
| РегистрРасчета.Начисления КАК Начисления
|ГДЕ
| Начисления.ПериодРегистрации МЕЖДУ ДОБАВИТЬКДАТЕ(&ДатаКон, МЕСЯЦ, -12) И &ДатаКон
|
|СГРУППИРОВАТЬ ПО
| Начисления.Сотрудник
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ПриемНаРаботуВОрганизацию.Сотрудник КАК СотрудникПодр,
| ПриемНаРаботуВОрганизацию.ПодразделениеУпр КАК ПодразделениеУпр
|ПОМЕСТИТЬ ПодразделениеОрганизации
|ИЗ
| Документ.ПриемНаРаботуВОрганизацию.РаботникиОрганизации КАК ПриемНаРаботуВОрганизацию
|
|СГРУППИРОВАТЬ ПО
| ПриемНаРаботуВОрганизацию.Сотрудник,
| ПриемНаРаботуВОрганизацию.ПодразделениеУпр
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ОсновнаяВыборка.Сотрудник КАК Сотрудник,
| ОсновнаяВыборка.Инвалидность КАК Инвалидность,
| ((ОсновнаяВыборка.Резерв2010 - ОсновнаяВыборка.РезервОтпуска) + РАЗНОСТЬДАТ(&ДатаНач, КОНЕЦПЕРИОДА( &ДатаКон, ДЕНЬ), МЕСЯЦ)*2 + 2) КАК Резерв,
| ЕСТЬNULL(НачисленияРезультат.РезультатСреднего, 0) КАК РезультатСреднего,
| ПодразделениеОрганизации.ПодразделениеУпр КАК ПодразделениеУпр,
| ПодразделениеОрганизации.ПодразделениеУпр.Наименование КАК Подр,
| (ЕСТЬNULL(НачисленияРезультат.РезультатСреднего, 0))/355 КАК СредняяЗП,
| ((ОсновнаяВыборка.Резерв2010 - ОсновнаяВыборка.РезервОтпуска) + РАЗНОСТЬДАТ(&ДатаНач, КОНЕЦПЕРИОДА( &ДатаКон, ДЕНЬ), МЕСЯЦ)*2 + 2)*((ЕСТЬNULL(НачисленияРезультат.РезультатСреднего, 0))/355) КАК СумОбесп
|ИЗ
| ОсновнаяВыборка КАК ОсновнаяВыборка
| ЛЕВОЕ СОЕДИНЕНИЕ НачисленияРезультат КАК НачисленияРезультат
| ПО ОсновнаяВыборка.Сотрудник = НачисленияРезультат.СотрудникиНач
| ЛЕВОЕ СОЕДИНЕНИЕ ПодразделениеОрганизации КАК ПодразделениеОрганизации
| ПО НачисленияРезультат.СотрудникиНач = ПодразделениеОрганизации.СотрудникПодр
|
|УПОРЯДОЧИТЬ ПО
| Сотрудник
|АВТОУПОРЯДОЧИВАНИЕ
|";
Ниже приложу два файла Exel, в первом то что выдает у меня и во-втором, то что надо чтоб выдавало в отчете.
Вот ссылки
1. необходимо зарегистрироваться для просмотра ссылки
2.необходимо зарегистрироваться для просмотра ссылки
Заранее благодарен за помощь.