Запрорс, доработка

Внимание! Тема закрыта. Добавлять сообщения в закрытую тему запрещено.
1. Rasten 24 23.03.15 11:15 Сейчас в теме
Добрый день, прошу помощи разобраться с запросом, чувствую разгатка где-то рядом нужен свежий взгяд. (8.2.19.106) Конфигурация от Раруса для МФО (1.0.20.1)

Нужно в печатную форму вывести сумму значений из табличной части, это реализованно в одном макете так:
Запрос.Текст = "ВЫБРАТЬ
               |       мфоДоговорыКонтрагентов.Ссылка,
               |       СУММА(ЕСТЬNULL(мфоВыдачаЗаймаГрафикПлатежей.СуммаПроценты, 0)) КАК СуммаПроценты,
               |ИЗ
               |       Справочник.мфоДоговорыКонтрагентов КАК мфоДоговорыКонтрагентов
               |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.мфоВыдачаЗайма.ГрафикПлатежей КАК мфоВыдачаЗаймаГрафикПлатежей
               |        ПО мфоДоговорыКонтрагентов.ДокументОснование = мфоВыдачаЗаймаГрафикПлатежей.Ссылка
               |ГДЕ
               |       (мфоДоговорыКонтрагентов.Ссылка В (&МассивОбъектов)
               |	ИЛИ мфоДоговорыКонтрагентов.ДокументОснование В (&МассивОбъектов))
               |
               |СГРУППИРОВАТЬ ПО
               |	мфоДоговорыКонтрагентов.Ссылка

Показать
все работает
Запрос.Текст = "ВЫБРАТЬ
	|мфоОбеспечениеЗайма.Ссылка КАК Ссылка,
        |СУММА(ЕСТЬNULL(мфоВыдачаЗаймаГрафикПлатежей.СуммаПроценты, 0)) КАК СуммаПроценты,
        |ИЗ
	|	Документ.мфоОбеспечениеЗайма КАК мфоОбеспечениеЗайма
	|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.мфоВыдачаЗайма.ГрафикПлатежей КАК мфоВыдачаЗаймаГрафикПлатежей
	|		ПО мфоОбеспечениеЗайма.Ссылка.ДокументОснование = мфоВыдачаЗаймаГрафикПлатежей.Ссылка
        |ГДЕ
	|	мфоОбеспечениеЗайма.Ссылка В(&МассивОбъектов)
	|	И ТЧЗаемщик.ВидОбеспечения <> ЗНАЧЕНИЕ(Перечисление.мфоВидыОбеспечения.Поручительство)
	|
	|УПОРЯДОЧИТЬ ПО
	|	Ссылка
	|ИТОГИ
	|	МАКСИМУМ(СуммаПроценты)
	|ПО
	|	Ссылка";



Показать
ругается {(2, 2)}: Поле не входит в группу "мфоОбеспечениеЗайма.Ссылка"
<<?>>мфоОбеспечениеЗайма.Ссылка КАК Ссылка,


Помогите пожалуйста, понимаю, что проблема в написании запроса, как вывести данные именно из второго варианта? Спаисбо
Вознаграждение за ответ
Показать полностью
Найденные решения
5. AlexO 135 23.03.15 11:53 Сейчас в теме
(4) cheiser1982, это "ПО" относится к ИТОГИ. Не путайте человека - по вашему совету смысл ИТОГИ меняется.
(1) Rasten, если вставили агрегатную функцию
СУММА()
, то в 1С вы должны по всем остальным полям:
- либо использовать агрегатные функции
- либо сделать СГРУППИРОВАТЬ по этим полям
(3) Tiger86,
и еще, группировку забыли
Группировку забыл, но СГРУППИРОВАТЬ - это только часть решения.
Полное решение - выше.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. cheiser1982 230 23.03.15 11:38 Сейчас в теме
(1) Rasten,
    |ИТОГИ
    |    МАКСИМУМ(СуммаПроценты)
    |СГРУППИРОВАТЬ ПО
    |    Ссылка";

Перед "ПО" слово "СГРУППИРОВАТЬ" пропущено
5. AlexO 135 23.03.15 11:53 Сейчас в теме
(4) cheiser1982, это "ПО" относится к ИТОГИ. Не путайте человека - по вашему совету смысл ИТОГИ меняется.
(1) Rasten, если вставили агрегатную функцию
СУММА()
, то в 1С вы должны по всем остальным полям:
- либо использовать агрегатные функции
- либо сделать СГРУППИРОВАТЬ по этим полям
(3) Tiger86,
и еще, группировку забыли
Группировку забыл, но СГРУППИРОВАТЬ - это только часть решения.
Полное решение - выше.
6. AlexO 135 23.03.15 11:54 Сейчас в теме
(4) cheiser1982, ИТОГИ и СГРУППИРОВАТЬ - это разные инструкции запроса, хотя и используют оба конструкцию "ПО".
7. Rasten 24 23.03.15 12:03 Сейчас в теме
(6) AlexO, если все убрать оставить только зарос процентов то все работает

Запрос.Текст = "ВЫБРАТЬ
	|	мфоОбеспечениеЗайма.Ссылка КАК Ссылка,
	|	СУММА(ЕСТЬNULL(мфоВыдачаЗаймаГрафикПлатежей.СуммаПроценты, 0)) КАК СуммаПроценты
	|ИЗ
	|	Документ.мфоОбеспечениеЗайма КАК мфоОбеспечениеЗайма
	|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.мфоВыдачаЗайма.ГрафикПлатежей КАК мфоВыдачаЗаймаГрафикПлатежей
	|		ПО мфоОбеспечениеЗайма.Ссылка.ДокументОснование = мфоВыдачаЗаймаГрафикПлатежей.Ссылка
			ПО мфоОбеспечениеЗайма.ДокументОснование.Контрагент.ФизЛицо = ДокументыФизическихЛицСрезПоследних.Физлицо
	|ГДЕ
	|	(мфоОбеспечениеЗайма.Ссылка В(&МассивОбъектов)
    |  	ИЛИ мфоОбеспечениеЗайма.Ссылка.ДокументОснование В (&МассивОбъектов))
	|СГРУППИРОВАТЬ ПО
	|	мфоОбеспечениеЗайма.Ссылка" ;
Показать


Как тогда проще выйти из ситуации? в целом запрос большой,а использует агрегартую функцию только в одной строке.
8. AlexO 135 23.03.15 12:12 Сейчас в теме
(7) Rasten, СГРУППИРОВАТЬ - суммирует (или МАКСИМУМ, или МИНИМУМ, или прочие агрегатные функции) по всем полям результата запроса. И применяется либо ко всем полям, либо - ни к одному. Нельзя в 1С у одного поля поставить "СУММА()", а остальные - оставить без агрегатных функций или СГРУППИРОВАТЬ ПО.
Если вам нужно просуммировать что-то и получить более общий результат по полученным записям (из нескольких записей "одного набора" - сделать одну суммарную, и так просуммировать по всем наборам и вывести итоговые записи по наборам) - суммируйте.
ИТОГИ - это итоги (окончательная сумма результата, едиснтвенная запись) по указанным колонкам. Нужно - используйте.
Вы определитесь, что вам нужно для получения решения.
15. Denic_01 47 23.03.15 14:28 Сейчас в теме
(8) AlexO, ИТОГИ - это итоги (окончательная сумма результата, едиснтвенная запись) по указанным колонкам. Нужно - используйте.

ваша неправда - вы с "Общими итогами" путаете,
это не едиснтвенная запись
просто Итоги - сгруппирует по полю |мфоОбеспечениеЗайма.Ссылка КАК Ссылка,

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

далее эти строки можно получить как то так
РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Ссылка");

весьма удобно, кстати
9. AlexO 135 23.03.15 12:15 Сейчас в теме
(7) Rasten,
а использует агрегартую функцию
Начните с того - что вы получаете в качестве "сырого" результата, и что хотите получить в конечном итоге.
Прямо распишите для себя записи (сделайте таблицу-модель получаемых данных), и что - хотите видеть окончательно.
12. Rasten 24 23.03.15 12:52 Сейчас в теме
(9) AlexO, запрос рабочий, Проблема ввыводе процентов, т.к. это сумма значений табличной части. Есть ли аналог СУММА()", чтобы не перестраивать запрос под "СГРУППИРОВАТЬ"?
13. Tiger86 23.03.15 13:52 Сейчас в теме
(12) Rasten, можно использовать пакетный запрос, внутри пакетов выполнять определенные действия, а потом делать результирующий запрос. Почитайте про пакетные запросы.
10. Rasten 24 23.03.15 12:18 Сейчас в теме
(6) AlexO, если все убрать оставить только зарос процентов то все работает

Запрос.Текст = "ВЫБРАТЬ
	|	мфоОбеспечениеЗайма.Ссылка КАК Ссылка,
	|	СУММА(ЕСТЬNULL(мфоВыдачаЗаймаГрафикПлатежей.СуммаПроценты, 0)) КАК СуммаПроценты
	|ИЗ
	|	Документ.мфоОбеспечениеЗайма КАК мфоОбеспечениеЗайма
	|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.мфоВыдачаЗайма.ГрафикПлатежей КАК мфоВыдачаЗаймаГрафикПлатежей
	|		ПО мфоОбеспечениеЗайма.Ссылка.ДокументОснование = мфоВыдачаЗаймаГрафикПлатежей.Ссылка
			ПО мфоОбеспечениеЗайма.ДокументОснование.Контрагент.ФизЛицо = ДокументыФизическихЛицСрезПоследних.Физлицо
	|ГДЕ
	|	(мфоОбеспечениеЗайма.Ссылка В(&МассивОбъектов)
    |  	ИЛИ мфоОбеспечениеЗайма.Ссылка.ДокументОснование В (&МассивОбъектов))
	|СГРУППИРОВАТЬ ПО
	|	мфоОбеспечениеЗайма.Ссылка" ;
Показать


Как тогда выйти проще выйти из ситуации? в целом запрос большой использует агрегартую функцию, только в одной строке.
11. cheiser1982 230 23.03.15 12:38 Сейчас в теме
(6) AlexO, да, прошу прощения, запутался...
2. Tiger86 23.03.15 11:20 Сейчас в теме
а вы не пробовали в конструкторе создавать запросы? создавайте заново в конструкторе.
3. Tiger86 23.03.15 11:21 Сейчас в теме
и еще, группировку забыли (именно про это вам ошибка и говорит)
 |СГРУППИРОВАТЬ ПО
               |    мфоДоговорыКонтрагентов.Ссылка
как раз по причине, что руками делаете...
cheiser1982; +1 Ответить
14. Denic_01 47 23.03.15 14:11 Сейчас в теме
|СУММА(ЕСТЬNULL(мфоВыдачаЗаймаГрафикПлатежей.СуммаПроценты, 0)) КАК СуммаПроценты,

вероятно, в такой конструкции Сумма() - лишняя, если используются итоги то сумма тут не используется
может надо написать так

|ЕСТЬNULL(мфоВыдачаЗаймаГрафикПлатежей.СуммаПроценты, 0) КАК СуммаПроценты,
16. Rasten 24 23.03.15 14:53 Сейчас в теме
Передалал в "СГРУППИРОВАТЬ по" все работает всем спасибо.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот