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