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