Имя: Пароль:
1C
1С v8
Можно ли получить решение одним запросом, насколько я понимаю здесь
0 Ivan_495
 
05.10.17
13:29
Можно ли получить решение одним запросом, насколько я понимаю здесь без функций суммирования ресурсов (скд) не обойтись*
Дано:                                    
РегистрСведений    ЗаказыКонтрагентам                                    
Измерения:                                    
    Контрагент    Справочник                            
    День    Перечисление                            
    Час    Перечисление                            
                                    
Необходимо получить отчет в следующем виде:                                    
Новая строка в таблице должна добавляться только в том случае,                                    
если часы нельзя поместить в уже существующую строку для данного контрагента и дня недели.                                    
Контрагент    пн    вт    ср    чт    пт    сб    вс
ООО "Рога и копыта"    10        10        19        
ООО "Рога и копыта"    12        13                
ООО "Рога и копыта"    17        19                
ООО "Лютики и цветочки"    17    14    15    10    19    13    
ООО "Лютики и цветочки"    19        17                
ООО "Календарики"    10    14        10        15    
ООО "Календарики"        17                    
ООО "Кондиционеры"    17        14    13    19    17    
ООО "Подтяжки"    17        16    19            
ООО "Шоколадки"    17            10            
ООО "Мармеладки"    17            13        10    
ООО "КУКУ"            15    19        13    
ООО "Синичка"            17    15        19    
ООО "Бабочка"                17        15
1 DrShad
 
05.10.17
13:38
а в каком случае их нельзя поместить в уже существующую строку?
2 Ivan_495
 
05.10.17
13:39
если сумма больше 24
3 Лефмихалыч
 
05.10.17
13:42
прямо вот из запроса такой результат вряд ли получишь. Но из СКД, например, за один (пакетный) запрос - не трудно
4 Лефмихалыч
 
05.10.17
13:42
"вряд ли получишь" = с разбегу не вижу способа, а думать глубоко лень
5 DrShad
 
05.10.17
13:45
(2) вторая строка каким хреном появилась?
6 asady
 
05.10.17
13:45
(4) там кроме пакетного запроса нужно ещё поиграться параметрами в СКД - типа правильные закорючки написать в строках с произвольными полями
7 Ненавижу 1С
 
гуру
05.10.17
13:47
(0)

ООО "Рога и копыта"    10        10        19        
ООО "Рога и копыта"    12        13                
ООО "Рога и копыта"    17        19  

В первых двух строках первого столбца 10+12<24, но в разных строках, почему?
8 Лефмихалыч
 
05.10.17
13:49
(6) не суть. Замес в том, что "шахматку" запросом получать - пустые муки, т.к. на СКД это сделать пара пустяков.
9 Михаил Козлов
 
05.10.17
14:00
Непонятно, зачем запросом получать "шахматку".
Можно попробовать 7 полей в запросе (числа по дням недели) и собрать по ним числа. Типа:
ВЫБОР КОГДА День = ЗНАЧЕНИЕ(ПеречислениеДень.ПТ) ТОГДА КОЛВО ИНАЧЕ 0 КОНЕЦ КАК колвоПТ.
10 mistеr
 
05.10.17
14:34
(0) Непонятно, что за цифры в таблице. Объясни толком.
11 fedoss
 
05.10.17
14:41
ВЫБРАТЬ
    Данные.Контрагент КАК Контрагент,
    Данные.День КАК День,
    Данные.Час КАК Час,
    СУММА(1) КАК НомерВГруппе
ИЗ
    РегистрСведений.ЗаказыКонтрагентам КАК Данные
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗаказыКонтрагентам КАК Вспомогательная
        ПО (Данные.Контрагент = Вспомогательная.Контрагент)
            И (Данные.День = Вспомогательная.День)
            И (Данные.Час >= Вспомогательная.Час)

СГРУППИРОВАТЬ ПО
    Данные.Контрагент,
    Данные.День,
    Данные.Час
12 Ivan_495
 
05.10.17
14:46
цифры время заказа
13 Ivan_495
 
05.10.17
14:49
в строку поместить нельзя , если уже есть значение
в пункте (2) ошибка
14 DrShad
 
05.10.17
14:54
в принципе можно
15 Ненавижу 1С
 
гуру
05.10.17
14:55
тогда (11) отличное решение