Решение расчетной задачи

1. XelOla 17 27.08.17 08:54 Сейчас в теме
Здравствуйте!
Подскажите пожалуйста.
Есть Регистр Сведений Графики работы Измерения Дата, График (справочник) и Ресурс Часы
Есть регистр сведений СтавкаОтВремени Измерения ЧасыОт, ЧасыДо, Подразделение (справочник) и Ресурс Ставка
Есть документ РасчетЗП - Сотрудник, Подразделение, Даты начала работы, даты конца работы (ну т.е. с 01.08.2017 по 20.08.2017)
надо рассчитать результат
если человек отработал 40 часов ставка 20 р, 50 - 40 р.
как вычислить запросом результат начисления?
Запрос.Текст = 
		"ВЫБРАТЬ
		|	РасчетЗПОсновныеНачисления.Сотрудник КАК Сотрудник,
		|	РасчетЗПОсновныеНачисления.Подразделение КАК Подразделение,
		|	РасчетЗПОсновныеНачисления.График КАК График,
		|	РасчетЗПОсновныеНачисления.Начисление КАК Начисление,
		|	РасчетЗПОсновныеНачисления.ДатаНачала КАК ДатаНачала,
		|	РасчетЗПОсновныеНачисления.ДатаОкончания КАК ДатаОкончания
		|ПОМЕСТИТЬ ВтДок
		|ИЗ
		|	Документ.РасчетЗП.ОсновныеНачисления КАК РасчетЗПОсновныеНачисления
		|;
		|
		|////////////////////////////////////////////////////////////­////////////////////
		|ВЫБРАТЬ
		|	ВтДок.Сотрудник КАК Сотрудник,
		|	СУММА(ГрафикиРаботы.Часы) КАК Часы,
		|	ВтДок.Начисление КАК Начисление,
		|	ВтДок.Подразделение КАК Подразделение
		|ПОМЕСТИТЬ ВтЧасы
		|ИЗ
		|	РегистрСведений.ГрафикиРаботы КАК ГрафикиРаботы
		|		ЛЕВОЕ СОЕДИНЕНИЕ ВтДок КАК ВтДок
		|		ПО ГрафикиРаботы.График = ВтДок.График
		|			И ГрафикиРаботы.Дата >= ВтДок.ДатаНачала
		|			И ГрафикиРаботы.Дата <= ВтДок.ДатаОкончания
		|
		|СГРУППИРОВАТЬ ПО
		|	ВтДок.Сотрудник,
		|	ВтДок.Начисление,
		|	ВтДок.Подразделение
		|;
		|
		|////////////////////////////////////////////////////////////­////////////////////
		|ВЫБРАТЬ
		|	ВтЧасы.Сотрудник КАК Сотрудник,
		|	ВтЧасы.Часы * СтавкаОтВремениСрезПоследних.Ставка КАК Результат
		|ИЗ
		|	ВтЧасы КАК ВтЧасы
		|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтавкаОтВремени.СрезПоследних(&ДатаДокумента, ) КАК СтавкаОтВремениСрезПоследних
		|		ПО ВтЧасы.Подразделение = СтавкаОтВремениСрезПоследних.Подразделение
		|			И ВтЧасы.Часы <= СтавкаОтВремениСрезПоследних.ЧасыОт
		|			И ВтЧасы.Часы >= СтавкаОтВремениСрезПоследних.ЧасыДо";
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Dream_kz 129 27.08.17 09:13 Сейчас в теме
(1)
как вычислить запросом результат начисления?

Зачем это делать именно запросом? Используйте объектную модель, в запросе просто получайте все нужные данные
3. Xershi 1484 27.08.17 09:43 Сейчас в теме
(1) ставку в переменную запихиваешь. Получаешь итоговую таблицу с часами и затем через выбор умножаешь!
Оставьте свое сообщение

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