|
Док. документ увольнение из организации | ☑ | ||
---|---|---|---|---|
0
djekting
13.12.12
✎
14:12
|
УПП 8,2 / 31,1
документ увольнение из организации при выборе даты увольнения выдает переполнение, причем не по всем а только у двух по первому: 5,12,12 уволен - ошибка если выбрать 26,11,12 нету ошибки 27,11,12 уже есть по второму: 11,12,12 уволен - ошибка если выбрать 9,12,12 нету ошибки 10,12,12 уже есть причем, если уволить любого человека принятого в день приема любого из этих двух сотрудников, то все нормально. {ОбщийМодуль.ОстаткиОтпусков.Модуль(1278)}: Ошибка при вызове метода контекста (ВыполнитьПакет) МассивРезультатов = Запрос.ВыполнитьПакет(); по причине: Ошибка выполнения запроса по причине: Ошибка при выполнении операции над данными: Microsoft OLE DB Provider for SQL Server: Adding a value to a 'datetime' column caused overflow. HRESULT=80040E07, SQLSrvr: SQLSTATE=22007, state=1, Severity=10, native=517, line=1 в чем трабла может быть7 |
|||
1
DrShad
13.12.12
✎
14:17
|
а сам запрос посмотреть что там и с чем соединяется?
|
|||
2
djekting
13.12.12
✎
14:26
|
"ВЫБРАТЬ
| ВЫРАЗИТЬ(ТаблицаДанных.Сотрудник КАК Справочник.СотрудникиОрганизаций) КАК Сотрудник, | КОНЕЦПЕРИОДА(ТаблицаДанных.ДатаОстатков, ДЕНЬ) КАК ДатаОстатков, | ТаблицаДанных.ЭтоРасчетПриУвольнении КАК ЭтоРасчетПриУвольнении, | ТаблицаДанных.ЭтоЗапланированныйОтпуск КАК ЭтоЗапланированныйОтпуск, | ТаблицаДанных.ДатаДокумента КАК ДатаДокумента, | ТаблицаДанных.ДатаНачала КАК ДатаНачалаПериода, | ТаблицаДанных.ДатаОкончания КАК ДатаОкончанияПериода, | ТаблицаДанных.ТекущийРегистратор КАК ТекущийРегистратор, | ВЫРАЗИТЬ(ТаблицаДанных.ОтборПоВидуЕжегодногоОтпуска КАК Справочник.ВидыЕжегодныхОтпусков) КАК ОтборПоВидуЕжегодногоОтпуска |ПОМЕСТИТЬ ВТТаблицаДанных |ИЗ | &ТаблицаДанных КАК ТаблицаДанных | |ИНДЕКСИРОВАТЬ ПО | Сотрудник, | ДатаОстатков, | ЭтоРасчетПриУвольнении |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ТаблицаДанных.Сотрудник КАК Сотрудник, | ТаблицаДанных.ДатаНачалаПериода КАК ДатаНачалаПериода, | ТаблицаДанных.ДатаОкончанияПериода КАК ДатаОкончанияПериода, | СУММА(ЕСТЬNULL(ПроизводственныйКалендарь.КалендарныеДни, 0)) КАК КоличествоКалендарныхДнейВПериоде, | СУММА(ЕСТЬNULL(ПроизводственныйКалендарь.Шестидневка, 0)) КАК КоличествоРабочихДнейВПериоде |ПОМЕСТИТЬ ВТКоличествоДнейВПериодах |ИЗ | (ВЫБРАТЬ РАЗЛИЧНЫЕ | ТаблицаДанных.Сотрудник КАК Сотрудник, | ТаблицаДанных.ДатаНачалаПериода КАК ДатаНачалаПериода, | ТаблицаДанных.ДатаОкончанияПериода КАК ДатаОкончанияПериода | ИЗ | ВТТаблицаДанных КАК ТаблицаДанных | ГДЕ | ТаблицаДанных.ДатаНачалаПериода <> ДАТАВРЕМЯ(1, 1, 1) | И ТаблицаДанных.ДатаОкончанияПериода <> ДАТАВРЕМЯ(1, 1, 1)) КАК ТаблицаДанных | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК ПроизводственныйКалендарь | ПО (ПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ ТаблицаДанных.ДатаНачалаПериода И ТаблицаДанных.ДатаОкончанияПериода) | |СГРУППИРОВАТЬ ПО | ТаблицаДанных.Сотрудник, | ТаблицаДанных.ДатаНачалаПериода, | ТаблицаДанных.ДатаОкончанияПериода | |ИНДЕКСИРОВАТЬ ПО | Сотрудник, | ДатаНачалаПериода, | ДатаОкончанияПериода |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ | ТаблицаДанных.Сотрудник КАК Сотрудник, | ТаблицаДанных.Сотрудник.Физлицо КАК ФизическоеЛицо, | ТаблицаДанных.Сотрудник.ДатаПриемаНаРаботу КАК ДатаПриема, | ТаблицаДанных.Сотрудник.ДатаУвольнения КАК ДатаУвольнения, | ТаблицаДанных.Сотрудник.ТекущееОбособленноеПодразделение КАК ТекущаяОрганизация, | ТаблицаДанных.Сотрудник.ТекущееПодразделениеОрганизации КАК ТекущееПодразделение, | ТаблицаДанных.Сотрудник.ТекущаяДолжностьОрганизации КАК ТекущаяДолжность, | ВЫБОР | КОГДА НЕ УвольнениеИзОрганизацийРаботникиОрганизации.ПорядокРасчетаОтпуска ЕСТЬ NULL | ТОГДА ВЫБОР | КОГДА УвольнениеИзОрганизацийРаботникиОрганизации.ПорядокРасчетаОтпуска = ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетаОтпуска.ПоШестидневке) | ТОГДА ЗНАЧЕНИЕ(Перечисление.СпособыРасчетаОстаткаОтпуска.ПоРабочимДням) | ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.СпособыРасчетаОстаткаОтпуска.ПоКалендарнымДням) | КОНЕЦ | КОГДА ВЫБОР | КОГДА ТаблицаДанных.Сотрудник.ДатаНачала = ДАТАВРЕМЯ(1, 1, 1) | ИЛИ ТаблицаДанных.Сотрудник.ДатаОкончания = ДАТАВРЕМЯ(1, 1, 1) | ТОГДА ЛОЖЬ | ИНАЧЕ ИСТИНА | КОНЕЦ | И ДОБАВИТЬКДАТЕ(ТаблицаДанных.Сотрудник.ДатаНачала, МЕСЯЦ, 2) >= ТаблицаДанных.Сотрудник.ДатаОкончания | ТОГДА ЗНАЧЕНИЕ(Перечисление.СпособыРасчетаОстаткаОтпуска.ПоРабочимДням) | ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.СпособыРасчетаОстаткаОтпуска.ПоКалендарнымДням) | КОНЕЦ КАК СпособРасчетаОтпусковПоТрудовомуДоговору |ПОМЕСТИТЬ ВТТекущиеКадровыеДанныеСотрудников |ИЗ | ВТТаблицаДанных КАК ТаблицаДанных | ЛЕВОЕ СОЕДИНЕНИЕ Документ.УвольнениеИзОрганизаций.РаботникиОрганизации КАК УвольнениеИзОрганизацийРаботникиОрганизации | ПО ТаблицаДанных.Сотрудник = УвольнениеИзОрганизацийРаботникиОрганизации.Сотрудник | И ТаблицаДанных.Сотрудник.ДатаУвольнения = УвольнениеИзОрганизацийРаботникиОрганизации.ДатаУвольнения | И (УвольнениеИзОрганизацийРаботникиОрганизации.Ссылка.Проведен) | |ИНДЕКСИРОВАТЬ ПО | Сотрудник |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ОстаткиОтпусковОрганизацийОстатки.Ссылка.Сотрудник КАК Сотрудник, | ОстаткиОтпусковОрганизацийОстатки.ВидЕжегодногоОтпуска КАК ВидЕжегодногоОтпуска, | ОстаткиОтпусковОрганизацийОстатки.ДатаНачалаРабочегоГода КАК ДатаНачалаРабочегоГода, | ОстаткиОтпусковОрганизацийОстатки.ДатаОкончанияРабочегоГода, | ОстаткиОтпусковОрганизацийОстатки.Количество |ПОМЕСТИТЬ ВТНачальныеОстаткиОтпусков |ИЗ | Справочник.ОстаткиОтпусковОрганизаций.Остатки КАК ОстаткиОтпусковОрганизацийОстатки | ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | ТаблицаДанных.Сотрудник КАК Сотрудник, | МАКСИМУМ(ОстаткиОтпусковОрганизаций.ДатаАктуальности) КАК ДатаАктуальности | ИЗ | (ВЫБРАТЬ РАЗЛИЧНЫЕ | ТаблицаДанных.Сотрудник КАК Сотрудник | ИЗ | ВТТаблицаДанных КАК ТаблицаДанных) КАК ТаблицаДанных | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ОстаткиОтпусковОрганизаций КАК ОстаткиОтпусковОрганизаций | ПО ТаблицаДанных.Сотрудник = ОстаткиОтпусковОрганизаций.Сотрудник | | СГРУППИРОВАТЬ ПО | ТаблицаДанных.Сотрудник) КАК СрезПоследнихОстатковОтпусков | ПО ОстаткиОтпусковОрганизацийОстатки.Ссылка.Сотрудник = СрезПоследнихОстатковОтпусков.Сотрудник | И ОстаткиОтпусковОрганизацийОстатки.Ссылка.ДатаАктуальности = СрезПоследнихОстатковОтпусков.ДатаАктуальности | |ИНДЕКСИРОВАТЬ ПО | Сотрудник, | ВидЕжегодногоОтпуска |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | СостояниеРаботниковОрганизаций.Сотрудник КАК Сотрудник, | СостояниеРаботниковОрганизаций.ДатаНачалаОтпуска КАК ДатаНачалаОтпуска, | ДОБАВИТЬКДАТЕ(СостояниеРаботниковОрганизаций.ДатаОкончанияОтпуска, ДЕНЬ, -1) КАК ДатаОкончанияОтпуска, | ВЫБОР | КОГДА СостояниеРаботниковОрганизаций.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.ОтпускБезСохраненияЗарплаты) | ТОГДА ИСТИНА | ИНАЧЕ ЛОЖЬ | КОНЕЦ КАК ЯвляетсяОтпускомБезСохраненияЗарплаты, | СостояниеРаботниковОрганизаций.Состояние КАК ПричинаОтсутствия, | СостояниеРаботниковОрганизаций.Регистратор КАК Регистратор |ПОМЕСТИТЬ ВТИсключаемыеИзОстатковОтпусковПериоды |ИЗ | (ВЫБРАТЬ РАЗЛИЧНЫЕ | ЗаписиОтклонений.Сотрудник КАК Сотрудник, | ЗаписиОтклонений.Период КАК ДатаНачалаОтпуска, | ВЫБОР | КОГДА ЗаписиОтклонений.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1) | И (ЗаписиОтклоненийЗавершения.Период ЕСТЬ NULL | ИЛИ ЗаписиОтклоненийЗавершения.Период > ЗаписиОтклонений.ПериодЗавершения) | ТОГДА ЗаписиОтклонений.ПериодЗавершения | КОГДА ЕСТЬNULL(ЗаписиОтклоненийЗавершения.Период, ДАТАВРЕМЯ(1, 1, 1)) <> ДАТАВРЕМЯ(1, 1, 1) | ТОГДА ЗаписиОтклоненийЗавершения.Период | ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1) | КОНЕЦ КАК ДатаОкончанияОтпуска, | ЗаписиОтклонений.Состояние КАК Состояние, | ЗаписиОтклонений.Регистратор КАК Регистратор | ИЗ | (ВЫБРАТЬ РАЗЛИЧНЫЕ | ТаблицаДанных.Сотрудник КАК Сотрудник, | СостояниеРаботниковОрганизаций.Период КАК Период, | СостояниеРаботниковОрганизаций.Состояние КАК Состояние, | СостояниеРаботниковОрганизаций.ПериодЗавершения КАК ПериодЗавершения, | СостояниеРаботниковОрганизаций.СостояниеЗавершения КАК СостояниеЗавершения, | СостояниеРаботниковОрганизаций.Регистратор КАК Регистратор | ИЗ | ВТТаблицаДанных КАК ТаблицаДанных | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СостояниеРаботниковОрганизаций КАК СостояниеРаботниковОрганизаций | ПО ТаблицаДанных.Сотрудник = СостояниеРаботниковОрганизаций.Сотрудник | И (ВЫБОР | КОГДА ТаблицаДанных.ЭтоЗапланированныйОтпуск | ТОГДА ТаблицаДанных.ДатаДокумента | ИНАЧЕ ТаблицаДанных.ДатаОстатков | КОНЕЦ >= СостояниеРаботниковОрганизаций.Период) | И (СостояниеРаботниковОрганизаций.Состояние В (ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.ОтпускБезСохраненияЗарплаты), ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.ОтпускПоУходуЗаРебенком), ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.Прогулы)))) КАК ЗаписиОтклонений | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | ЗаписиОтклонений.Сотрудник КАК Сотрудник, | ЗаписиОтклонений.ДатаОстатков КАК ДатаОстатков, | ЗаписиОтклонений.ПериодНачала КАК ПериодНачала, | СостояниеРаботниковОрганизацийЗавершения.Период КАК Период, | СостояниеРаботниковОрганизацийЗавершения.Состояние КАК Состояние | ИЗ | (ВЫБРАТЬ | ТаблицаДанных.Сотрудник КАК Сотрудник, | ТаблицаДанных.ДатаОстатков КАК ДатаОстатков, | СостояниеРаботниковОрганизаций.Период КАК ПериодНачала, | МИНИМУМ(СостояниеРаботниковОрганизацийЗавершения.Период) КАК ДатаСреза | ИЗ | ВТТаблицаДанных КАК ТаблицаДанных | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СостояниеРаботниковОрганизаций КАК СостояниеРаботниковОрганизаций | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СостояниеРаботниковОрганизаций КАК СостояниеРаботниковОрганизацийЗавершения | ПО СостояниеРаботниковОрганизаций.Сотрудник = СостояниеРаботниковОрганизацийЗавершения.Сотрудник | И СостояниеРаботниковОрганизаций.Период < СостояниеРаботниковОрганизацийЗавершения.Период | ПО ТаблицаДанных.Сотрудник = СостояниеРаботниковОрганизаций.Сотрудник | И (СостояниеРаботниковОрганизаций.Состояние В (ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.ОтпускБезСохраненияЗарплаты), ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.ОтпускПоУходуЗаРебенком), ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.Прогулы))) | | СГРУППИРОВАТЬ ПО | ТаблицаДанных.Сотрудник, | ТаблицаДанных.ДатаОстатков, | СостояниеРаботниковОрганизаций.Период) КАК ЗаписиОтклонений | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СостояниеРаботниковОрганизаций КАК СостояниеРаботниковОрганизацийЗавершения | ПО ЗаписиОтклонений.Сотрудник = СостояниеРаботниковОрганизацийЗавершения.Сотрудник | И ЗаписиОтклонений.ДатаСреза = СостояниеРаботниковОрганизацийЗавершения.Период) КАК ЗаписиОтклоненийЗавершения | ПО ЗаписиОтклонений.Сотрудник = ЗаписиОтклоненийЗавершения.Сотрудник | И ЗаписиОтклонений.Период < ЗаписиОтклоненийЗавершения.Период | И ЗаписиОтклонений.Период = ЗаписиОтклоненийЗавершения.ПериодНачала) КАК СостояниеРаботниковОрганизаций | |ИНДЕКСИРОВАТЬ ПО | Сотрудник, | ДатаНачалаОтпуска |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ТаблицаДанных.Сотрудник, | ТаблицаДанных.ДатаОстатков, | ВидыЕжегодныхОтпусков.Ссылка КАК ВидЕжегодногоОтпуска, | ВидыЕжегодныхОтпусков.КоличествоДнейОтпускаВГод КАК КоличествоДнейОтпускаВГод, | ВЫБОР | КОГДА ОсновныеВидыОтпусков.ВидЕжегодногоОтпуска ЕСТЬ NULL | ТОГДА ЛОЖЬ | ИНАЧЕ ИСТИНА | КОНЕЦ КАК ОсновнойОтпуск |ПОМЕСТИТЬ ВТВидыЕжегодныхОтпусков |ИЗ | (ВЫБРАТЬ | ТаблицаДанных.Сотрудник КАК Сотрудник, | ТаблицаДанных.ДатаОстатков КАК ДатаОстатков, | ТаблицаДанных.ОтборПоВидуЕжегодногоОтпуска КАК ОтборПоВидуЕжегодногоОтпуска, | ОсновныеНачисленияОрганизаций.ВидЕжегодногоОтпуска КАК ВидЕжегодногоОтпускаДляИсключения | ИЗ | ВТТаблицаДанных КАК ТаблицаДанных | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТТекущиеКадровыеДанныеСотрудников КАК ТекущиеКадровыеДанныеСотрудников | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПланВидовРасчета.ОсновныеНачисленияОрганизаций КАК ОсновныеНачисленияОрганизаций | ПО (ВЫБОР | КОГДА ТекущиеКадровыеДанныеСотрудников.СпособРасчетаОтпусковПоТрудовомуДоговору = ЗНАЧЕНИЕ(Перечисление.СпособыРасчетаОстаткаОтпуска.ПоРабочимДням) | ТОГДА ОсновныеНачисленияОрганизаций.Ссылка = ЗНАЧЕНИЕ(ПланВидовРасчета.ОсновныеНачисленияОрганизаций.ОплатаПоСреднемуОтпКалендарныеДни) | ИНАЧЕ ОсновныеНачисленияОрганизаций.Ссылка = ЗНАЧЕНИЕ(ПланВидовРасчета.ОсновныеНачисленияОрганизаций.ОплатаПоСреднемуОтпШестидневка) | КОНЕЦ) | ПО ТаблицаДанных.Сотрудник = ТекущиеКадровыеДанныеСотрудников.Сотрудник) КАК ТаблицаДанных | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ВидыЕжегодныхОтпусков КАК ВидыЕжегодныхОтпусков | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ | ОсновныеНачисленияОрганизаций.ВидЕжегодногоОтпуска КАК ВидЕжегодногоОтпуска | ИЗ | ПланВидовРасчета.ОсновныеНачисленияОрганизаций КАК ОсновныеНачисленияОрганизаций | ГДЕ | НЕ ОсновныеНачисленияОрганизаций.ВидЕжегодногоОтпуска = ЗНАЧЕНИЕ(Справочник.ВидыЕжегодныхОтпусков.ПустаяСсылка) | И ОсновныеНачисленияОрганизаций.Ссылка В (ЗНАЧЕНИЕ(ПланВидовРасчета.ОсновныеНачисленияОрганизаций.ОплатаПоСреднемуОтпКалендарныеДни), ЗНАЧЕНИЕ(ПланВидовРасчета.ОсновныеНачисленияОрганизаций.ОплатаПоСреднемуОтпШестидневка))) КАК ОсновныеВидыОтпусков | ПО ВидыЕжегодныхОтпусков.Ссылка = ОсновныеВидыОтпусков.ВидЕжегодногоОтпуска | ПО (НЕ ВидыЕжегодныхОтпусков.ПометкаУдаления) | И (ВЫБОР | КОГДА ТаблицаДанных.ОтборПоВидуЕжегодногоОтпуска = ЗНАЧЕНИЕ(Справочник.ВидыЕжегодныхОтпусков.ПустаяСсылка) | ТОГДА ТаблицаДанных.ВидЕжегодногоОтпускаДляИсключения <> ВидыЕжегодныхОтпусков.Ссылка | ИНАЧЕ ТаблицаДанных.ОтборПоВидуЕжегодногоОтпуска = ВидыЕжегодныхОтпусков.Ссылка | КОНЕЦ) | |ИНДЕКСИРОВАТЬ ПО | ВидЕжегодногоОтпуска, | ОсновнойОтпуск |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | КадроваяИсторияСотрудников.Сотрудник КАК Сотрудник, | КадроваяИсторияСотрудников.Период, | КадроваяИсторияСотрудников.Должность, | КадроваяИсторияСотрудников.ПериодЗавершения, | КадроваяИсторияСотрудников.ДолжностьЗавершения |ПОМЕСТИТЬ ВТКадроваяИсторияСотрудников |ИЗ | РегистрСведений.РаботникиОрганизаций КАК КадроваяИсторияСотрудников |ГДЕ | КадроваяИсторияСотрудников.Сотрудник В | (ВЫБРАТЬ РАЗЛИЧНЫЕ | ТаблицаДанных.Сотрудник | ИЗ | ВТТаблицаДанных КАК ТаблицаДанных) | И НЕ КадроваяИсторияСотрудников.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение) | |ИНДЕКСИРОВАТЬ ПО | Сотрудник |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ТаблицаДанных.Сотрудник КАК Сотрудник, | ТаблицаДанных.ДатаОстатков КАК ДатаОстатков, | ТаблицаДанных.ЭтоРасчетПриУвольнении, | ТаблицаДанных.ДатаНачалаПериода, | ТаблицаДанных.ДатаОкончанияПериода, | ВЫБОР | КОГДА ВЫБОР | КОГДА НЕ ТаблицаДанных.ОтборПоВидуЕжегодногоОтпуска = ЗНАЧЕНИЕ(Справочник.ВидыЕжегодныхОтпусков.ПустаяСсылка) | ТОГДА ТаблицаДанных.ОтборПоВидуЕжегодногоОтпуска.СпособРасчетаОстаткаОтпуска | ИНАЧЕ ТекущиеКадровыеДанныеСотрудников.СпособРасчетаОтпусковПоТрудовомуДоговору | КОНЕЦ = ЗНАЧЕНИЕ(Перечисление.СпособыРасчетаОстаткаОтпуска.ПоРабочимДням) | ТОГДА КоличествоДнейВПериодах.КоличествоРабочихДнейВПериоде | ИНАЧЕ КоличествоДнейВПериодах.КоличествоКалендарныхДнейВПериоде | КОНЕЦ КАК КоличествоДнейВПериоде, | ТекущиеКадровыеДанныеСотрудников.ДатаПриема, | ТекущиеКадровыеДанныеСотрудников.ДатаУвольнения, | ВЫБОР | КОГДА ТекущиеКадровыеДанныеСотрудников.ДатаУвольнения = ДАТАВРЕМЯ(1, 1, 1) | ТОГДА ЛОЖЬ | ИНАЧЕ ИСТИНА | КОНЕЦ КАК СотрудникУволен, | ТекущиеКадровыеДанныеСотрудников.ТекущаяОрганизация КАК ТекущаяОрганизация, | ТекущиеКадровыеДанныеСотрудников.ТекущееПодразделение КАК ТекущееПодразделение, | ТекущиеКадровыеДанныеСотрудников.ТекущаяДолжность КАК ТекущаяДолжность, | ТекущиеКадровыеДанныеСотрудников.ФизическоеЛицо.Пол КАК Пол, | ТаблицаДанных.ОтборПоВидуЕжегодногоОтпуска |ИЗ | ВТТаблицаДанных КАК ТаблицаДанных | ЛЕВОЕ СОЕДИНЕНИЕ ВТТекущиеКадровыеДанныеСотрудников КАК ТекущиеКадровыеДанныеСотрудников | ПО ТаблицаДанных.Сотрудник = ТекущиеКадровыеДанныеСотрудников.Сотрудник | ЛЕВОЕ СОЕДИНЕНИЕ ВТКоличествоДнейВПериодах КАК КоличествоДнейВПериодах | ПО ТаблицаДанных.Сотрудник = КоличествоДнейВПериодах.Сотрудник | И ТаблицаДанных.ДатаНачалаПериода = КоличествоДнейВПериодах.ДатаНачалаПериода | И ТаблицаДанных.ДатаОкончанияПериода = КоличествоДнейВПериодах.ДатаОкончанияПериода | |УПОРЯДОЧИТЬ ПО | Сотрудник, | ДатаОстатков |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВидыЕжегодныхОтпусков.Сотрудник, | ВидыЕжегодныхОтпусков.ДатаОстатков, | ВидыЕжегодныхОтпусков.ВидЕжегодногоОтпуска, | ВидыЕжегодныхОтпусков.КоличествоДнейОтпускаВГод |ИЗ | ВТВидыЕжегодныхОтпусков КАК ВидыЕжегодныхОтпусков | |УПОРЯДОЧИТЬ ПО | ВидыЕжегодныхОтпусков.ОсновнойОтпуск УБЫВ, | ВидыЕжегодныхОтпусков.ВидЕжегодногоОтпуска.Наименование |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ТаблицаДанных.Сотрудник КАК Сотрудник, | ТаблицаДанных.ДатаОстатков, | НачальныеОстаткиОтпусков.ВидЕжегодногоОтпуска КАК ВидЕжегодногоОтпуска, | НачальныеОстаткиОтпусков.Количество, | НачальныеОстаткиОтпусков.ДатаНачалаРабочегоГода КАК ДатаНачалаРабочегоГода, | НачальныеОстаткиОтпусков.ДатаОкончанияРабочегоГода |ИЗ | ВТТаблицаДанных КАК ТаблицаДанных | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТНачальныеОстаткиОтпусков КАК НачальныеОстаткиОтпусков | ПО (ТаблицаДанных.Сотрудник = НачальныеОстаткиОтпусков.Сотрудник | И ТаблицаДанных.ОтборПоВидуЕжегодногоОтпуска = ЗНАЧЕНИЕ(Справочник.ВидыЕжегодныхОтпусков.ПустаяСсылка) | ИЛИ ТаблицаДанных.ОтборПоВидуЕжегодногоОтпуска = НачальныеОстаткиОтпусков.ВидЕжегодногоОтпуска) | |УПОРЯДОЧИТЬ ПО | Сотрудник, | ВидЕжегодногоОтпуска, | ДатаНачалаРабочегоГода |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ТаблицаДанных.Сотрудник КАК Сотрудник, | ТаблицаДанных.ДатаОстатков КАК ДатаОстатков, | РАЗНОСТЬДАТ(ИсключаемыеИзОстатковОтпусковПериоды.ДатаНачалаОтпуска, ДОБАВИТЬКДАТЕ(ИсключаемыеИзОстатковОтпусковПериоды.ДатаОкончанияОтпуска, ДЕНЬ, 1), ДЕНЬ) КАК КоличествоДнейОтпуска, | РАЗНОСТЬДАТ(ИсключаемыеИзОстатковОтпусковПериоды.ДатаНачалаОтпуска, ДОБАВИТЬКДАТЕ(ИсключаемыеИзОстатковОтпусковПериоды.ДатаОкончанияОтпуска, ДЕНЬ, 1), ДЕНЬ) КАК КоличествоДнейПродления, | ИсключаемыеИзОстатковОтпусковПериоды.ДатаНачалаОтпуска КАК ДатаНачалаОтпуска, | ИсключаемыеИзОстатковОтпусковПериоды.ДатаОкончанияОтпуска КАК ДатаОкончанияОтпуска, | ИсключаемыеИзОстатковОтпусковПериоды.ПричинаОтсутствия, | ИсключаемыеИзОстатковОтпусковПериоды.ЯвляетсяОтпускомБезСохраненияЗарплаты, | ИсключаемыеИзОстатковОтпусковПериоды.Регистратор КАК Документ, | ПРЕДСТАВЛЕНИЕССЫЛКИ(ИсключаемыеИзОстатковОтпусковПериоды.Регистратор) КАК ПредставлениеДокумента |ИЗ | ВТТаблицаДанных КАК ТаблицаДанных | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТИсключаемыеИзОстатковОтпусковПериоды КАК ИсключаемыеИзОстатковОтпусковПериоды | ПО ТаблицаДанных.Сотрудник = ИсключаемыеИзОстатковОтпусковПериоды.Сотрудник | И (ВЫБОР | КОГДА ТаблицаДанных.ЭтоЗапланированныйОтпуск | ТОГДА ТаблицаДанных.ДатаДокумента | ИНАЧЕ ТаблицаДанных.ДатаОстатков | КОНЕЦ >= ИсключаемыеИзОстатковОтпусковПериоды.ДатаНачалаОтпуска) | |УПОРЯДОЧИТЬ ПО | Сотрудник, | ДатаОстатков, | ДатаНачалаОтпуска |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗРЕШЕННЫЕ | СотрудникиСВидамиОтпусков.Сотрудник КАК Сотрудник, | СотрудникиСВидамиОтпусков.ДатаОстатков, | СотрудникиСВидамиОтпусков.ДатаДействия КАК ДатаДействия, | СотрудникиСВидамиОтпусков.ВидЕжегодногоОтпуска КАК ВидЕжегодногоОтпуска, | ЕСТЬNULL(СотрудникиОрганизацийЕжегодныеОтпуска.КоличествоДнейОтпускаВГод, ЕСТЬNULL(ДолжностиОрганизацийЕжегодныеОтпуска.КоличествоДнейОтпускаВГод, ВЫБОР | КОГДА СотрудникиСВидамиОтпусков.ВидЕжегодногоОтпуска.ПредоставлятьОтпускВсемСотрудникам | ТОГДА СотрудникиСВидамиОтпусков.КоличествоДнейОтпускаВГод | ИНАЧЕ 0 | КОНЕЦ)) КАК КоличествоДнейОтпускаВГод, | ВЫБОР | КОГДА ЕСТЬNULL(СотрудникиОрганизацийЕжегодныеОтпуска.КоличествоДнейОтпускаВГод, ЕСТЬNULL(ДолжностиОрганизацийЕжегодныеОтпуска.КоличествоДнейОтпускаВГод, ВЫБОР | КОГДА СотрудникиСВидамиОтпусков.ВидЕжегодногоОтпуска.ПредоставлятьОтпускВсемСотрудникам | ТОГДА СотрудникиСВидамиОтпусков.КоличествоДнейОтпускаВГод | ИНАЧЕ 0 | КОНЕЦ)) <> 0 | ТОГДА ИСТИНА | ИНАЧЕ ЛОЖЬ | КОНЕЦ КАК Предоставляется, | ВЫБОР | КОГДА НЕ СотрудникиОрганизацийЕжегодныеОтпуска.КоличествоДнейОтпускаВГод ЕСТЬ NULL | ТОГДА ""(персональный)"" | КОГДА НЕ ДолжностиОрганизацийЕжегодныеОтпуска.КоличествоДнейОтпускаВГод ЕСТЬ NULL | ТОГДА ""(по должности)"" | КОГДА СотрудникиСВидамиОтпусков.ВидЕжегодногоОтпуска.ПредоставлятьОтпускВсемСотрудникам | ТОГДА ""(общефирменный)"" | ИНАЧЕ """" | КОНЕЦ КАК ТипЕжегодногоОтпуска |ИЗ | (ВЫБРАТЬ | ТаблицаДанных.Сотрудник КАК Сотрудник, | ТаблицаДанных.ДатаОстатков КАК ДатаОстатков, | ПериодыИзмененияДолжностей.ДатаДействия КАК ДатаДействия, | ПериодыИзмененияДолжностей.Должность КАК Должность, | ВидыЕжегодныхОтпусков.ВидЕжегодногоОтпуска КАК ВидЕжегодногоОтпуска, | ВидыЕжегодныхОтпусков.КоличествоДнейОтпускаВГод КАК КоличествоДнейОтпускаВГод, | ВидыЕжегодныхОтпусков.ОсновнойОтпуск КАК ОсновнойОтпуск | ИЗ | ВТТаблицаДанных КАК ТаблицаДанных | ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | КадроваяИсторияСотрудников.Сотрудник КАК Сотрудник, | КадроваяИсторияСотрудников.Период КАК ДатаДействия, | КадроваяИсторияСотрудников.Должность КАК Должность | ИЗ | ВТКадроваяИсторияСотрудников КАК КадроваяИсторияСотрудников | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ | КадроваяИсторияСотрудников.Сотрудник, | ДОБАВИТЬКДАТЕ(КадроваяИсторияСотрудников.ПериодЗавершения, ДЕНЬ, 1), | КадроваяИсторияСотрудников.ДолжностьЗавершения | ИЗ | ВТКадроваяИсторияСотрудников КАК КадроваяИсторияСотрудников | ГДЕ | КадроваяИсторияСотрудников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)) КАК ПериодыИзмененияДолжностей | ПО ТаблицаДанных.Сотрудник = ПериодыИзмененияДолжностей.Сотрудник | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТВидыЕжегодныхОтпусков КАК ВидыЕжегодныхОтпусков | ПО ТаблицаДанных.Сотрудник = ВидыЕжегодныхОтпусков.Сотрудник | И ТаблицаДанных.ДатаОстатков = ВидыЕжегодныхОтпусков.ДатаОстатков) КАК СотрудникиСВидамиОтпусков | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДолжностиОрганизаций.ЕжегодныеОтпуска КАК ДолжностиОрганизацийЕжегодныеОтпуска | ПО СотрудникиСВидамиОтпусков.Должность = ДолжностиОрганизацийЕжегодныеОтпуска.Ссылка | И СотрудникиСВидамиОтпусков.ВидЕжегодногоОтпуска = ДолжностиОрганизацийЕжегодныеОтпуска.ВидЕжегодногоОтпуска | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СотрудникиОрганизаций.ЕжегодныеОтпуска КАК СотрудникиОрганизацийЕжегодныеОтпуска | ПО СотрудникиСВидамиОтпусков.Сотрудник = СотрудникиОрганизацийЕжегодныеОтпуска.Ссылка | И СотрудникиСВидамиОтпусков.ВидЕжегодногоОтпуска = СотрудникиОрганизацийЕжегодныеОтпуска.ВидЕжегодногоОтпуска | |УПОРЯДОЧИТЬ ПО | Сотрудник, | СотрудникиСВидамиОтпусков.ОсновнойОтпуск УБЫВ, | ВидЕжегодногоОтпуска, | ДатаДействия УБЫВ |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗРЕШЕННЫЕ | ТаблицаДанных.Сотрудник КАК Сотрудник, | ТаблицаДанных.ДатаОстатков КАК ДатаОстатков, | ФактическиеОтпуска.ВидЕжегодногоОтпуска КАК ВидЕжегодногоОтпуска, | ФактическиеОтпуска.Количество КАК КоличествоДнейОтпуска, | ФактическиеОтпуска.Период КАК ДатаНачалаОтпуска, | ФактическиеОтпуска.ДатаОкончания КАК ДатаОкончанияОтпуска, | ФактическиеОтпуска.Компенсация, | ФактическиеОтпуска.Регистратор КАК Документ, | ПРЕДСТАВЛЕНИЕССЫЛКИ(ФактическиеОтпуска.Регистратор) КАК ПредставлениеДокумента, | ФактическиеОтпуска.ДатаРегистрации, | ВЫБОР | КОГДА ФактическиеОтпуска.Компенсация | ТОГДА ФактическиеОтпуска.Период | ИНАЧЕ ФактическиеОтпуска.ДатаОкончания | КОНЕЦ КАК ДатаДляСортировки |ИЗ | ВТТаблицаДанных КАК ТаблицаДанных | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ФактическиеОтпускаОрганизаций КАК ФактическиеОтпуска | ПО ТаблицаДанных.Сотрудник = ФактическиеОтпуска.Сотрудник | И (ВЫБОР | КОГДА ТаблицаДанных.ЭтоЗапланированныйОтпуск | ТОГДА ТаблицаДанных.ДатаДокумента | ИНАЧЕ ТаблицаДанных.ДатаОстатков | КОНЕЦ >= ФактическиеОтпуска.Период) | И (НЕ(ТаблицаДанных.ЭтоРасчетПриУвольнении | И ФактическиеОтпуска.Регистратор ССЫЛКА Документ.РасчетПриУвольненииРаботникаОрганизаций)) | И ТаблицаДанных.ТекущийРегистратор <> ФактическиеОтпуска.Регистратор | И (ВЫБОР | КОГДА ТаблицаДанных.ОтборПоВидуЕжегодногоОтпуска = ЗНАЧЕНИЕ(Справочник.ВидыЕжегодныхОтпусков.ПустаяСсылка) | ТОГДА ИСТИНА | ИНАЧЕ ТаблицаДанных.ОтборПоВидуЕжегодногоОтпуска = ФактическиеОтпуска.ВидЕжегодногоОтпуска | КОНЕЦ), | Константы КАК Константы | |УПОРЯДОЧИТЬ ПО | Сотрудник, &nb |
|||
3
DrShad
13.12.12
✎
14:28
|
и че?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |