Сверхурочные часы в ЗУП: запрос

1. tiger12 1 01.03.18 09:41 Сейчас в теме
ЗУП 3.1.
Документ "Увольнение", сверхурочные часы сотрудника с суммированным графиком работы заполняет запрос.

Подскажите, пожалуйста, в каком месте запрос обращается к данным:

"ВЫБРАТЬ
	              |	НормоВремяПоРегистру.Сотрудник КАК Сотрудник,
	              |	НормоВремяПоРегистру.НормаЧасов КАК НормаЧасов
	              |ПОМЕСТИТЬ ВТНормоВремяСотрудниковНаСуммированномУчете
	              |ИЗ
	              |	ВТНормоВремяПоРегистру КАК НормоВремяПоРегистру
	              |
	              |ОБЪЕДИНИТЬ ВСЕ
	              |
	              |ВЫБРАТЬ
	              |	НормоВремяПоУчетуВремени.Сотрудник,
	              |	НормоВремяПоУчетуВремени.НормаЧасов
	              |ИЗ
	              |	ВТНормоВремяПоУчетуВремени КАК НормоВремяПоУчетуВремени
	              |;
	              |
	              |////////////////////////////////////////////////////////////­////////////////////
	              |ВЫБРАТЬ
	              |	ИтоговоеНормоВремя.Сотрудник КАК Сотрудник,
	              |	СУММА(ИтоговоеНормоВремя.НормаЧасов) КАК НормаЧасов
	              |ПОМЕСТИТЬ ВТНормоВремяСводно
	              |ИЗ
	              |	ВТНормоВремяСотрудниковНаСуммированномУчете КАК ИтоговоеНормоВремя
	              |
	              |СГРУППИРОВАТЬ ПО
	              |	ИтоговоеНормоВремя.Сотрудник
	              |;
	              |
	              |////////////////////////////////////////////////////////////­////////////////////
	              |ВЫБРАТЬ
	              |	ВТОтработаноЧасовРегистр.Сотрудник КАК Сотрудник,
	              |	ВТОтработаноЧасовРегистр.ОтработаноЧасов КАК ОтработаноЧасов
	              |ПОМЕСТИТЬ ВТОтработанныеЧасы
	              |ИЗ
	              |	ВТОтработаноЧасовРегистр КАК ВТОтработаноЧасовРегистр
	              |
	              |ОБЪЕДИНИТЬ ВСЕ
	              |
	              |ВЫБРАТЬ
	              |	ВТОтработаноЧасовУчетВремени.Сотрудник,
	              |	ВТОтработаноЧасовУчетВремени.ОтработаноЧасов
	              |ИЗ
	              |	ВТОтработаноЧасовУчетВремени КАК ВТОтработаноЧасовУчетВремени
	              |;
	              |
	              |////////////////////////////////////////////////////////////­////////////////////
	              |ВЫБРАТЬ
	              |	ОтработанныеЧасы.Сотрудник КАК Сотрудник,
	              |	СУММА(ОтработанныеЧасы.ОтработаноЧасов) КАК ОтработаноЧасов
	              |ПОМЕСТИТЬ ВТОтработанныеЧасыСводно
	              |ИЗ
	              |	ВТОтработанныеЧасы КАК ОтработанныеЧасы
	              |
	              |СГРУППИРОВАТЬ ПО
	              |	ОтработанныеЧасы.Сотрудник
	              |;
	              |
	              |////////////////////////////////////////////////////////////­////////////////////
	              |ВЫБРАТЬ
	              |	Сотрудники.Сотрудник КАК Сотрудник,
	              |	ЕСТЬNULL(НормоВремяСотрудников.НормаЧасов, 0) КАК НормаЧасов,
	              |	ЕСТЬNULL(ОтработанныеЧасы.ОтработаноЧасов, 0) КАК ОтработаноЧасов,
	              |	ЕСТЬNULL(ОтработаноВПраздники.ЧасовВПраздники, 0) КАК ОтработаноЧасовВПраздники,
	              |	ЕСТЬNULL(ОтработанныеЧасы.ОтработаноЧасов, 0) - ЕСТЬNULL(НормоВремяСотрудников.НормаЧасов, 0) - ЕСТЬNULL(ОтработаноВПраздники.ЧасовВПраздники, 0) КАК Переработки
	              |ИЗ
	              |	ВТРасчитываемыеСотрудники КАК Сотрудники
	              |		ЛЕВОЕ СОЕДИНЕНИЕ ВТНормоВремяСводно КАК НормоВремяСотрудников
	              |		ПО Сотрудники.Сотрудник = НормоВремяСотрудников.Сотрудник
	              |		ЛЕВОЕ СОЕДИНЕНИЕ ВТОтработанныеЧасыСводно КАК ОтработанныеЧасы
	              |		ПО Сотрудники.Сотрудник = ОтработанныеЧасы.Сотрудник
	              |		ЛЕВОЕ СОЕДИНЕНИЕ ВТПраздничные КАК ОтработаноВПраздники
	              |		ПО Сотрудники.Сотрудник = ОтработаноВПраздники.Сотрудник";
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. catena 110 01.03.18 10:13 Сейчас в теме
Здесь нет обращения к данным. Ищите до этого где-то менеджер временных таблиц, либо изменение текста запроса через какое-нибудь стрзаменить.
3. tiger12 1 01.03.18 11:55 Сейчас в теме
В том и дело, что изменения запроса нет, менеджер таблиц тоже ничего не дает.
Выглядит так, что в типовой конфигурации запрос исполняется, если поместить в отдельную обработку - не выполнится.

