Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Сумма в запросе с условием          
korney777@gmail.... Подменю пользователя
сообщение 29.01.18, 23:02
Сообщение #1

Молчаливый
*
Группа: Пользователи
Сообщений: 5
Спасибо сказали: 0 раз
Рейтинг: 0

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

        |";//}}ЗАПРОС
        Если НачисленноОклад.Выполнить(ТекстЗапроса) = 0 Тогда          
            Возврат;
        КонецЕсли;
        ОкладСумма = 0;
        Посчитать = 0;
        Декабрь = 0;
        НомСтрок = 0;
        Месяц = Нач;
        Пока НачисленноОклад.Группировка(1)=1 Цикл
            _ДатаДок=НачисленноОклад.ДатаДок;
            НомСтрок = НомСтрок+1;
            Результат.НоваяСтрока(НомСтрок);
                ОкладСумма=ОкладСумма+НачисленноОклад.ОкладСумма;                    
            НДФЛ6=СокрЛП(Формат((ОкладСумма/100*ПроцентСтавки),"Ч10.0"));
            Результат.УстановитьЗначение(НомСтрок,"Код",ДатаМесяц(_ДатаДок));
            Результат.УстановитьЗначение(НомСтрок,"ДатаДохода",_ДатаДок);
            Результат.УстановитьЗначение(НомСтрок,"СуммаДохода",ОкладСумма);
            Результат.УстановитьЗначение(НомСтрок,"СуммаУдерж",НДФЛ6);
            ОкладСумма = 0;
            НДФЛ6 = 0;    
            ДатаДок_=_ДатаДок;
        КонецЦикла;

Как в запросе получить суммы за месяц.
Или посчитать суммы документов пока выполняется группировка? Выборка происходит за три месяца. в ТЗ должно попасть три строки. Голова уже не работает.

1Cv77 Подменю пользователя
сообщение 30.01.18, 0:40
Сообщение #2

Завсегдатай
****
Группа: Пользователи
Сообщений: 195
Из: Украина, Мелитополь
Спасибо сказали: 61 раз
Рейтинг: 0

korney777@gmail.com @ Вчера, 23:02 * ,
Перед циклом обозначьТЕ
ДатаДок_= 0;
СуммаМес=0;

В ЦИКЛЕ, в конце, вставьТЕ такое:
Пока НачисленноОклад.Группировка(1)=1 Цикл
   _ДатаДок=НачисленноОклад.ДатаДок;  
   Если (_ДатаДок<>ДатаДок_) И (СуммаМес<>0) Тогда
         Сообщить(СуммаМес);               /////////// ЭТО ТО ЧТО НУЖНО
     СуммаМес=0;
   КонецЕсли;
   НомСтрок = НомСтрок+1;

            Результат.НоваяСтрока(НомСтрок);
            ОкладСумма=ОкладСумма+НачисленноОклад.ОкладСумма;                    
            НДФЛ6=СокрЛП(Формат((ОкладСумма/100*ПроцентСтавки),"Ч10.0"));
            Результат.УстановитьЗначение(НомСтрок,"Код",ДатаМесяц(_ДатаДок));
            Результат.УстановитьЗначение(НомСтрок,"ДатаДохода",_ДатаДок);
            Результат.УстановитьЗначение(НомСтрок,"СуммаДохода",ОкладСумма);
            Результат.УстановитьЗначение(НомСтрок,"СуммаУдерж",НДФЛ6);
            
            СуммаМес=СуммаМес+ОкладСумма
            
            ОкладСумма = 0;
            НДФЛ6 = 0;    
            ДатаДок_=_ДатаДок;
        КонецЦикла;


 ! 

Правила: 1,9
 

P.S. Прошу прощения за "корявый" код, в плане отступов.

Сообщение отредактировал logist - 30.01.18, 1:43

logist Подменю пользователя
сообщение 30.01.18, 1:42
Сообщение #3

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

