Имя: Пароль:
1C
1С v8
Док. документ увольнение из организации
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
и че?
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой