Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
 
Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,199
1

Объединения в запросе. Получить количество!

21.07.2017, 11:35. Просмотров 464. Ответов 12
Метки нет (Все метки)

Добрый день! Есть три документа Заявки, ЗаявкиГРО, ЗаявкиПрочее. Нужно за период получить общее количество сколько было создано документов. Например: с периода 20072017 по 21072017 в документах Заявки = 2, в ЗаявкиГРО = 1, в ЗаявкиПрочее = 5. В итоге нам нужно получить Количество = 8. Я создал запрос Объединить, в отладчике видно что выводит отдельно количество по каждому документу. Подскажите как исправить.

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
            Запрос = Новый Запрос;
            ТекстЗапрос =   "ВЫБРАТЬ
                            |   ИсторияЗаявкиЕдиноеОкно.ВремяЗаявки КАК ВремяЗаявки,
                            |   КОЛИЧЕСТВО(ИсторияЗаявкиЕдиноеОкно.Статус) КАК Количество,
                            |   ИсторияЗаявкиЕдиноеОкно.ТипУсулги,
                            |   ИсторияЗаявкиЕдиноеОкно.ДатаИсполнения КАК Период,
                            |   ИсторияЗаявкиЕдиноеОкно.Участок
                            |ИЗ
                            |   РегистрСведений.ИсторияЗаявкиЕдиноеОкно КАК ИсторияЗаявкиЕдиноеОкно
                            |ГДЕ
                            |   ИсторияЗаявкиЕдиноеОкно.ТипУсулги = &ТипУсулги
                            |   И ИсторияЗаявкиЕдиноеОкно.Статус = &Количество
                            |   И ИсторияЗаявкиЕдиноеОкно.ВремяЗаявки = &ВремяЗаявки
                            |   И ИсторияЗаявкиЕдиноеОкно.ДатаИсполнения МЕЖДУ &ДатаНач И &ДатаКон
                            |   И ИсторияЗаявкиЕдиноеОкно.Участок = &Участок
                            |
                            |СГРУППИРОВАТЬ ПО
                            |   ИсторияЗаявкиЕдиноеОкно.ВремяЗаявки,
                            |   ИсторияЗаявкиЕдиноеОкно.ТипУсулги,
                            |   ИсторияЗаявкиЕдиноеОкно.ДатаИсполнения,
                            |   ИсторияЗаявкиЕдиноеОкно.Участок
                            |
                            |ОБЪЕДИНИТЬ ВСЕ
                            |
                            |ВЫБРАТЬ
                            |   ИсторияЗаявкиЕдиноеОкноГРО.ВремяЗаявки,
                            |   КОЛИЧЕСТВО(ИсторияЗаявкиЕдиноеОкноГРО.Статус),
                            |   ИсторияЗаявкиЕдиноеОкноГРО.ТипУсулги,
                            |   ИсторияЗаявкиЕдиноеОкноГРО.ДатаИсполнения,
                            |   ИсторияЗаявкиЕдиноеОкноГРО.Участок
                            |ИЗ
                            |   РегистрСведений.ИсторияЗаявкиЕдиноеОкноГРО КАК ИсторияЗаявкиЕдиноеОкноГРО
                            |ГДЕ
                            |   ИсторияЗаявкиЕдиноеОкноГРО.ТипУсулги = &ТипУсулги
                            |   И ИсторияЗаявкиЕдиноеОкноГРО.ВремяЗаявки = &ВремяЗаявки
                            |   И ИсторияЗаявкиЕдиноеОкноГРО.Статус = &Количество
                            |   И ИсторияЗаявкиЕдиноеОкноГРО.ДатаИсполнения МЕЖДУ &ДатаНач И &ДатаКон
                            |   И ИсторияЗаявкиЕдиноеОкноГРО.Участок = &УчастокГРО
                            |
                            |СГРУППИРОВАТЬ ПО
                            |   ИсторияЗаявкиЕдиноеОкноГРО.ВремяЗаявки,
                            |   ИсторияЗаявкиЕдиноеОкноГРО.ТипУсулги,
                            |   ИсторияЗаявкиЕдиноеОкноГРО.ДатаИсполнения,
                            |   ИсторияЗаявкиЕдиноеОкноГРО.Участок
                            |
                            |ОБЪЕДИНИТЬ ВСЕ
                            |
                            |ВЫБРАТЬ
                            |   ИсторияЗаявокЕдиноеОкноПрочее.ВремяЗаявки,
                            |   КОЛИЧЕСТВО(ИсторияЗаявокЕдиноеОкноПрочее.Статус),
                            |   ИсторияЗаявокЕдиноеОкноПрочее.ТипУсулги,
                            |   ИсторияЗаявокЕдиноеОкноПрочее.ДатаИсполнения,
                            |   ИсторияЗаявокЕдиноеОкноПрочее.Участок
                            |ИЗ
                            |   РегистрСведений.ИсторияЗаявокЕдиноеОкноПрочее КАК ИсторияЗаявокЕдиноеОкноПрочее
                            |ГДЕ
                            |   ИсторияЗаявокЕдиноеОкноПрочее.ТипУсулги = &ТипУсулги
                            |   И ИсторияЗаявокЕдиноеОкноПрочее.ВремяЗаявки = &ВремяЗаявки
                            |   И ИсторияЗаявокЕдиноеОкноПрочее.Статус = &Количество
                            |   И ИсторияЗаявокЕдиноеОкноПрочее.ДатаИсполнения МЕЖДУ &ДатаНач И &ДатаКон
                            |   И ИсторияЗаявокЕдиноеОкноПрочее.Участок = &УчастокПрочее
                            |
                            |СГРУППИРОВАТЬ ПО
                            |   ИсторияЗаявокЕдиноеОкноПрочее.ВремяЗаявки,
                            |   ИсторияЗаявокЕдиноеОкноПрочее.ТипУсулги,
                            |   ИсторияЗаявокЕдиноеОкноПрочее.ДатаИсполнения,
                            |   ИсторияЗаявокЕдиноеОкноПрочее.Участок";
 
                                            
            Запрос.УстановитьПараметр("Участок",ЛицевойСчет.Участок);
            Запрос.УстановитьПараметр("УчастокГРО",ЛицевойСчет.Участок);
            Запрос.УстановитьПараметр("УчастокПрочее",Участок);
            Запрос.УстановитьПараметр("ТипУсулги",ТипУслуги);
            Запрос.УстановитьПараметр("Количество",Перечисления.СтатусЕдиноеОкно.Открыта);
            Запрос.УстановитьПараметр("ВремяЗаявки",ВремяЗ);
            Запрос.УстановитьПараметр("ДатаНач",НачалоДня(ДатаТ));
            Запрос.УстановитьПараметр("ДатаКон",КонецДня(ДатаТ));
 
            
            Запрос.Текст=ТекстЗапрос;
            Результат = Запрос.Выполнить().Выбрать();
            КоличествоЗаявок = Неопределено;
 
            Пока Результат.Следующий() Цикл              
                КоличествоЗаявок=Результат.Количество;      
            КонецЦикла;
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.07.2017, 11:35
Ответы с готовыми решениями:

Объединения в запросе
Добрый день! Не понимаю почему отчет пустой, подскажите что не так в запросе "ВЫБРАТЬ...

Объединения в запросе
Подскажите пожалуйста почему выводит 0. Встала такая задача, вывести в макет данные Лицевой счет,...

Как в запросе сделать чтобы количество умножалось на количество?
Запрос.Текст = "ВЫБРАТЬ | РеализацияТоваровУслугТовары.Номенклатура КАК Товар,...

В запросе получить данные
Как из набора записей 1 2 3 4 получить 12 13

Получить ТЧ по ссылке в запросе
Как получить табличную часть по ссылке найденной в запросе? При обычной выборке говорит нельзя...

12
Dethmontt
Модератор
Эксперт 1С
2659 / 2446 / 421
Регистрация: 10.03.2011
Сообщений: 8,756
Записей в блоге: 1
Завершенные тесты: 1
21.07.2017, 20:57 2
Заменить
Цитата Сообщение от Ermak27 Посмотреть сообщение
"ВЫБРАТЬ
* * * * * * * * * * * * * * | * ИсторияЗаявкиЕдиноеОкно.ВремяЗаявки КАК ВремяЗаявки,
* * * * * * * * * * * * * * | * КОЛИЧЕСТВО(ИсторияЗаявкиЕдиноеОкно.Статус) КАК Количество,
* * * * * * * * * * * * * * | * ИсторияЗаявкиЕдиноеОкно.ТипУсулги,
* * * * * * * * * * * * * * | * ИсторияЗаявкиЕдиноеОкно.ДатаИсполнения КАК Период,
* * * * * * * * * * * * * * | * ИсторияЗаявкиЕдиноеОкно.Участок

На
1C
1
ВЫБРАТЬ Количество(ИсторияЗаявкиЕдиноеОкно.Ссылка) КАК Количество
//Повторить это во всех запросах

И заменить
Цитата Сообщение от Ermak27 Посмотреть сообщение
|ОБЪЕДИНИТЬ ВСЕ
на
1C
1
ОБЪЕДИНИТЬ
1
Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,199
24.07.2017, 10:13  [ТС] 3
Dethmontt,
Цитата Сообщение от Dethmontt Посмотреть сообщение
ВЫБРАТЬ Количество(ИсторияЗаявкиЕдиноеОкно.Ссылка) КАК Количество
это нет
0
Миниатюры
Объединения в запросе. Получить количество!  
Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,199
24.07.2017, 10:22  [ТС] 4
Dethmontt, сделал так
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
    ТекстЗапрос =   "ВЫБРАТЬ
                            |   КОЛИЧЕСТВО(ИсторияЗаявкиЕдиноеОкно.Регистратор.Ссылка) КАК Количество
                            |ИЗ
                            |   РегистрСведений.ИсторияЗаявкиЕдиноеОкно КАК ИсторияЗаявкиЕдиноеОкно
                            |ГДЕ
                            |   ИсторияЗаявкиЕдиноеОкно.ТипУсулги = &ТипУсулги
                            |   И ИсторияЗаявкиЕдиноеОкно.Статус = &Количество
                            |   И ИсторияЗаявкиЕдиноеОкно.ВремяЗаявки = &ВремяЗаявки
                            |   И ИсторияЗаявкиЕдиноеОкно.ДатаИсполнения МЕЖДУ &ДатаНач И &ДатаКон
                            |   И ИсторияЗаявкиЕдиноеОкно.Участок = &Участок
                            |
                            |ОБЪЕДИНИТЬ
                            |
                            |ВЫБРАТЬ
                            |   КОЛИЧЕСТВО(ИсторияЗаявкиЕдиноеОкноГРО.Регистратор.Ссылка)
                            |ИЗ
                            |   РегистрСведений.ИсторияЗаявкиЕдиноеОкноГРО КАК ИсторияЗаявкиЕдиноеОкноГРО
                            |ГДЕ
                            |   ИсторияЗаявкиЕдиноеОкноГРО.ТипУсулги = &ТипУсулги
                            |   И ИсторияЗаявкиЕдиноеОкноГРО.ВремяЗаявки = &ВремяЗаявки
                            |   И ИсторияЗаявкиЕдиноеОкноГРО.Статус = &Количество
                            |   И ИсторияЗаявкиЕдиноеОкноГРО.ДатаИсполнения МЕЖДУ &ДатаНач И &ДатаКон
                            |   И ИсторияЗаявкиЕдиноеОкноГРО.Участок = &УчастокГРО
                            |
                            |ОБЪЕДИНИТЬ
                            |
                            |ВЫБРАТЬ
                            |   КОЛИЧЕСТВО(ИсторияЗаявокЕдиноеОкноПрочее.Регистратор.Ссылка)
                            |ИЗ
                            |   РегистрСведений.ИсторияЗаявокЕдиноеОкноПрочее КАК ИсторияЗаявокЕдиноеОкноПрочее
                            |ГДЕ
                            |   ИсторияЗаявокЕдиноеОкноПрочее.ТипУсулги = &ТипУсулги
                            |   И ИсторияЗаявокЕдиноеОкноПрочее.ВремяЗаявки = &ВремяЗаявки
                            |   И ИсторияЗаявокЕдиноеОкноПрочее.Статус = &Количество
                            |   И ИсторияЗаявокЕдиноеОкноПрочее.ДатаИсполнения МЕЖДУ &ДатаНач И &ДатаКон
                            |   И ИсторияЗаявокЕдиноеОкноПрочее.Участок = &УчастокПрочее";
Все равно выводит только последние одного документа.
Количество ИсторияЗаявкиЕдиноеОкноПрочее = 0
Количество ИсторияЗаявкиЕдиноеОкно = 1
Количество ИсторияЗаявкиЕдиноеОкноГРО = 3
Выводит КоличествоЗаявок = 3, а должен вывести = 4
0
StaLL1n
19 / 19 / 4
Регистрация: 13.04.2014
Сообщений: 268
24.07.2017, 10:27 5
ВЫБРАТЬ
1C
1
 Количество(Регистратор.Ссылка) КАК Количество
и в каждом запросе в условии
1C
1
Регистратор ссылка {ТипДокумента}
0
Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,199
24.07.2017, 10:30  [ТС] 6
StaLL1n, не понял. что именно в условии и зачем?
0
StaLL1n
19 / 19 / 4
Регистрация: 13.04.2014
Сообщений: 268
24.07.2017, 10:33 7
Да я бред написал,извиняюсь)Невнимательно посмотрел,думал 1 регистр
0
Dethmontt
Модератор
Эксперт 1С
2659 / 2446 / 421
Регистрация: 10.03.2011
Сообщений: 8,756
Записей в блоге: 1
Завершенные тесты: 1
24.07.2017, 23:19 8
Цитата Сообщение от Ermak27 Посмотреть сообщение
Все равно выводит только последние одного документа.
Количество ИсторияЗаявкиЕдиноеОкноПрочее = 0
Количество ИсторияЗаявкиЕдиноеОкно = 1
Количество ИсторияЗаявкиЕдиноеОкноГРО = 3
Выводит КоличествоЗаявок = 3, а должен вывести = 4
Чего..... Откуда взялись эти Историиииииии
0
Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,199
25.07.2017, 08:32  [ТС] 9
Dethmontt, это количество документов которые были созданы по регистрам
0
Dethmontt
Модератор
Эксперт 1С
2659 / 2446 / 421
Регистрация: 10.03.2011
Сообщений: 8,756
Записей в блоге: 1
Завершенные тесты: 1
25.07.2017, 21:47 10
Цитата Сообщение от Ermak27 Посмотреть сообщение
Нужно за период получить общее количество сколько было создано документов.
.........

Добавлено через 1 минуту
Ermak27, думаю для начала все-таки нужно определиться, что же "нужно"
0
Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,199
26.07.2017, 07:44  [ТС] 11
Dethmontt, нужно получить это количество
1C
1
2
3
4
5
6
7
8
9
 |   КОЛИЧЕСТВО(ИсторияЗаявкиЕдиноеОкно.Регистратор.Ссылка) КАК Количество
                            |ИЗ
                            |   РегистрСведений.ИсторияЗаявкиЕдиноеОкно КАК ИсторияЗаявкиЕдиноеОкно
                            |ГДЕ
                            |   ИсторияЗаявкиЕдиноеОкно.ТипУсулги = &ТипУсулги
                            |   И ИсторияЗаявкиЕдиноеОкно.Статус = &Количество
                            |   И ИсторияЗаявкиЕдиноеОкно.ВремяЗаявки = &ВремяЗаявки
                            |   И ИсторияЗаявкиЕдиноеОкно.ДатаИсполнения МЕЖДУ &ДатаНач И &ДатаКон
                            |   И ИсторияЗаявкиЕдиноеОкно.Участок = &Участок