Вот весь текст модуля:

Запрос = Новый Запрос;
	Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
	
	Запрос.УстановитьПараметр("НачалоРасчетногоПериода", НачалоРасчетногоПериода);
	Запрос.УстановитьПараметр("КонецРасчетногоПериода", КонецРасчетногоПериода);
	Запрос.УстановитьПараметр("ПоследнийМесяцНачало", ПоследнийМесяцНачало);
	Запрос.УстановитьПараметр("ПоследнийМесяцОкончание", ПоследнийМесяцОкончание);
	
	Запрос.УстановитьПараметр("РабочееВремя", ОбщегоНазначенияКлиентСервер.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.РабочееВремя"));
	Запрос.УстановитьПараметр("ОтработанноеВремя", УчетРабочегоВремениРасширенный.ВидыВремениОтработанноеВремяДляСуммированногоУчета());
	Запрос.УстановитьПараметр("ВидыВремениВЗачетНормы", УчетРабочегоВремениРасширенный.ВидыВремениВЗачетНормыСуммированногоУчета());
	
	// Читаем сотрудников.
	Запрос.УстановитьПараметр("МассивСотрудников", МассивСотрудников);
	Запрос.Текст = 	
	"ВЫБРАТЬ
	|	Сотрудники.Ссылка КАК Сотрудник
	|ПОМЕСТИТЬ ВТРасчитываемыеСотрудники
	|ИЗ
	|	Справочник.Сотрудники КАК Сотрудники
	|ГДЕ
	|	Сотрудники.Ссылка В(&МассивСотрудников)";
	Запрос.Выполнить();
	
	// Расчет по регистру расчета всех месяцев, за исключением последнего.
	ДополнитьЗапросВТПоказателейПоРегиструРасчета(Запрос);
	// Для последнего месяца собираем данные по данным УчетаРабочегоВремени.
	ДополнитьЗапросВТПоказателейПоУчетуВремени(Запрос);
	
	// Объединяем 2 источника.
	Запрос.Текст =
	"ВЫБРАТЬ
	|	НормоВремяПоРегистру.Сотрудник КАК Сотрудник,
	|	НормоВремяПоРегистру.НормаЧасов КАК НормаЧасов
	|ПОМЕСТИТЬ ВТНормоВремяСотрудниковНаСуммированномУчете
	|ИЗ
	|	ВТНормоВремяПоРегистру КАК НормоВремяПоРегистру
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	НормоВремяПоУчетуВремени.Сотрудник,
	|	НормоВремяПоУчетуВремени.НормаЧасов
	|ИЗ
	|	ВТНормоВремяПоУчетуВремени КАК НормоВремяПоУчетуВремени
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	ИтоговоеНормоВремя.Сотрудник,
	|	СУММА(ИтоговоеНормоВремя.НормаЧасов) КАК НормаЧасов
	|ПОМЕСТИТЬ ВТНормоВремяСводно
	|ИЗ
	|	ВТНормоВремяСотрудниковНаСуммированномУчете КАК ИтоговоеНормоВремя
	|
	|СГРУППИРОВАТЬ ПО
	|	ИтоговоеНормоВремя.Сотрудник
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	ВТОтработаноЧасовРегистр.Сотрудник,
	|	ВТОтработаноЧасовРегистр.ОтработаноЧасов
	|ПОМЕСТИТЬ ВТОтработанныеЧасы
	|ИЗ
	|	ВТОтработаноЧасовРегистр КАК ВТОтработаноЧасовРегистр
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	ВТОтработаноЧасовУчетВремени.Сотрудник,
	|	ВТОтработаноЧасовУчетВремени.ОтработаноЧасов
	|ИЗ
	|	ВТОтработаноЧасовУчетВремени КАК ВТОтработаноЧасовУчетВремени
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	ОтработанныеЧасы.Сотрудник,
	|	СУММА(ОтработанныеЧасы.ОтработаноЧасов) КАК ОтработаноЧасов
	|ПОМЕСТИТЬ ВТОтработанныеЧасыСводно
	|ИЗ
	|	ВТОтработанныеЧасы КАК ОтработанныеЧасы
	|
	|СГРУППИРОВАТЬ ПО
	|	ОтработанныеЧасы.Сотрудник";
	
	// Собираем окончательный итог.
	ТекстЗапроса =
	"ВЫБРАТЬ
	|	Сотрудники.Сотрудник,
	|	ЕСТЬNULL(НормоВремяСотрудников.НормаЧасов, 0) КАК НормаЧасов,
	|	ЕСТЬNULL(ОтработанныеЧасы.ОтработаноЧасов, 0) КАК ОтработаноЧасов,
	|	ЕСТЬNULL(ОтработаноВПраздники.ЧасовВПраздники, 0) КАК ОтработаноЧасовВПраздники,
	|	ЕСТЬNULL(ОтработанныеЧасы.ОтработаноЧасов, 0) - ЕСТЬNULL(НормоВремяСотрудников.НормаЧасов, 0) - ЕСТЬNULL(ОтработаноВПраздники.ЧасовВПраздники, 0) КАК Переработки
	|ИЗ
	|	ВТРасчитываемыеСотрудники КАК Сотрудники
	|		ЛЕВОЕ СОЕДИНЕНИЕ ВТНормоВремяСводно КАК НормоВремяСотрудников
	|		ПО Сотрудники.Сотрудник = НормоВремяСотрудников.Сотрудник
	|		ЛЕВОЕ СОЕДИНЕНИЕ ВТОтработанныеЧасыСводно КАК ОтработанныеЧасы
	|		ПО Сотрудники.Сотрудник = ОтработанныеЧасы.Сотрудник
	|		ЛЕВОЕ СОЕДИНЕНИЕ ВТПраздничные КАК ОтработаноВПраздники
	|		ПО Сотрудники.Сотрудник = ОтработаноВПраздники.Сотрудник";
	
	ЗарплатаКадрыОбщиеНаборыДанных.ОбъединитьТекстыЗапросов(Запрос.Текст, ТекстЗапроса);
     РезультатЗапроса = Запрос.Выполнить(); 
Показать
4. RustRR 01.03.18 14:13 Сейчас в теме
Явно же в этих процедурах заполняются временные таблицы.
// Расчет по регистру расчета всех месяцев, за исключением последнего.
ДополнитьЗапросВТПоказателейПоРегиструРасчета(Запрос);
// Для последнего месяца собираем данные по данным УчетаРабочегоВремени.
ДополнитьЗапросВТПоказателейПоУчетуВремени(Запрос);
5. tiger12 1 01.03.18 15:19 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот