Форум программистов, компьютерный форум, киберфорум
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
1 / 1 / 1
Регистрация: 14.05.2013
Сообщений: 379
1

Подсчет суммы по документам, получить переменную из функции

30.04.2015, 15:57. Показов 1052. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как поместить в поле СуммаШтрафов значение поля СуммаШ и как в СуммаШ помещать сумму штрафов по всем документам сотрудника?

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Процедура СотрудникПриИзменении(Элемент)
    Зарплата=ПолучитьЗначениеРеквизита(Объект.Сотрудник,"Зарплата");
    СуммаШтрафов=ПолучитьСуммуШтрафовСотрудника();
    ЗарплатаСучетомШтрафов=Зарплата- СуммаШтрафов;
КонецПроцедуры
 
 
Функция ПолучитьСуммуШтрафовСотрудника ()
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   Штрафы.Регистратор,
        |   СУММА(Штрафы.Сумма) КАК Сумма,
        |   Штрафы.Сотрудник,
        |   Штрафы.ВидШтрафа,
        |   Штрафы.Дата
        |ИЗ
        |   РегистрСведений.Штрафы КАК Штрафы
        |ГДЕ
        |   Штрафы.Сотрудник = &Сотрудник
        |
        |СГРУППИРОВАТЬ ПО
        |   Штрафы.Регистратор,
        |   Штрафы.Сотрудник,
        |   Штрафы.ВидШтрафа,
        |   Штрафы.Дата";
    
    Запрос.УстановитьПараметр("Сотрудник", Объект.Сотрудник);
    РезультатЗапроса = Запрос.Выполнить();
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        Если Год (ТекущаяДата())=Год(ВыборкаДетальныеЗаписи.Дата) Тогда
            Если Месяц (ТекущаяДата())=Месяц(ВыборкаДетальныеЗаписи.Дата) Тогда
                Сообщить(""+ ВыборкаДетальныеЗаписи.Сумма +"");
                 СуммаШ=ВыборкаДетальныеЗаписи.Сумма;
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
КонецФункции
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.04.2015, 15:57
Ответы с готовыми решениями:

В отдельной функции организовать подсчет суммы элементов
Помогите пожалуйста исправить ошибку, почему программа не работает. Составить программу, в которой...

Подсчет суммы чисел в строке не используя функции string.h
Доброго времени суток.Задача состоит в том , чтобы подсчитать сумму чисел в строке, слова в которой...

Как получить переменную из функции?
Здравствуйте, вопрос в названии темы))

Получить результат функции в переменную
Объясните пожалуйста, в чем моя ошибка? Вот простенькая функция, которая считывает из файла строки...

5
Модератор
Эксперт 1С
4029 / 2974 / 591
Регистрация: 10.03.2011
Сообщений: 11,702
Записей в блоге: 1
30.04.2015, 16:53 2
Выкинуть из запроса все поля кроме СУММА

и наложить условие на поле ДАТА

тогда и кодом проверять дату будет не нужно
0
1 / 1 / 1
Регистрация: 14.05.2013
Сообщений: 379
30.04.2015, 20:18  [ТС] 3
а что писать в дате?
я пробовала писать "Месяц (ТекущаяДата())" но он выдает ошибку
0
Эксперт 1С
434 / 305 / 92
Регистрация: 28.05.2014
Сообщений: 1,247
30.04.2015, 23:48 4
Эмили, Таб1.ДатаДок = &Дата в условие запроса, и в параметры Запрос.УстановитьПараметр("Дата",ТекущаяДата());
0
1 / 1 / 1
Регистрация: 14.05.2013
Сообщений: 379
01.05.2015, 15:57  [ТС] 5
теперь вообще ничего не работает

Добавлено через 1 час 20 минут
подскажите как заставить отбирать только этот месяц и год

1C
1
2
3
4
5
6
7
8
9
10
11
12
СуммаШ=0;
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        //Год = ДатаГод(ТекущаяДата());
        //Месяц = ДатаМесяц(ТекущаяДата());
        Если Год(ТекущаяДата()) =Год(ВыборкаДетальныеЗаписи.Период) Тогда
            Если Месяц(ТекущаяДата()) =Месяц(ВыборкаДетальныеЗаписи.Период) Тогда
                Сообщить(""+ ВыборкаДетальныеЗаписи.Сумма +"");
                 СуммаШ=СуммаШ+ВыборкаДетальныеЗаписи.Сумма;
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
    Возврат СуммаШ;
0
Модератор
Эксперт 1С
4029 / 2974 / 591
Регистрация: 10.03.2011
Сообщений: 11,702
Записей в блоге: 1
02.05.2015, 22:48 6
1C
1
2
3
4
| ГДЕ Дата МЕЖДУ &ДатаНач и &ДатаКон
 
Запрос.УстановитьПараметр("ДатаНач", НачалоМесяца(ТекущаяДата()));
Запрос.УстановитьПараметр("ДатаКон", КонецМесяца(ТекущаяДата()));
1
02.05.2015, 22:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.05.2015, 22:48
Помогаю со студенческими работами здесь

Как получить переменную из сторонней функции?
Подскажите пожалуйста, есть функция attrchange ,которая была подключена через плагин (функция...

Получить ссылку на строковую переменную в другой функции
Добрый вечер! Помогите написать ссылку на переменную bin using System; using...

В отдельной функции организовать подсчет суммы элементов динамического массива, которые удовлетворяют условию
Составить программу, в которой сформировать прямоугольную таблицу С из n×m целых чисел в...

Подсчет суммы в столбце до первой пустой строки и новый подсчет
Уже подзабыл как писать макросы, последний раз это делал несколько лет назад, поэтому прошу помощи...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru