|
v7: Выборка из вида расчета | ☑ | ||
---|---|---|---|---|
0
work92
20.11.15
✎
14:03
|
Здравствуйте подскажите в чем проблема
Есть 3 нач дов за вредность в журнале ЗП с 1.10.15-10.11.15 80 000 с 11.11 15- 29.11.15 100 000 Обработка выводит результат 80 000 180 000 А Нужно чтобы вывело конечный результат 180 000 |
|||
1
work92
20.11.15
✎
14:03
|
Процедура Выполнить()
КонДата = РабочаяДата(); Таб=СоздатьОбъект("таблица") ; СпрСотр = СоздатьОбъект("Справочник.Сотрудники"); Долж = СоздатьОбъект("Справочник.Должности"); ЖЗ = СоздатьОбъект("ЖурналРасчетов.Зарплата"); Таб.ИсходнаяТаблица("Таблица"); таб.Вывестисекцию("Строка1"); СпрСотр.ВключатьПодчиненные(1); СпрСотр.ИспользоватьДату(КонДата); СпрСотр.НайтиПоНаименованию("Расчетчик1",0,0); Расчетчик1=СпрСотр.ТекущийЭлемент(); СпрСотр.ИспользоватьРодителя(Расчетчик1); СпрСотр.ВыбратьЭлементы(); Пока СпрСотр.ПолучитьЭлемент()=1 Цикл ТекСотр=СпрСотр.ТекущийЭлемент(); ЖЗ.ВыбратьЗаписиПоОбъекту (ТекСотр,ДатаНач, ДатаКон); Кол=0; ВредР=0; ВредЧ=0; Пока ЖЗ.ПолучитьЗапись()=1 Цикл Если (ЖЗ.ВидРасч = ВидРасчета.ДоплатаЗаВредность)или (ЖЗ.ВидРасч = ВидРасчета.ДоплатаЗаВредностьСовм) Тогда Фио=СпрСотр.Наименование; Наздолж=СпрСотр.Должность; ВредН=СпрСотр.Должность.УсловияТруда; ВредЧ=ВредЧ+ЖЗ.Часы; ВредР=ВредР+ЖЗ.Результат; Таб.Вывестисекцию("Строка2") ; КонецЕсли; КонецЦикла; КонецЦикла; Таб.Показать(); КонецПроцедуры |
|||
2
шаэс
20.11.15
✎
14:07
|
(0) после вывода "Строка2" обнулять было бы неплохо значения, которые считаются нарастающим.
|
|||
3
work92
20.11.15
✎
14:07
|
а как
|
|||
4
work92
20.11.15
✎
14:07
|
Если возможно кодом
|
|||
5
cw014
20.11.15
✎
14:08
|
Наверное потому что Таб.Вывестисекцию("Строка2") ; внутри цикла
|
|||
6
work92
20.11.15
✎
14:09
|
И выносил из цикла тоже результат выводит не правельно
|
|||
7
шаэс
20.11.15
✎
14:12
|
(4) э...
ВредЧ=ЖЗ.Часы; ВредР=ЖЗ.Результат; Таб.Вывестисекцию("Строка2") ; а если вам все-таки надо посчитать итоговое значение этих величин, то вводите до начала цикла по строкам ИтогоВредЧ = 0; ИтогоВРедР = 0; и суммируйте уже их: ВредЧ=ЖЗ.Часы; ВредР=ЖЗ.Результат; ИтогоВредЧ = ИтогоВредЧ + ВредЧ; ИтогоВредР = ИтогоВредР + ВредР; Таб.Вывестисекцию("Строка2") ; |
|||
8
aka AMIGO
20.11.15
✎
14:12
|
Пятничный Г-код! :)
ВредЧ=0; ФИО = ""; //новьё :) Пока ЖЗ.ПолучитьЗапись()=1 Цикл Если (ЖЗ.ВидРасч = ВидРасчета.ДоплатаЗаВредность)или (ЖЗ.ВидРасч = ВидРасчета.ДоплатаЗаВредностьСовм) Тогда Фио=СпрСотр.Наименование; Наздолж=СпрСотр.Должность; ВредН=СпрСотр.Должность.УсловияТруда; ВредЧ=ВредЧ+ЖЗ.Часы; ВредР=ВредР+ЖЗ.Результат; //Таб.Вывестисекцию("Строка2") ; //коммент КонецЕсли; КонецЦикла; //3 новых строки: Если ПустоеЗначение(ФИО)=0 Тогда Таб.Вывестисекцию("Строка2"); КонецЕсли; КонецЦикла; Тогда будут выводиться только последние присвоенные значения, а не все. |
|||
11
aka AMIGO
20.11.15
✎
14:17
|
ТС! (9) и (10) - не учитывать..
я упустил первый цикл. в (8) идея правильная, но правильно-ли решение - не знаю. |
|||
12
work92
20.11.15
✎
14:28
|
СП
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |