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

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 1474 27.08.17 09:43 Сейчас в теме
(1) ставку в переменную запихиваешь. Получаешь итоговую таблицу с часами и затем через выбор умножаешь!
Оставьте свое сообщение
Вакансии
Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)

Программист 1С
Москва
зарплата от 250 000 руб.
Полный день

Программист 1C
Волгоград
зарплата от 200 000 руб.
Полный день

Аналитик
Санкт-Петербург
зарплата от 200 000 руб. до 250 000 руб.
Полный день