Как получить отработанные часы????

Новая тема
Показывать по 10 20 40 сообщений
Подскажите, кто знает!!!!!
Как в конфигураторе получить количество отработанных работником часов?
"Подскажите, что я делаю неправильно?
Выдает сообщение - деление на ноль! Получается, что Часы равны 0.
ПОМОГИТЕ!!!!!!!

ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");  

ДатаНач = ЖР.НачалоТекущегоПериода();
ДатаКон = ЖР.КонецТекущегоПериода();

//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать1)
|Период с ДатаНач по ДатаКон;
|Объект = ЖурналРасчетов.Зарплата.Объект;
|Результат = ЖурналРасчетов.Зарплата.Результат;
|Часы =  ЖурналРасчетов.Зарплата.Часы;
|"//}}ЗАПРОС
;
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
  Возврат;
КонецЕсли;
       
     
Часы=0;
Пока ЖР.ПолучитьЗапись()>0 Цикл
Часы=Часы + ЖР.Часы;
КонецЦикла;

Часов = Документ.КолвоРабочихЧасов;
Результат = БазаРасчета * Часов / Часы ;
"
Добавьте в запрос Сумма(Часы) и берите из запроса. Пример можно посмотреть в Отчет.РасчетнаяВедомость.
"Сделал вот так вот...... Но все равно Часы=0

ДатаНач = ЖР.НачалоТекущегоПериода();
ДатаКон = ЖР.КонецТекущегоПериода();

//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать1)
|Период с ДатаНач по ДатаКон;
|Объект = ЖурналРасчетов.Зарплата.Объект;
|Результат = ЖурналРасчетов.Зарплата.Результат;
|ЧасыВЖурнале =  ЖурналРасчетов.Зарплата.Часы;
|Функция Часы = Сумма(ЧасыВЖурнале);
|"//}}ЗАПРОС
;
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;

Часы= Запрос.Часы;
"
Добавь условие по объекту(сотруднику) и группировку.
"А теперь Часы = 9999.99 !!!!!!!!!!!!!!!!!!!!
Что-то не получается........


ДатаНач = ЖР.НачалоТекущегоПериода();
ДатаКон = ЖР.КонецТекущегоПериода();

//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать1)
|с ДатаНач по ДатаКон;
|Объект = ЖурналРасчетов.Зарплата.Объект;
|ЧасыВЖурнале =  ЖурналРасчетов.Зарплата.Часы;
|Группировка Объект;
|Группировка ПериодЖурнала;
|Функция Часы = Сумма(ЧасыВЖурнале);
|"//}}ЗАПРОС
;
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;

Часы= Запрос.Часы;

"
"Советую также почитать про использование "Период с" и "С" в запросе.

Должно работать:

ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");
НачДата = ЖР.НачалоТекущегоПериода();
КонДата = ЖР.КонецТекущегоПериода();
                 
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с НачДата по КонДата;
|Сотрудник = ЖурналРасчетов.Зарплата.Объект;
|ФизЛицо = ЖурналРасчетов.Зарплата.Объект.ОсновнойЭлемент;
|Расчет = ЖурналРасчетов.Зарплата.ВидРасч;
|ЧасыВЖурнале = ЖурналРасчетов.Зарплата.Часы;
|Функция Часы = Сумма(ЧасыВЖурнале) когда (ФизЛицо = Сотрудник);
|Группировка ФизЛицо без групп;
//|Условие(Сотрудник = ВыбСотрудник);  !!! условие, если по сотруднику
|Условие(Расчет.ВходитВГруппу(ГруппаРасчетов.ОсновныеНачисления)=1);
|"//}}ЗАПРОС
;

// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
 
Сообщить("Часы по всем "+Запрос.Часы);

Пока Запрос.Группировка(1) = 1 Цикл
Сообщить("Часы по каждому "+Запрос.Часы);
КонецЦикла;

P.S. А кстати, в журнале зарплаты по этому сотруднику часы рассчитаны?"
Ошибка: Переменная ВыбСотрудник не определена.

Совсем не шарю в запросах!!!!!!!!!!!
Мож я ваще все неправильно делаю.....
Я делаю новое начисление: сделал документ, вид расчета, в котором и делаю запрос...
А как я понял, ВыбСотрудник работала бы, если бы запрос проводился в самом документе (отчете).
ВыбСотрудник - сотрудник по которому делается отбор.
Начисление от каких видов расчетов зависит?
"С видами расчетов то все нормально: я сделал группу расчетов, а в "моем" новом виде расчетов прописал:

БазаРасчета = глПолучитьБазуВР(Объект, ВидРасч, НачалоТекущегоПериода(),КонецТекущегоПериода(), ГруппаРасчетов.БазаРасчета);

Результат = БазаРасчета / Часы * Часов ;
где Часы - отработанное работником время.

Проблема в том, чтобы получить эти самые часы..."
Читают тему
(гостей: 1)

Быстрый переход