получить это количество
1C
1
2
3
4
5
6
7
8
9
10
 |ВЫБРАТЬ
                            |   КОЛИЧЕСТВО(ИсторияЗаявкиЕдиноеОкноГРО.Регистратор.Ссылка)
                            |ИЗ
                            |   РегистрСведений.ИсторияЗаявкиЕдиноеОкноГРО КАК ИсторияЗаявкиЕдиноеОкноГРО
                            |ГДЕ
                            |   ИсторияЗаявкиЕдиноеОкноГРО.ТипУсулги = &ТипУсулги
                            |   И ИсторияЗаявкиЕдиноеОкноГРО.ВремяЗаявки = &ВремяЗаявки
                            |   И ИсторияЗаявкиЕдиноеОкноГРО.Статус = &Количество
                            |   И ИсторияЗаявкиЕдиноеОкноГРО.ДатаИсполнения МЕЖДУ &ДатаНач И &ДатаКон
                            |   И ИсторияЗаявкиЕдиноеОкноГРО.Участок = &УчастокГРО
и получить это количество
1C
1
2
3
4
5
6
7
8
9
10
   |ВЫБРАТЬ
                            |   КОЛИЧЕСТВО(ИсторияЗаявокЕдиноеОкноПрочее.Регистратор.Ссылка)
                            |ИЗ
                            |   РегистрСведений.ИсторияЗаявокЕдиноеОкноПрочее КАК ИсторияЗаявокЕдиноеОкноПрочее
                            |ГДЕ
                            |   ИсторияЗаявокЕдиноеОкноПрочее.ТипУсулги = &ТипУсулги
                            |   И ИсторияЗаявокЕдиноеОкноПрочее.ВремяЗаявки = &ВремяЗаявки
                            |   И ИсторияЗаявокЕдиноеОкноПрочее.Статус = &Количество
                            |   И ИсторияЗаявокЕдиноеОкноПрочее.ДатаИсполнения МЕЖДУ &ДатаНач И &ДатаКон
                            |   И ИсторияЗаявокЕдиноеОкноПрочее.Участок = &УчастокПрочее";
все эти количество сложить и получить общее количество, вот что мне нужно получить! Я пытался с делать это в запросе но не получаеться. Подскажите как можно сделать?
0
Yulunga
373 / 267 / 69
Регистрация: 22.04.2013
Сообщений: 1,708
Записей в блоге: 1
Завершенные тесты: 1
01.08.2017, 20:16 12
выбрать из первого запроса, поместить в К1. из второго - в К2, из третьего - в К3.
ну и в обобщающем вывести к1.количество + ... + к3.количество
разве нет ?

Добавлено через 15 секунд
выбрать из первого запроса, поместить в К1. из второго - в К2, из третьего - в К3.
ну и в обобщающем вывести к1.количество + ... + к3.количество
разве нет ?
0
Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,199
02.08.2017, 07:53  [ТС] 13
Yulunga, пробовал не получилось
0
02.08.2017, 07:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.08.2017, 07:53

Получить время из даты в запросе
Всем привет! Подскажите, пожалуйста, делаю отчет (СКД), у меня есть поля ДатаНачала и...

Не могу получить в запросе договор
Добрый день. 1С 8.3. Пишу запрос к документу СписаниеБезналичныхДенежныхСредств. Договор...

Получить AffectedRecords в SQL-запросе типа delete
Пишу в 1С, работаю с MySQL через ADODB А задача очень простая: Если это DELETE FROM ..., то нужно...


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

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

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