Добрый вечер. Застрял на тривиальной задаче. Есть запрос.
НачисленноОклад=СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(НачисленноОклад)
|С Нач по (КонКвартала(ДатаПериода));
|Обрабатывать НеПомеченныеНаУдаление;
|ДатаДок = Документ.НачислениеЗП.ДатаДок;
|Док = Документ.НачислениеЗП.ТекущийДокумент;
|Оклад = Документ.НачислениеЗП.Оклад;
|Функция ОкладСумма = сумма(Оклад);
|Группировка ДатаДок;
|";//}}ЗАПРОС
Если НачисленноОклад.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
ОкладСумма = 0;
Посчитать = 0;
Декабрь = 0;
НомСтрок = 0;
Месяц = Нач;
Пока НачисленноОклад.Группировка(1)=1 Цикл
_ДатаДок=НачисленноОклад.ДатаДок;
НомСтрок = НомСтрок+1;
Результат.НоваяСтрока(НомСтрок);
ОкладСумма=ОкладСумма+НачисленноОклад.ОкладСумма;
НДФЛ6=СокрЛП(Формат((ОкладСумма/100*ПроцентСтавки),"Ч10.0"));
Результат.УстановитьЗначение(НомСтрок,"Код",ДатаМесяц(_ДатаДок));
Результат.УстановитьЗначение(НомСтрок,"ДатаДохода",_ДатаДок);
Результат.УстановитьЗначение(НомСтрок,"СуммаДохода",ОкладСумма);
Результат.УстановитьЗначение(НомСтрок,"СуммаУдерж",НДФЛ6);
ОкладСумма = 0;
НДФЛ6 = 0;
ДатаДок_=_ДатаДок;
КонецЦикла;
korney777@gmail.com @ Вчера, 23:02
,
Перед циклом обозначьТЕ
ДатаДок_= 0;
СуммаМес=0;
Пока НачисленноОклад.Группировка(1)=1 Цикл
_ДатаДок=НачисленноОклад.ДатаДок;
Если (_ДатаДок<>ДатаДок_) И (СуммаМес<>0) Тогда
Сообщить(СуммаМес); /////////// ЭТО ТО ЧТО НУЖНО
СуммаМес=0;
КонецЕсли;
НомСтрок = НомСтрок+1;
Результат.НоваяСтрока(НомСтрок);
ОкладСумма=ОкладСумма+НачисленноОклад.ОкладСумма;
НДФЛ6=СокрЛП(Формат((ОкладСумма/100*ПроцентСтавки),"Ч10.0"));
Результат.УстановитьЗначение(НомСтрок,"Код",ДатаМесяц(_ДатаДок));
Результат.УстановитьЗначение(НомСтрок,"ДатаДохода",_ДатаДок);
Результат.УстановитьЗначение(НомСтрок,"СуммаДохода",ОкладСумма);
Результат.УстановитьЗначение(НомСтрок,"СуммаУдерж",НДФЛ6);
СуммаМес=СуммаМес+ОкладСумма
ОкладСумма = 0;
НДФЛ6 = 0;
ДатаДок_=_ДатаДок;
КонецЦикла;
! | http://pro1c.org.ua/index.php?act=announce&id=2: 1,9 |
1Cv77, вы так редко пишите, что постоянно забываете правила форума...
можно попробовать что-то типа
|Функция ОкладСумма1 = сумма(Оклад) когда((ДатаДок>=ДатаНачМес1)И(ДатаДок<=ДатаКонМес1));
|Функция ОкладСумма2 = сумма(Оклад) когда((ДатаДок>=ДатаНачМес2)И(ДатаДок<=ДатаКонМес2));
|Функция ОкладСумма3 = сумма(Оклад) когда((ДатаДок>=ДатаНачМес3)И(ДатаДок<=ДатаКонМес3));
1Cv77, Работает, но запрос наваливает мне уже просуммированные цифры за период. Отчет не стыкуется. Может проще для каждого месяца делать запрос?
korney777@gmail.com @ Сегодня, 12:04
,
НачисленноОклад=СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(НачисленноОклад)
|С Нач по (КонКвартала(ДатаПериода));
|Обрабатывать НеПомеченныеНаУдаление;
|ДатаДок = Документ.НачислениеЗП.ДатаДок;
|Док = Документ.НачислениеЗП.ТекущийДокумент;
|Оклад = Документ.НачислениеЗП.Оклад;
|Функция ОкладСумма = сумма(Оклад);
|Группировка Месяц; // !!!
! | http://pro1c.org.ua/index.php?act=announce&id=2: 9 |
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua