Форум программистов, компьютерный форум, киберфорум
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
1
1C 8.x

Суммировать количество

23.12.2015, 15:20. Просмотров 1655. Ответов 44
Метки нет (Все метки)

Подскажите как можно суммировать Количество заявок, чтобы потом проверить по условию.

1C
1
2
3
4
5
    Фильтр = Новый Структура();     
    Фильтр.Вставить("Маршрут",Маршрут);
    КоличествоЗаявок=РегистрыСведений.ЗаявкиНаПоставку.ПолучитьПоследнее(КонецДня(ДатаПоставки),Фильтр).Количество;    
    Если КоличествоЗаявок > 5  Тогда
....
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.12.2015, 15:20
Ответы с готовыми решениями:

Как в реквизит справочника вывести значения из реквизитов других справочников и суммировать?
Всем привет! Такой вопрос. Есть справочник Договор, с реквизитом СуммаДоговора, в него нужно...

Суммировать количество
Ребят, вот никак не ожидала что 1с будет для меня запутанным. Пишу конфигурацию. Есть справочник...

Суммировать элементы матрицы, возвеси в квадрат каждое число и снова суммировать
Всем привет! Предположим, есть некий массив 10 на 10, ну то есть 100 чисел. Эти числа такие...

Суммировать количество квадратуру
В таблице суммирует квадратуру одного продукта после этой нужно суммировать <th><script...

__________________

Записывайтесь на профессиональные курсы 1C-разработчиков
44
Модератор
Эксперт 1С
3055 / 2749 / 515
Регистрация: 10.03.2011
Сообщений: 10,550
Записей в блоге: 1
23.12.2015, 15:30 2
запросом

Добавлено через 53 секунды
Пример:
Кликните здесь для просмотра всего текста
1C
1
Выбрать Количество(ЧтоТо) КАК ЧтоТо из ОткудаТо
0
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
23.12.2015, 16:05  [ТС] 3
Dethmontt, можно без запроса, а через структуру как в коде?
0
Модератор
Эксперт 1С
3055 / 2749 / 515
Регистрация: 10.03.2011
Сообщений: 10,550
Записей в блоге: 1
23.12.2015, 16:23 4
Цитата Сообщение от Ermak27 Посмотреть сообщение
Dethmontt, можно без запроса, а через структуру как в коде?
Вот почитай, хорошая статья - http://pro1c.org.ua/index.php?showtopic=456
1
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
24.12.2015, 17:42  [ТС] 5
Dethmontt, Сделал через запрос, но почему то не работает условие

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
     Запрос = Новый Запрос;
         Запрос.Текст = "ВЫБРАТЬ
     |  КОЛИЧЕСТВО(ЗаявкиНаПоставкуСрезПоследних.Количество) КАК Количество
     |ИЗ
     |  РегистрСведений.ЗаявкиНаПоставку.СрезПоследних КАК ЗаявкиНаПоставкуСрезПоследних
     |ГДЕ
     |  ЗаявкиНаПоставкуСрезПоследних.Маршрут = &Маршрут
     |  И ЗаявкиНаПоставкуСрезПоследних.Период = &Период";
     Запрос.УстановитьПараметр("Маршрут",Маршрут);
     Запрос.УстановитьПараметр("Период",ДатаПоставки);     
        Результат = Запрос.Выполнить().Выбрать();         
         Пока Результат.Следующий() Цикл           
             КоличествоЗаявок=Результат.Количество;
        Если КоличествоЗаявок < 5 Тогда
Док=Документы.Заявка.СоздатьДокумент();
......
Иначе
КонецЕсли; 
КонецЦикла;
0
Модератор
Эксперт 1С
3055 / 2749 / 515
Регистрация: 10.03.2011
Сообщений: 10,550
Записей в блоге: 1
24.12.2015, 17:43 6
Цитата Сообщение от Ermak27 Посмотреть сообщение
|* И ЗаявкиНаПоставкуСрезПоследних.Период = &Период";
Что это?

Добавлено через 20 секунд
Объясни смысл этого условия?
0
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
24.12.2015, 17:47  [ТС] 7
Dethmontt, условие по дате, что то вроде не то
0
Модератор
Эксперт 1С
3055 / 2749 / 515
Регистрация: 10.03.2011
Сообщений: 10,550
Записей в блоге: 1
24.12.2015, 17:50 8
Объясни смысл этого условия?
Цитата Сообщение от Ermak27 Посмотреть сообщение
условие по дате
Что за условие - по буквам!!!???
0
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
24.12.2015, 17:52  [ТС] 9
Dethmontt, исправил но все равно не работает
1C
1
            |   И ЗаявкиНаПоставкуСрезПоследних.Период МЕЖДУ &ДатаНач И &ДатаКон";
Добавлено через 47 секунд
Dethmontt, отбираем по Периоду
Вот я сделал так, но не работает

1C
1
2
3
4
               |    И ЗаявкиНаПоставкуСрезПоследних.Период МЕЖДУ &ДатаНач И &ДатаКон";
    Запрос.УстановитьПараметр("Маршрут",Маршрут);
    Запрос.УстановитьПараметр("ДатаНач",НачалоДня(ДатаПоставки));
    Запрос.УстановитьПараметр("ДатаКон",КонецДня(ДатаПоставки));
0
Модератор
Эксперт 1С
3055 / 2749 / 515
Регистрация: 10.03.2011
Сообщений: 10,550
Записей в блоге: 1
24.12.2015, 17:57 10
Ermak27, ну и что у тебя в регистре за этот период и по этому маршруту?
0
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
24.12.2015, 18:29  [ТС] 11
Dethmontt, что то опять запутался. Мне нужно чтобы нельзя было добавить заявок больше 5, заявки записываются в Регистре ЗаявкиНаПоставку

Добавлено через 15 минут
Dethmontt, В отладчике посмотрел, запрос не работает КоличествоЗаявок постоянной равно 0, что не так?

Добавлено через 3 минуты
Dethmontt, Только отбор по дате убрал КоличествоЗаявок стало показывать, что не так?
0
Эксперт 1С
3042 / 1987 / 524
Регистрация: 25.06.2009
Сообщений: 6,938
24.12.2015, 23:21 12
Ermak27, потому что Период для виртуальной таблицы СрезПоследних прописывается в параметрах! На всякий: в конструкторе запроса в окне таблиц(посередине), правой кнопкой мыши - Параметры таблицы. Установка Периода для таблицы СрезПоследних подразумевает не жесткий отбор по дате, как у тебя прописано, а отбор последних записей на заданную дату с уникальными значениями выбранных полей.
Стало быть, даже убрав условие по дате у вас вернется одна последняя запись в этом регистре со значением поля "Количество"(зачем его еще суммировать?)
Что вообще за регистр сведений? Какая у него структура и назначение? Забиваем в него 5 заявок и все, больше нельзя?
Может логичнее было бы использовать регистр накопления Обороты? Брать обороты за период(в этом случае период подразумевает интервал дат) по выбранному маршруту и считать количество заявок...
1
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
25.12.2015, 09:14  [ТС] 13
Все спасибо, разобрался!

Добавлено через 30 минут
При тестировании появилась ошибка. Если значения нет в Регистре тогда условие не работает, если значение есть тогда работает, как исправить?

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
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    |   ЗаявкиНаПоставку.Период,
    |   СУММА(ЗаявкиНаПоставку.Количество) КАК Количество,
    |   ЗаявкиНаПоставку.Маршрут
    |ИЗ
    |   РегистрСведений.ЗаявкиНаПоставку КАК ЗаявкиНаПоставку
    |ГДЕ
    |   ЗаявкиНаПоставку.Маршрут = &Маршрут
    |   И ЗаявкиНаПоставку.Период МЕЖДУ &ДатаНач И &ДатаКон
    |
    |СГРУППИРОВАТЬ ПО
    |   ЗаявкиНаПоставку.Период,
    |   ЗаявкиНаПоставку.Маршрут";
    Запрос.УстановитьПараметр("Маршрут",Маршрут);
    Запрос.УстановитьПараметр("ДатаНач",НачалоДня(Дата));
    Запрос.УстановитьПараметр("ДатаКон",КонецДня(Дата));
    
    Результат = Запрос.Выполнить().Выбрать();         
    Пока Результат.Следующий() Цикл            
        КоличествоЗаявок=Результат.Количество;
        КоличествоИтого=КоличествоЛгт+КоличествоЗаявок+Количество;            
        
        Если КоличествоИтого < 5 или КоличествоИтого = 5 Тогда
0
852 / 651 / 111
Регистрация: 01.11.2012
Сообщений: 2,403
25.12.2015, 09:21 14
СУММА(ISNULL(ЗаявкиНаПоставку.Количество,0))
0
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
25.12.2015, 09:29  [ТС] 15
Xomych, Все равно не работает условие
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
Запрос.Текст = "ВЫБРАТЬ
    |   ЗаявкиНаПоставку.Период,
    |   СУММА(ISNULL(ЗаявкиНаПоставку.Количество,0)) КАК Количество,
    |   ЗаявкиНаПоставку.Маршрут
    |ИЗ
    |   РегистрСведений.ЗаявкиНаПоставку КАК ЗаявкиНаПоставку
    |ГДЕ
    |   ЗаявкиНаПоставку.Маршрут = &Маршрут
    |   И ЗаявкиНаПоставку.Период МЕЖДУ &ДатаНач И &ДатаКон
    |
    |СГРУППИРОВАТЬ ПО
    |   ЗаявкиНаПоставку.Период,
    |   ЗаявкиНаПоставку.Маршрут";
0
852 / 651 / 111
Регистрация: 01.11.2012
Сообщений: 2,403
25.12.2015, 09:44 16
А это что такое КоличествоЛгт+КоличествоЗаявок+Количество? Где определяются переменные КоличествоЛгт и Количество?

Пройдись отладчиком посмотри значения всех переменных
0
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
25.12.2015, 09:56  [ТС] 17
Xomych, КоличествоЛгт и Количество это реквизиты в форме.

Добавлено через 1 минуту
Xomych, Отладчиком смотрю что если в регистре пусто по заданным параметрам то не заходит вообще в цикл
1C
1
Пока Результат.Следующий() Цикл
0
852 / 651 / 111
Регистрация: 01.11.2012
Сообщений: 2,403
25.12.2015, 09:59 18
Цитата Сообщение от Ermak27 Посмотреть сообщение
Отладчиком смотрю что если в регистре пусто по заданным параметрам то не заходит вообще в цикл
Ну правильно

Как я понял, вот чего ты хочешь

1C
1
2
3
4
5
6
7
    КоличествоИтого=0;
    Результат = Запрос.Выполнить().Выбрать();        
    Пока Результат.Следующий() Цикл              
        КоличествоЗаявок=Результат.Количество;
        КоличествоИтого=КоличествоЛгт+КоличествоЗаявок+Количество;          
    КонецЦикла;    
    Если КоличествоИтого <= 5  Тогда
0
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
25.12.2015, 10:08  [ТС] 19
Xomych, дак не работает это условие
1C
1
2
3
4
5
6
7
8
9
Пока Результат.Следующий() Цикл            
        КоличествоЗаявок=Результат.Количество;
        КоличествоИтого=КоличествоЛгт+КоличествоЗаявок+Количество;            
        
        Если КоличествоИтого < КоличествоЗ или КоличествоИтого = КоличествоЗ Тогда          
            
            Движение = Движения.СтатусЗаявок.Добавить();
            Движение.Период = НачалоДня(Дата);
            Движение.ДатаЗаявки=НачалоДня(Дата);
Добавлено через 30 секунд
КоличествоЗ =5
0
852 / 651 / 111
Регистрация: 01.11.2012
Сообщений: 2,403
25.12.2015, 10:16 20
Цитата Сообщение от Ermak27 Посмотреть сообщение
Xomych, дак не работает это условие
Есесьно не работает раз в цикл не заходит, я тебе выше написал как сделать. Или весь текст давай, а то не понятно чего ты добиться хочешь
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.12.2015, 10:16

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Суммировать количество одинаковых строк
Добрый день, Уважаемые! Нужна помощь!!! Как автоматизировать редактирование таблицы excel (окала...

Суммировать значения 1 столбца таблицы (количество)
У меня есть акцесс (база) и уже более-менее реализвоано в билдере. При желании могу скинуть. Мне...

Обновить (суммировать данные) Stringgrid определенное количество раз
Приветствую!:yes: Случайным образом (рандомно) моргают (меняют цвет) буквы А и В, когда...

Суммировать общее количество символов внутри каждого слова
Помогите пожалуйста сделать задание: пользователь вводит несколько слов латинскими буквами....


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.