Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
19 апр 2024, 07:20

Кунструкция в запросе.

Автор ferrari314, 23 окт 2015, 11:47

0 Пользователей и 1 гость просматривают эту тему.

ferrari314

Приветствую всех.
Появилась необходимость посчитать количество элементов в запросе со схожими параметрами.
Простой пример:
Есть отчет который выводит все элементы справочника номенклатура.
Нам необходимо добавить колонку, в которой будет отражено количество  элементов номенклатуры, у которых реквизит (к примеру вид) равен реквезиту (вид)  текущего.
Результатом должна быть таблица типа

Номенклатура......Вид...........Схожие
Кирпич............Огнеупорный......2
Камень............Резной.................4

Исходя из которой ясно, что разновидностей огнеупорной номенклатуры у нас 2, а резной 4.
Как реализовать запрос - на этом простом примере?

vitasw

Посчитать количество "Огнеупорный" - не проблема. Непонятно, что выводить в колонке номенклатура... Если оставлять группировку по номенклатуре то получится... см. скрин

ferrari314

КОЛИЧЕСТВО применить - это ясно дело. Применение РАЗЛИЧНЫЕ - тут не дает то что надо (может надо как то иначе применить).
Должно выводиться количество "схожих" элементов.
схожих - значит у которых реквизит равен реквизиту текущего элемента ( в строке которого и пишем количество.

Объяснение по другому:
У нас есть элемент с реквизитом Вид = огнеупорный.
Нужно посчитать все элементы с реквизитом вид = огнеупорный и вывести в колонке количество этих элементов. Для следующего элемента взять все элементы с видом "резной" и вывести в  количество и т. д.


vitasw

Еще раз повторяю: как посчитать количество элементов с одинаковым видом - не проблема. Проблема с колонкой "номенклатура". Что там должно отображаться?

ferrari314

это изначальный элемент.
Мы берем например номенклатуру, добавляем колонку количество схожих.
В колонке номенклатура изначальный список номенклатуры.
Как реализовать в запросе подсчет схожих (равных по параметру)?

vitasw

Я на скрине(во втором сообщении) привел результат отчета - такой варианат подойдет?

Kironten

Почему бы так не сделать?
ВЫБРАТЬ
Номенклатура.Ссылка,
Номенклатура.ВидНоменклатуры КАК ВидНоменклатуры
ПОМЕСТИТЬ ВТНоменклатура
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
НЕ Номенклатура.ЭтоГруппа
И НЕ Номенклатура.ПометкаУдаления

ИНДЕКСИРОВАТЬ ПО
ВидНоменклатуры
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТНоменклатура.ВидНоменклатуры КАК ВидНоменклатуры,
КОЛИЧЕСТВО(ВТНоменклатура.ВидНоменклатуры) КАК Количество
ПОМЕСТИТЬ ВТКоличество
ИЗ
ВТНоменклатура КАК ВТНоменклатура

СГРУППИРОВАТЬ ПО
ВТНоменклатура.ВидНоменклатуры

ИНДЕКСИРОВАТЬ ПО
ВидНоменклатуры
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТНоменклатура.Ссылка,
ВТНоменклатура.ВидНоменклатуры,
ВТКоличество.Количество
ИЗ
ВТНоменклатура КАК ВТНоменклатура
ЛЕВОЕ СОЕДИНЕНИЕ ВТКоличество КАК ВТКоличество
ПО ВТНоменклатура.ВидНоменклатуры = ВТКоличество.ВидНоменклатуры

vitasw

Цитата: Kironten от 23 окт 2015, 15:55Почему бы так не сделать?
Сделать то можно и как один из вариантов реализации применим. Проблема в том, что лично мне, по ТС непонятно, формирование колонки "Номенклатура". У ТС в этой колонке одно и то же значение во всех "схожих" строках, на рабочей базе используя ваш запрос такого в результате точно не будет. И это вызывает у меня предположение, что в качестве номенклатуры, возможно, нужно какое-то обобщенное наименование.

Kironten

Цитата: vitasw от 23 окт 2015, 16:02
У ТС в этой колонке одно и то же значение во всех "схожих" строках
Так ну и что? Коды то разные.
Добавить лишнюю колонку с кодами и различай на здоровье.

Либо, как обычно, мы с вами о разных вещах предполагаем ).

vitasw

:dfbsdfbsdf: Я начинаю сомневаться в своих способностях выражаться русским языком.
Смотрите в справочнике есть 2 элемента с наименованиями: "Кирпич красный", "Кирпич облицовочный". - с одним и тем же видом номенклатуры "Огнеупорный". Используя ваш запрос в результате получим 2 строки:
"Кирпич красный"  "Огнеупорный"  2
"Кирпич облицовочный"  "Огнеупорный"  2

Тогда как ТС, возможно, подчеркиваю возможно, хочет получить одну строку вида
"Кирпич"  "Огнеупорный"  2

Как правило в упр. учете нужно видеть одну строку, а не две. Вот я так нудно и настойчиво пытаюсь определить что же ТСу нужно.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск