База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как корректно использовать конструкцию ИТОГИ ПО в запросах 1С 8.3?
- В этой теме 1 ответ, 2 участника, последнее обновление 21 час, 7 минут назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
8 сентября 2026 в 16:16 #38608
ВЫБРАТЬ
ТЗ.Спецификация КАК Спецификация,
ТЗ.Номенклатура КАК Номенклатура,
ТЗ.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
ТЗ.Количество КАК Количество,
ТЗ.МаркаСтали КАК МаркаСтали,
ТЗ.НомерГОСТа КАК НомерГОСТа,
ТЗ.Характеристика КАК Характеристика,
ТЗ.СтатьяКалькуляции КАК СтатьяКалькуляции,
ТЗ.ПрименениеМатериалаРедактирование КАК ПрименениеМатериалаРедактирование
ПОМЕСТИТЬ ВТ_Врем
ИЗ
&ТЗ КАК ТЗ
;////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТ_Врем.Спецификация КАК Спецификация,
ВТ_Врем.Номенклатура КАК Номенклатура,
ВТ_Врем.Номенклатура.нсиКодНСИ КАК КодЕСНСИ,
ВТ_Врем.Номенклатура КАК НаименованиеМатериала,
ВТ_Врем.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
ВТ_Врем.Количество КАК Количество,
ВТ_Врем.МаркаСтали КАК МаркаСтали,
ВТ_Врем.НомерГОСТа КАК НомерГОСТа,
ВТ_Врем.Характеристика КАК Характеристика,
ВТ_Врем.СтатьяКалькуляции КАК СтатьяКалькуляции,
ВТ_Врем.ПрименениеМатериалаРедактирование КАК Примечание
ИЗ
ВТ_Врем КАК ВТ_Врем
ИТОГИ ПО
СтатьяКалькуляции -
8 сентября 2026 в 16:16 #38609
В вашем запросе ошибка в использовании конструкции ИТОГИ ПО без указания всех полей, которые не агрегируются. В 1С запросах при использовании ИТОГИ ПО нужно либо указать все поля, которые не агрегируются, либо использовать агрегатные функции для остальных.
В вашем случае вы хотите сгруппировать по СтатьяКалькуляции, но при этом выбираете много полей без агрегатных функций. Это вызовет ошибку.
Если нужно получить итог по СтатьяКалькуляции, то нужно либо:
1. Указать в ИТОГИ ПО все поля, которые есть в выборке, например:
|ИТОГИ ПО
| ВТ_Врем.Спецификация,
| ВТ_Врем.Номенклатура,
| ВТ_Врем.Номенклатура.нсиКодНСИ,
| ВТ_Врем.ЕдиницаИзмерения,
| ВТ_Врем.МаркаСтали,
| ВТ_Врем.НомерГОСТа,
| ВТ_Врем.Характеристика,
| ВТ_Врем.СтатьяКалькуляции,
| ВТ_Врем.ПрименениеМатериалаРедактированиеНо тогда итогов по СтатьяКалькуляции не будет, а будет группировка по всем этим полям.
2. Либо использовать агрегатные функции для остальных полей, например, если нужно суммировать Количество, а остальные поля взять по минимальному или максимальному значению, например:
|ВЫБРАТЬ
| ВТ_Врем.СтатьяКалькуляции КАК СтатьяКалькуляции,
| МАКСИМУМ(ВТ_Врем.Спецификация) КАК Спецификация,
| МАКСИМУМ(ВТ_Врем.Номенклатура) КАК Номенклатура,
| МАКСИМУМ(ВТ_Врем.Номенклатура.нсиКодНСИ) КАК КодЕСНСИ,
| МАКСИМУМ(ВТ_Врем.ЕдиницаИзмерения) КАК ЕдиницаИзмерения,
| СУММА(ВТ_Врем.Количество) КАК Количество,
| МАКСИМУМ(ВТ_Врем.МаркаСтали) КАК МаркаСтали,
| МАКСИМУМ(ВТ_Врем.НомерГОСТа) КАК НомерГОСТа,
| МАКСИМУМ(ВТ_Врем.Характеристика) КАК Характеристика,
| МАКСИМУМ(ВТ_Врем.ПрименениеМатериалаРедактирование) КАК Примечание
|ИЗ
| ВТ_Врем КАК ВТ_Врем
|СГРУППИРОВАТЬ ПО
| ВТ_Врем.СтатьяКалькуляцииЕсли нужно именно итог по СтатьяКалькуляции с суммированием Количества, то второй вариант предпочтительнее.
Если же нужно просто получить уникальные СтатьяКалькуляции, то можно сделать отдельный запрос:
|ВЫБРАТЬ
| ВТ_Врем.СтатьяКалькуляции
|ИЗ
| ВТ_Врем КАК ВТ_Врем
|СГРУППИРОВАТЬ ПО
| ВТ_Врем.СтатьяКалькуляцииИли использовать ИТОГИ ПО с минимальным набором полей.
—
В вашем случае, чтобы исправить запрос, замените ИТОГИ ПО на СГРУППИРОВАТЬ ПО и используйте агрегатные функции для остальных полей.
Пример исправленного запроса:
|ВЫБРАТЬ
| ВТ_Врем.СтатьяКалькуляции КАК СтатьяКалькуляции,
| СУММА(ВТ_Врем.Количество) КАК Количество
|ИЗ
| ВТ_Врем КАК ВТ_Врем
|СГРУППИРОВАТЬ ПО
| ВТ_Врем.СтатьяКалькуляцииЕсли нужны другие поля — добавьте их с агрегатными функциями.
—
Если хотите искать по нескольким полям в ТаблицеЗначений, то для поиска строк используйте метод НайтиСтроки с передачей структуры с нужными значениями, либо используйте запрос с временной таблицей, как в примерах из источников.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.