Запрос…
VadimB
12.05.2009 - 15:04
|
[ЗиК 7.70.281] Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС() |Период с xData1 по xData2; |Сотрудник = ЖурналРасчетов.Зарплата.Объект; |ФизЛицо = ЖурналРасчетов.Зарплата.Объект.ОсновнойЭлемент; |Расчет = ЖурналРасчетов.Зарплата.ВидРасч; |Результат = ЖурналРасчетов.Зарплата.Результат; |ДниВЖурнале = ЖурналРасчетов.Зарплата.Дни; |ЧасыВЖурнале = ЖурналРасчетов.Зарплата.Часы; |Функция СальдоНач = Сумма(Результат) когда (Расчет.ВходитВГруппу(ГруппаРасчетов.НачальноеСальдо)=1); |Функция СуммаНачисления = Сумма(Результат) когда (Расчет.ВходитВГруппу(ГруппаРасчетов.ВсеНачисления)=1); |Функция СуммаУдержания = Сумма(Результат) когда (Расчет.ВходитВГруппу(ГруппаРасчетов.ВсеУдержания)=1); |Функция МатериальныеБлага = Сумма(Результат) когда (Расчет.ВходитВГруппу(ГруппаРасчетов.ДоходыВНатуральнойФорме)=1); |Функция ВозвратыНДФЛ = Сумма(Результат) когда (Расчет.ВходитВГруппу(ГруппаРасчетов.ВозвратыНДФЛ)=1); |Функция Выплачено = Сумма(Результат) когда (Расчет=ВидРасчета.ВыплатаЗарплаты); |Функция ВозвратВКассу = Сумма(Результат) когда (Расчет = ВидРасчета.Возврат); |Функция Долг = Сумма(Результат) когда ((Расчет=ВидРасчета.НачальноеСальдоЗадолженность)или(Расчет=ВидРасчета.НачальноеСальдоОкругления) или(Расчет=ВидРасчета.НачальноеСальдоПереплатаНДФЛ)); |Функция Дни = Сумма(ДниВЖурнале) когда ((Расчет.ВходитВГруппу(ГруппаРасчетов.ОсновныеНачисления)=1) и (ФизЛицо = Сотрудник)); |Функция Часы = Сумма(ЧасыВЖурнале) когда ((Расчет.ВходитВГруппу(ГруппаРасчетов.ОсновныеНачисления)=1) и (ФизЛицо = Сотрудник)); |Группировка Сотрудник Без Групп; |Группировка Расчет Упорядочить по Расчет.Очередность; |Условие(Результат<>0); |"//}}ЗАПРОС ; if ВыбСотр.Выбран()=1 then ТекстЗапроса = ТекстЗапроса+"Условие(Сотрудник=ВыбСотр);"; endif; if Запрос.Выполнить(ТекстЗапроса)=0 then глСтатусСтрока(Контекст,""); Возврат; endif; //Запрос.ВНачалоВыборки(); While Запрос.Группировка(1)=1 Do xMan=Запрос.Сотрудник; nSaldo1=Запрос.СальдоНач; nSummaN=Запрос.СуммаНачисления; nSummaU=Запрос.СуммаУдержания; nSummaD=Запрос.МатериальныеБлага; nDays=Запрос.Дни; nClocks=Запрос.Часы; xDayClock=TrimAll(nDays)+?(nClocks>0," ("+TrimAll(nClocks)+")",""); nKassaBank=Запрос.Выплачено; nSaldo2=nSaldo1+nSummaN-nSummaU-nKassaBank; xTabel=xMan.Код; xFio=TrimAll(глФамилияИмяОтчество(xMan)); xProf=xMan.Должность.Получить(Дата2); sVar=""+xMan+": "+Формат(nSaldo1,"Ч012.2.'")+"..."+Формат(nSummaN,"Ч012.2.'")+" / "+Формат(nSummaU,"Ч012.2.'")+"..."+Формат(nSaldo2,"Ч012.2.'"); Сообщить(sVar,"i"); While Запрос.Группировка(2)=1 Do xNU=Запрос.Расчет; nSumma=Запрос.Результат; Сообщить(глПредставлениеВидаРасчета(xNU)+": "+nSumma); EndDo; EndDo; R=СоздатьОбъект("ТаблицаЗначений"); Запрос.Выгрузить(R, 3, 0); R.ВыбратьСтроку(); Проблема… Есть некий “гаврик”, у которого на анализируемый месяц приходится несколько договоров подряда (12’000=). Из запроса выбирается лишь сумма последнего договора (4’600=). Ладно, выгружаю запрос в таблицу значений. Действительно, для данного ВР значение колонок “СуммаНачисления” 12’000, “Результат” 4’600=. Что я делаю не так? |