Имя: Пароль:
1C
1С v8
Вывод через построитель
,
0 Lepochkin
 
25.04.12
17:27
Имеется сложный запрос, который определяет критерии оценки контрагента, по этим критериям нужно вывести показатель данного критерия и количество баллов которое по данному показателю получает клиент. Ну и красиво это дело вывести. Вот так примерно http://s48.radikal.ru/i121/1204/16/2b37b84596dc.jpg Если данные имеют числовой тип то проблемы как бы нет и запросе указываем Итого Сумма(Показать), Сумма(Балл) По Контрагент, Критерий. И все, но показатель может иметь не только числовой тип. Как быть в этом случае? Руками вывод переписывать уж очень не хочется
1 Shurjk
 
25.04.12
17:28
(0) Выводи поля.
2 Lepochkin
 
25.04.12
17:31
Что-то вот не получается...
3 Lepochkin
 
25.04.12
17:35
"ВЫБРАТЬ
   |    Результаты.Контрагент КАК Контрагент,
   |    Результаты.Адрес КАК Адрес,"+СтрокаРезультатаБазовых+"
   |    Результаты.Критерий КАК Критерий,        
   |    Результаты.Порядок КАК Порядок,        
   |    Результаты.АбсолютныйПоказатель КАК АбсолютныйПоказатель,        
   |    Результаты.Показатель КАК Показатель,
   |    КритерииАВС.Балл КАК Балл        
   |ИЗ
   |    (ВЫБРАТЬ
   |        Контрагенты.Ссылка КАК Контрагент,        
   |        Контакты.Адрес КАК Адрес,
   |        ВложенныйЗапрос1.Критерий КАК Критерий,        
   |        ВложенныйЗапрос1.Порядок КАК Порядок,        
   |        ВложенныйЗапрос1.АбсолютныйПоказатель КАК АбсолютныйПоказатель,        
   |        ВложенныйЗапрос1.Показатель КАК Показатель        
   |    ИЗ
   |        Справочник.Контрагенты КАК Контрагенты
   |
   |        ЛЕВОЕ СОЕДИНЕНИЕ
   |        (ВЫБРАТЬ
   |            ПОДСТРОКА(КонтактнаяИнформация.Представление, 0, 500) КАК Адрес,
   |            КонтактнаяИнформация.Объект КАК Объект
   |        ИЗ
   |            РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
   |        ГДЕ
   |            КонтактнаяИнформация.Тип = &Тип
   |            И КонтактнаяИнформация.Вид = &Вид) КАК Контакты
   |        ПО Контрагенты.Ссылка = Контакты.Объект
   |    
   |        ЛЕВОЕ СОЕДИНЕНИЕ
   |            (
   |            // Считаем 1 критерий
   |                
   |            ОБЪЕДИНИТЬ ВСЕ
   |            
   |            ВЫБРАТЬ
   |            // Считаем 2 критерий
   |                
   |            ВЫБРАТЬ
   |            // и т.д.
   |            ) ВложенныйЗапрос1
   |        ПО
   |            ВложенныйЗапрос1.Контрагент = Контрагенты.Ссылка) Результаты            
   |        ЛЕВОЕ СОЕДИНЕНИЕ
   |            РегистрСведений.КритерииАнализаАВС КАК КритерииАВС
   |        ПО    
   |        КритерииАВС.Критерий = Результаты.Критерий    и
   |        (КритерииАВС.НачалоДиопазона<=Результаты.Показатель и КритерииАВС.КонецДиопазона>=Результаты.Показатель
   |         или КритерииАВС.Значение=Результаты.Показатель)
   |        
   |ГДЕ
   |    Результаты.Критерий в (&СписокКритериев)
   |УПОРЯДОЧИТЬ ПО
   |    Порядок,
   |    Контрагент
   |ИТОГИ
   |    СУММА(Балл),
   |    СУММА(Показатель)
   |ПО
   |    Контрагент,
   |    Критерий"
Вот инициализация... Пните где не прав
4 Lepochkin
 
25.04.12
17:45
Я правильно понимаю, что поля которые не стоят в Итогах вывести так как мне нужно нельзя?
5 Lepochkin
 
25.04.12
17:53
Ну дак есть еще предложение как это сделать можно? Уж очень не хочется ручками все это писать
6 Lepochkin
 
26.04.12
08:26
Попробую еще разок спросить... С помощью построителя можно вывести не числовые поля так как мне нужно или вывод все-таки ручками писать придется?
7 Лоботряс
 
26.04.12
08:36
Пользуй СКД
8 Lepochkin
 
26.04.12
08:37
(7)Да уже очень много написал на построителе... переделывать не хочется
9 mikeA
 
26.04.12
10:04
ИТОГИ
 ВЫБОР
   КОГДА ТИПЗНАЧЕНИЯ(Результаты.Показатель) = ТИП(ЧИСЛО)
     ТОГДА СУММА(Результаты.Показатель)
   ИНАЧЕ МАКСИМУМ(Результаты.Показатель)
 КОНЕЦ КАК Показатель
10 Lepochkin
 
26.04.12
13:31
(9) ну сумму все равно ругается... но максимум выручил.