1Cv77, вы так редко пишите, что постоянно забываете правила форума...


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Bernet Подменю пользователя
сообщение 30.01.18, 2:02
Сообщение #4

Ветеран
Иконка группы
Группа: Местный
Сообщений: 858
Из: Місто щасливих людей
Спасибо сказали: 317 раз
Рейтинг: 0


Боже, почему же 7-ка такая корявая.... 32542620.gif 47046430.gif чтобы простенький запрос написать надо себе мозг вынести


Signature
Дописываю конфигурации на платформе 8.х.
- Управление торговым предприятием для Украины
- Управление производственным предприятием для Украины
- Управление небольшой фирмой для Украины
- Бухгалтерия для Украины;
- Общепит для Украины
- Ресторан (Рарус)
- Розница

nysysimara Подменю пользователя
сообщение 30.01.18, 7:33
Сообщение #5

Оратор
Иконка группы
Группа: Местный
Сообщений: 312
Из: Бердянск
Спасибо сказали: 110 раз
Рейтинг: 0

можно попробовать что-то типа
|Функция ОкладСумма1 = сумма(Оклад) когда((ДатаДок>=ДатаНачМес1)И(ДатаДок<=ДатаКонМес1));
|Функция ОкладСумма2 = сумма(Оклад) когда((ДатаДок>=ДатаНачМес2)И(ДатаДок<=ДатаКонМес2));
|Функция ОкладСумма3 = сумма(Оклад) когда((ДатаДок>=ДатаНачМес3)И(ДатаДок<=ДатаКонМес3));


Signature
1С Предприятие 7.7: Бух. учет для Украины (активно дописанная) + самописка (учет производства и ЗП)
1С Предприятие 8.3: Бух.предприятия 3.0 + самописка
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Кроме высшего образования, нужно иметь хотя бы среднее соображение

korney777@gmail.... Подменю пользователя
сообщение 30.01.18, 9:37
Сообщение #6

Молчаливый
*
Группа: Пользователи
Сообщений: 5
Спасибо сказали: 0 раз
Рейтинг: 0

1Cv77, Работает, но запрос наваливает мне уже просуммированные цифры за период. Отчет не стыкуется. Может проще для каждого месяца делать запрос?

Alegzander Подменю пользователя
сообщение 30.01.18, 10:59
Сообщение #7

Общительный
**
Группа: Пользователи
Сообщений: 28
Спасибо сказали: 9 раз
Рейтинг: 8

korney777@gmail.com @ Сегодня, 10:37 * ,
Группировка Месяц?

korney777@gmail.... Подменю пользователя
сообщение 30.01.18, 11:04
Сообщение #8

Молчаливый
*
Группа: Пользователи
Сообщений: 5
Спасибо сказали: 0 раз
Рейтинг: 0

Alegzander @ Сегодня, 10:59 * ,
Как сгруппировать помесячно?

Alegzander Подменю пользователя
сообщение 30.01.18, 12:20
Сообщение #9

Общительный
**
Группа: Пользователи
Сообщений: 28
Спасибо сказали: 9 раз
Рейтинг: 8

korney777@gmail.com @ Сегодня, 12:04 * ,
    НачисленноОклад=СоздатьОбъект("Запрос");
        ТекстЗапроса =  
        "//{{ЗАПРОС(НачисленноОклад)
        |С Нач по (КонКвартала(ДатаПериода));
        |Обрабатывать НеПомеченныеНаУдаление;
        |ДатаДок = Документ.НачислениеЗП.ДатаДок;
        |Док = Документ.НачислениеЗП.ТекущийДокумент;
        |Оклад = Документ.НачислениеЗП.Оклад;
        |Функция ОкладСумма = сумма(Оклад);
        |Группировка Месяц; // !!!


 ! 

Правила: 9
 


Сообщение отредактировал Vofka - 30.01.18, 14:03

Спасибо сказали: nysysimara,

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 29.03.24, 11:30
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!