Добрый день! Учусь в 1С, столкнулся с непониманием и незнанием функционала.
Задача следующая: На форме есть текстовое поле ввода и табличная часть с колонками: Номенклатура, артикул, склад, ОстатокНаСкладе, РозничнаяЦена.
Пользователь вводит в текстовое поле массив артикулов, например: А123, Б432, В567К. Данная строка разбивается на массив по разделителю ",". Далее по этому массиву проводится поиск по справочнику номенклатура и заполняются колонки.
Проблема следующая: Одна и та же номенклатура может находится на нескольких складах, и в табличную часть она выводиться отдельными строками.
Мне же надо в ТЧ сделать группировку по номенклатуре, чтобы выводилась строка с номенклатурой, которую можно было бы развернуть и посмотреть на каких складах она лежит. Как реализовать?

Потуги следующие:

```1c
    &НаСервере
    Процедура ПоказатьНаСервере()
    Массив = Новый Массив;
    Массив = РазложитьСтрокуВМассивПодстрок(Объект.Текст, Символы.ПС);

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

    Объект.Результат.Очистить();

    Для каждого эл из Массив Цикл

    Запрос.УстановитьПараметр("Наименование", эл);

    Результат = Запрос.Выполнить().Выгрузить();

    Для каждого строка из Результат Цикл
    ТЧ = Объект.Результат.Добавить();

    ТЧ.Номенклатура = строка.номенклатура;
    ТЧ.Склад = строка.Склад;
    ТЧ.ВидЦены = строка.ВидЦены;
    ТЧ.ОстатокНаСкладе = строка.Остаток;
    ТЧ.Стоимость = строка.Цена;
    КонецЦикла;
    КонецЦикла;
    КонецПроцедуры
```

Объект.Текст - текстовое поле для ввода
Объект.ВидыЦен - пользователь выбирает вид цен, по которому формируется стоимость
Объект.Результат - табличная часть на форме

P.s. Если видите говнокод, то не стесняйтесь выражать конструктивную критику
---
ТЧ формы такого не может. Посмотрите в эту сторону: https://infostart.ru/public/991409/
По коду, запрос в цикле, который на сервере с высокой степени вероятности вызовет перебор - не есть хорошо. Получите сперва список номенклатур, потом идите в регистры с ними за требуемым результатом. Неужто у вас артикулы только в наименовании?
---
Нет, так делать не надо. Надо примерно так.
---
ТЧ формы такого не может. Посмотрите в эту сторону: https://infostart.ru/public/991409/
По коду, запрос в цикле, который на сервере с высокой степени вероятности вызовет перебор - не есть хорошо. Получите сперва список номенклатур, потом идите в регистры с ними за требуемым результатом. Неужто у вас артикулы только в наименовании?
---
Спасибо за ссылку и конструктив. Хотел уточнить на счет запроса. Я правильно понял, что сначала я должен выполнить запрос целиком без этого отбора:

```1c
    Запрос.УстановитьПараметр("Наименование", эл);
```

А уже потом отбирать необходимое в цикле?

Артикулы тоже заведены, но искать по ним нужно только в рамках цифр, без префиксов (Артикулы рода DLU752003BS). Тк они не все заполнены, то пока так. В дальнейшем планируется переделать как раз по артикулам.
---
Нет, так делать не надо. Надо примерно так.
---
Большое спасибо! Буду разбираться!
---
Я промолчу про запрос в цикле.... В ТЧ у вас есть колонка "склад", разбития строк по складам логична. Если необходимо показывать общие остатки на всех складах, но с возможной детализацией до разреза складов., то тут можно где-нибудь на форме создать элемент формы "Декорация" или небольшую ТЧ (склад, количество) и в них отображать наличие на складах, при выборе строки. То есть ткнул на строку, и в этот момент отобразилось детализация по складам. Или Добавить команду на форму, чтоб открывала форму с детализацией по складам, для номенклатуры из выбранной строки. Но повторюсь, если не убирать колонку "склад", то менять ничего не надо.