СКД строковое поле в группировке

1. Raskad 10 20.04.21 11:59 Сейчас в теме
Здравствуйте.
А давно у нас СКД строковые поля, если они стоят в группировке, сворачивает по "МАКСИМУМ", а не выводит каждую как положено?
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
8. SlavaKron 21.04.21 07:06 Сейчас в теме +0.1 $m
(7)
попытайтесь объяснить разные результаты.
Результаты я уже объяснял в (6). Не защищаю оптимизатор СКД, но примите это как факт, если у поля в роли не указано "Обязательное" и оно не участвует в структуре, это поле будет удалено из запроса макета компоновки. В отладке или консоли СКД можете посмотреть как выглядит результирующий запрос.
Прикрепленные файлы:
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. SlavaKron 20.04.21 12:36 Сейчас в теме
(1) Только если оно добавлено в ресурсы с Максимум в выражении.
3. Raskad 10 20.04.21 14:40 Сейчас в теме
ВЫБРАТЬ
	ХозрасчетныйОборотыДтКт.Организация КАК Организация,
	ПОДСТРОКА(ДоговорыКонтрагентов.Наименование, 1, 3) КАК Направление,
	ХозрасчетныйОборотыДтКт.Регистратор КАК Регистратор,
	ХозрасчетныйОборотыДтКт.СуммаОборот КАК Выручка,
	0 КАК Затраты,
	ХозрасчетныйОборотыДтКт.СуммаОборот КАК ТорговаяНаценка
ПОМЕСТИТЬ ВТ_Обороты
ИЗ
	РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&ДатаНачала, &ДатаОкончания, Регистратор, СчетДт В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыСПокупателямиИЗаказчиками)), , СчетКт В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Продажи)), , ) КАК ХозрасчетныйОборотыДтКт
		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
		ПО ХозрасчетныйОборотыДтКт.СубконтоДт2 = ДоговорыКонтрагентов.Ссылка

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ХозрасчетныйОборотыДтКт.Организация,
	"",
	ХозрасчетныйОборотыДтКт.Регистратор,
	0,
	ХозрасчетныйОборотыДтКт.СуммаОборот,
	-ХозрасчетныйОборотыДтКт.СуммаОборот
ИЗ
	РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&ДатаНачала, &ДатаОкончания, Регистратор, СчетДт В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.СебестоимостьПродаж)), , , , ) КАК ХозрасчетныйОборотыДтКт
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТ_Обороты.Организация КАК Организация,
	МАКСИМУМ(ВТ_Обороты.Направление) КАК Направление,
	ВТ_Обороты.Регистратор КАК Регистратор,
	СУММА(ВТ_Обороты.Выручка) КАК Выручка,
	СУММА(ВТ_Обороты.Затраты) КАК Затраты,
	СУММА(ВТ_Обороты.ТорговаяНаценка) КАК ТорговаяНаценка
ПОМЕСТИТЬ ВТ_Группировка
ИЗ
	ВТ_Обороты КАК ВТ_Обороты

СГРУППИРОВАТЬ ПО
	ВТ_Обороты.Организация,
	ВТ_Обороты.Регистратор
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТ_Группировка.Организация КАК Организация,
	ВТ_Группировка.Направление КАК Направление,
	СУММА(ВТ_Группировка.Выручка) КАК Выручка,
	СУММА(ВТ_Группировка.Затраты) КАК Затраты,
	СУММА(ВТ_Группировка.ТорговаяНаценка) КАК ТорговаяНаценка
ПОМЕСТИТЬ ВТ_Итоговая
ИЗ
	ВТ_Группировка КАК ВТ_Группировка

СГРУППИРОВАТЬ ПО
	ВТ_Группировка.Организация,
	ВТ_Группировка.Направление
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТ_Итоговая.Организация КАК Организация,
	ВТ_Итоговая.Направление КАК Направление,
	ВТ_Итоговая.Выручка КАК Выручка,
	ВТ_Итоговая.Затраты КАК Затраты,
	ВТ_Итоговая.ТорговаяНаценка КАК ТорговаяНаценка,
	ВЫРАЗИТЬ(ВТ_Итоговая.ТорговаяНаценка / ВТ_Итоговая.Выручка * 100 КАК ЧИСЛО(15, 2)) КАК ПроцентТорговойНаценки
ИЗ
	ВТ_Итоговая КАК ВТ_Итоговая
Показать
4. Raskad 10 20.04.21 14:41 Сейчас в теме
В консоли запросов все ОК. В СКД - тупо по группировке "Направление" берет максимум. В ресурсах только числовые значения.
5. Raskad 10 20.04.21 16:00 Сейчас в теме
Если делать через соединение, а не через объединение - все работает. Это что, группировка строк в одной из временных таблиц запроса неправильно отрабатывает функцию "МАКСИМУМ"? Тогда бы в детальных записях была бы одна строка. Консоль запросов то как надо все возвращает, а эта свинидла не хочет. Интересно, что в детальных записях присутствуют записи с другим значение поля "Направление". Но, когда это поле ставишь в качестве группировки - тупо одну запись выводит СКД, аут.
6. SlavaKron 20.04.21 16:14 Сейчас в теме
Зачем столько ВТ? СКД это всё сама бы посчитала, вам только нужно правильную структуру настроить.
По теме, у вас поле Регистратор СКД удалила из запроса ВТ_Группировка, так как оно нигде не используется.
Для примера, отчет СКД с таким запросом по умолчанию выведет только одну строку "В":
ВЫБРАТЬ
	1 КАК Число,
	"А" КАК Буква
ПОМЕСТИТЬ ВТ1

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	2,
	"Б"

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	3,
	"В"
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТ1.Число КАК Число,
	МАКСИМУМ(ВТ1.Буква) КАК Буква
ПОМЕСТИТЬ ВТ2
ИЗ
	ВТ1 КАК ВТ1

СГРУППИРОВАТЬ ПО
	ВТ1.Число
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТ2.Буква КАК Буква
ИЗ
	ВТ2 КАК ВТ2
Показать
7. Raskad 10 20.04.21 23:35 Сейчас в теме
Еще раз, поле группировки у всех записей - уникальное, следовательно суммируемое поле должно остаться таким, какое оно на входе, а не превратиться в "максимум" при двух уникальных значениях поля группировки. Вот этот пример с буквами на СКД. Сформируйте. Потом уберите из "выбранных полей" число, сформируйте и попытайтесь объяснить разные результаты.
Прикрепленные файлы:
ВнешнийОтчет1.erf
8. SlavaKron 21.04.21 07:06 Сейчас в теме +0.1 $m
(7)
попытайтесь объяснить разные результаты.
Результаты я уже объяснял в (6). Не защищаю оптимизатор СКД, но примите это как факт, если у поля в роли не указано "Обязательное" и оно не участвует в структуре, это поле будет удалено из запроса макета компоновки. В отладке или консоли СКД можете посмотреть как выглядит результирующий запрос.
Прикрепленные файлы:
9. Raskad 10 21.04.21 16:12 Сейчас в теме
(8) Факт отвратительный. В очередной раз убеждаюсь, что СКД - это зло. Хорошо хоть в запросе с "левым соединением" он не убирает "Регистратор" из условий связи таблиц.
Оставьте свое сообщение
Вакансии
Программист 1С
Казань
зарплата от 150 000 руб.
Полный день

Программист 1С:ERP
Москва
зарплата от 100 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 200 000 руб. до 300 000 руб.
Полный день

Программист 1С (удаленно)
Самара
зарплата от 230 000 руб. до 230 000 руб.
Полный день

Руководитель группы разработки 1С
Москва
зарплата от 250 000 руб. до 250 000 руб.
Полный день