Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблемы с запросом в отчете
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
mabuta_account
Добрый день!!!

Проблема заключаеться вот в чем

Общая информация: Есть УТП для Украины (последний релиз) и есть отчет по отпускам, который выдает список сотрудников, резерв отпусков и арифметические функции с резервом.

Есть запрос по которому выполняется выборка сотрудников компании по документу "НачислениеОтпусков", но тогда новые сотрудники которые еще не использовали свой отпуск вообще не отображаются в отчете, то есть надо выбирать их из "прийома на работу", но ничего не выходит (пытался уже разными способами).
Еще одной проблемой есть то что когда сотрудника переводят (а в базе это увольняют и принимают обратно только в другой отдел, то тот отпуск который был возмещен по увольнению сотрудника не учитывается в самом отчете, то есть не отнимается от "резерва отпуска").

Вот исходный запрос:

 Запрос.Текст = "ВЫБРАТЬ
|    НачислениеОтпускаРаботникамОрганизаций.Сотрудник КАК Сотрудник,
|    СУММА(НачислениеОтпускаРаботникамОрганизаций.ОплаченоДнейЧасов) КАК РезервОтпуска,
|    СотрудникиОрганизаций.Резерв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.необходимо зарегистрироваться для просмотра ссылки


Заранее благодарен за помощь.
Ardi
Я тоже хочу зарплату 20830,03 белыми в месяц.

www.apf_kiev_ua
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.