arefaste/1C_Forums huggingface dataset:
Здравствуйте. есть такой момент. у меня есть некий отчет. данные выбираются корректно и всё хорошо. но есть проблема. в данном отчете есть столбцы "Сумма БУ" и "Сумма НУ". Иногда через настройки отключаются вывод строки "Сумма БУ" и выводится "сумма НУ". а теперь момент такой, что в случае если столбец "Сумма БУ" не выводится и Сумма НУ = 0 у меня строка не должна выводиться вообще. как это сделать?
---
В обработчике события ПриКомпоновкеРезультата() разбирать структуру схемы и проверять видимость нужного поля. Если условие выполняется, то добавлять в отбор СуммаНУ <> 0, как предлагают в (2)
---
отбор СуммаНУ <> 0
с привязкой к видимости колонки СуммаБУ?
---
нет, а как сделать привязку к видимости?
---
В обработчике события ПриКомпоновкеРезультата() разбирать структуру схемы и проверять видимость нужного поля. Если условие выполняется, то добавлять в отбор СуммаНУ <> 0, как предлагают в (2)
---
риКомпоновкеРезультата() разбирать структуру схемы и проверять видимость нужного поля. Если условие выполняется, то добавлять в отбор СуммаНУ <> 0, как предлагают в (2) понял. буду пробовать. спасибо.
---
Сообщение было скрыто модератором.
Добрый день, на диаграмме отображаются не правильные значения, кто нибудь может подсказать с чем это связано ?

вот код и скрин:

```1c
    ЭлементыФормы.Диаграмма.Очистить();

    Диаг = ЭлементыФормы.Диаграмма;

    Диаг.Обновление = Ложь;
    Диаг.АвтоТранспонирование = Ложь;

    ПродажиСерия1 = Диаг.УстановитьСерию("Первый");
    ПродажиСерия2 = Диаг.УстановитьСерию("Второй");

    Для каждого стр из Таблица Цикл
    ТочкаДиаграммы = Диаг.УстановитьТочку(стр.ДеньНедели);

    Диаг.УстановитьЗначение(ТочкаДиаграммы, ПродажиСерия1, стр.Количество,,стр.Количество);
    Диаг.УстановитьЗначение(ТочкаДиаграммы, ПродажиСерия2, стр.Количество1,,стр.Количество1);
    КонецЦикла;

    Диаг.АвтоМинимальноеЗначение = Ложь;
    Диаг.АвтоМаксимальноеЗначение = Ложь;

    Диаг.Обновление = Истина;
    Диаг.АвтоТранспонирование = Истина;
    Диаг.Видимость = Истина;
```

Синяя линия правильно показывает а вот красная уже большие значения берет
---
Ну, так по скрину видно, что диаграмма с накоплением. Тип диаграммы правильно задан?
---
Ну, так по скрину видно, что диаграмма с накоплением. Тип диаграммы правильно задан?
---
Блин, Точно! даже не посмотрел ,
Спасибо
Как при нажатии на кнопку "Добавить", передать на форму регистра реквизиты таблицы владельца. К примеру на форме выбраны Организация и Должность, как передать значение этих реквизитов на форму которая открывается при нажатии на кнопку "Добавить"?(Первая форма обычная, вторая управляемая).
---
В обработчиках событий для ДинамическогоСписка, в ПередНачаломДобавления, либо таки нарисовать свою кнопку добавления записи в регистр.
---
В данном случае, либо никак, либо очень через ж.
Обычные формы не умеют взаимодействовать с управляемыми.
Придется создать форму записи, получать эту форму, в ее реквизиты/параметры присваивать нужные значения, затем открывать форму.
---
Спасибо за совет, а как перехватить действие добавления в таком случае?
---
В обработчиках событий для ДинамическогоСписка, в ПередНачаломДобавления, либо таки нарисовать свою кнопку добавления записи в регистр.
---
Спасибо еще раз, а при 2 обычных формах как это реализовывалось бы?
---
Собственно, так же :)
---
Понял спасибо)
---
Сообщение было скрыто модератором.
Необходимо создать таблицу на форме элемента в виде новой вкладки. Данные берутся из табличной части справочника. Делаю в процедуре "ПриСозданииНаСервере". Не заполняется. Но при этом созданная таблица на форме в конфигураторе - заполняется (а мне нужно программно).
---
Ну да, вы таблицу на форму вывели, а про колонки-то забыли) Их тоже необходимо программно добавить
---
https://infostart.ru/public/296433/
https://wiki.programstore.ru/1s-upravlyaemye-formy-programmnoe-sozdanie-tablicy-znachenij-i-dinamicheskogo-spiska-na-forme/
https://helpme1c.ru/tablica-znachenij-v-yazyke-1s-8-v-primerax
---
Я уже гуглил, смотрел. Просто ссылок и я могу накидать. Тем более по этим ссылкам предлагается создать таблицу значений с колонками. У меня она уже существует в справочнике (и колонки и значения), осталось вывести её на форму программным методом. Именно это у меня и не получается.
---
Она существует как объект справочника или как реквизит формы не помещенный на форме.
Если её на форме нет, все равно придется программно рисовать её, создавать колонки, а уже дальше передавать в неё данные из подготовленной таблицы.

Покажите хотя бы в каком виде у вас уже есть эта таблица.
---
Если её на форме нет, все равно придется программно рисовать её, создавать колонки, а уже дальше передавать в неё данные из подготовленной таблицы.

Вот форма элемента справочника. Как видим, таблица уже существует, я просто перетащил её на форму и всё работает, НО!!! мне нужно то же самое сделать программно
---
Ну да, вы таблицу на форму вывели, а про колонки-то забыли) Их тоже необходимо программно добавить
---
Верно. По сути осталось сделать следующее:

```1c
    ИмяДобавляемойКолонки = "ИмяКолонки";
    Колонка = Элементы.Добавить(ИмяДобавляемойКолонки ,Тип("ПолеФормы"), ВодительскоеУдостоверениеТаблица);
    Колонка.Вид = ВидПоляФормы.ПолеВвода;
    Колонка.ПутьКДанным = "ФизическоеЛицо.ВодительскоеУдостоверение."+ИмяДобавляемойКолонки ;
    //ОПЦИИ
    //Колонка.ОтображатьВПодвале=Ложь;
    //Колонка.СписокВыбора.ЗагрузитьЗначения(Материал.Состав.ВыгрузитьКолонку("Номенклатура"));
    //Колонка.РежимВыбораИзСписка = истина;
    //Колонка.Ширина = 20;
    //Колонка.АвтоМаксимальнаяШирина=Ложь;
    //Колонка.РастягиватьПоГоризонтали=Ложь;
```
---
Во вложении универсальные функции по программному созданию элементов и пр. Вам нужно сначала создать таблицу на форме "СоздатьТаблицуФормы", потом создать колонки с помощью функции "СоздатьПолеФормы". В обоих случаях не забываем указывать путь к данным (для таблицы и колонок).
Доброе время суток, имеется обычная форма на которой находится табличное поле в которое выгружается данные из регистра сведений. Так же над табличным полем находится командная панель. Нужно что бы при нажатии на кнопку добавления на командной панели открывалась форма записи в регистр. На данный момент в табличное поле просто добавляется новая строка.
---
Разобрался сам, оказалось у регистра ведений не было формы записи и кнопка добавления просто создавала новую строку в табличное поле.
---
Попробуйте использовать событие ПередНачаломДобавления. В процедуре обработчике события Отказ = Истина и открывайте нужную форму.
---
Разобрался сам, оказалось у регистра ведений не было формы записи и кнопка добавления просто создавала новую строку в табличное поле.
---
То есть это было табличное поле с набором записей, а не табличной поле "в которое выгружается данные из регистра сведений"?
---
Это было табличное поле в которое в которое выгружаются данные из регистра сведений.
---
И процедура выгрузки есть?
---
Вот так загружаю данные из регистра.

```1c
    Процедура ПриОткрытии()
    ТабличноеПолеВредныеФакторы.Отбор.Должность.Установить(Должность);
    ТабличноеПолеВредныеФакторы.Отбор.ПодразделениеОрганизации.Установить(ПодразделениеОрганизации);
    ТабличноеПолеВредныеФакторы.Прочитать();
    КонецПроцедуры;
```
---
Теперь вопрос в другом, как мне передавать реквизиты с основной формы в форму записи регистра? К примеру, на форме у меня есть реквизиты "Подразделение" и "Должность", как мне передать их на форму которая открывается при нажатии на кнопку добавления?
Есть динамический список с запросом

```1c
    ВЫБРАТЬ
    СвязанныеДокументы.Ссылка КАК Регистратор,
    СвязанныеДокументы.Ссылка.Дата КАК РегистраторДата,
    СвязанныеДокументы.Ссылка.Номер КАК РегистраторНомер,
    СвязанныеДокументы.Ссылка.Получатель КАК Получатель,
    СвязанныеДокументы.Ссылка.Статус КАК РегистраторСтатус,
    СвязанныеДокументы.Ссылка.Комментарий КАК Комментарий
    ИЗ
    КритерийОтбора.СвязанныеДокументы(&ДокументОтгрузки) КАК СвязанныеДокументы
    ГДЕ
    СвязанныеДокументы.Ссылка ССЫЛКА Документ.АМ_ОтгрузкаТоваров
```

Как сделать так чтобы в списке отображалась картинка проведен, не проведен,удален.
---
Найти в конфигураторе коллекцию картинок "ПиктограммыЭлементов", и привязать её к таблице (КартинкиСтроки)
Найти в коллекции порядковые индексы необходимых пиктограмм, и в запросе добавить поле, которое будет содержать индекс пиктограммы в зависимости от документа. (ПутьКДаннымКартинкиСтроки)
---
Пример из журнала документов закупки ERP.
---
Найти в конфигураторе коллекцию картинок "ПиктограммыЭлементов", и привязать её к таблице (КартинкиСтроки)
Найти в коллекции порядковые индексы необходимых пиктограмм, и в запросе добавить поле, которое будет содержать индекс пиктограммы в зависимости от документа. (ПутьКДаннымКартинкиСтроки)
---
спасибо все получилось, понял вас, просто думал что есть какой то стандартный вариант
---
Это и есть стандартный. В произвольном динамическом списке, у которого нет основной таблицы - система не знает что ты хочешь выводить, и угадывать твои картинки не может.
---
Пример из журнала документов закупки ERP.
почему не доступно динамическое считывание данных в динамическом списке не могу поставить галочку
---
Программно. В процедуре события "Выбор". Допустим, список называется "ТоварыКОтгрузке", а поле документа - "Регистратор". Тогда:

```1c
    &НаКлиенте
    Процедура ТоварыКОтгрузкеВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
    ТекДокумент = Элементы.ТоварыКОтгрузке.ТекущиеДанные.Регистратор;
    ПоказатьЗначение(, ТекДокумент);
    КонецПроцедуры
```
---
ОсновнаяТаблица - указана?
---
я так понимаю ошибка в том что использую запрос к регистру накоплений

```1c
    ВЫБРАТЬ
    АМ_ТоварыКОтгрузкеОстаткиИОбороты.Получатель КАК Получатель,
    АМ_ТоварыКОтгрузкеОстаткиИОбороты.Регистратор КАК Регистратор,
    АМ_ТоварыКОтгрузкеОстаткиИОбороты.Регистратор.Номер КАК РегистраторНомер,
    АМ_ТоварыКОтгрузкеОстаткиИОбороты.Регистратор.Дата КАК РегистраторДата
    ИЗ
    РегистрНакопления.АМ_ТоварыКОтгрузке.ОстаткиИОбороты(, , Регистратор, , ) КАК АМ_ТоварыКОтгрузкеОстаткиИОбороты
    ГДЕ
    ТИПЗНАЧЕНИЯ(АМ_ТоварыКОтгрузкеОстаткиИОбороты.Регистратор) = ТИП(Документ.АМ_ОтгрузкаТоваров)
    И АМ_ТоварыКОтгрузкеОстаткиИОбороты.ДокументОтгрузки = &ДокументОтгрузки
```

и еще т
---
и еще вопрос а как сделать чтоб при нажатие на строку списка открывался мой документ
---
Программно. В процедуре события "Выбор". Допустим, список называется "ТоварыКОтгрузке", а поле документа - "Регистратор". Тогда:

```1c
    &НаКлиенте
    Процедура ТоварыКОтгрузкеВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
    ТекДокумент = Элементы.ТоварыКОтгрузке.ТекущиеДанные.Регистратор;
    ПоказатьЗначение(, ТекДокумент);
    КонецПроцедуры
```
Как в ERP разобраться почему документ не делает проводок? С чего вообще начать.
---
Так в БУ у нас номенклатура по характеристикам не ведется. Посмотрите свои ОСВ по счетам. Если меняется только характеристика- то бухучету ничего не меняется - поэтому проводок и нет.
---
Какой документ ? Когда не делает ?
---
В данном случае это документ "Сборка товаров", у всех соседних документов делается проводка.
Отчёт себестоимость товаров показывает что себестоимости нет у этой Номенклатура-Характеристика.
Видимо в этом дело? Как сформировать себестоимость?
---
в ERP многие документы формируют проводки при закрытии месяца;
см: Фин. результат и контроллинг - Закрытие месяца -
раздел "Регламентированный учет" пункт - Отражение документов в регл. учете - Подробнее - кнопка [Выполнить отражение]
---
в ERP многие документы формируют проводки при закрытии месяца;
Это если рег задание формирования проводок не настроено. А так можно и из документа сразу сформировать.
---
ну вот я сделал оприходование номенклатуры, теперь у нее есть себестоимость, но проводки по этому документу все-равно не формируются. У соседних документов формируются. Что теперь запускать регламентное задание по перерасчету себестоимости?
---
статус какой стоит? Собрано/разобрано?
---
разобрано
---
Если у вас в сборке меняется только характеристика , то проводок и не будет.
---
точно, меняется только характеристика. Расскажите поподробней почему не должно быть проводок.
---
Так в БУ у нас номенклатура по характеристикам не ведется. Посмотрите свои ОСВ по счетам. Если меняется только характеристика- то бухучету ничего не меняется - поэтому проводок и нет.
Здравствуйте. делаю один отчет. появилась проблема. у меня имеется несколько группировок. и суть в том что ресурсы выводятся в той группировке, где это не требуется. в отчете "Рассчитывать по.." ставил нужную группировку, но к результату это не привело. всё равно выводится в лишних. у меня имеется группировка продукция. в её разрезе должен выводиться ресурс база распределения, в другой группировке "Статья затрат" сумма повторяться не должна. как убрать это? я не знаю...подскажите кто-нибудь. на скрине попытался показать где выделено овалом там всё норм. а где зачёркнуто там мне эти ресурсы не нужны. там должны быть пустые строки.
---
в ресурсах добавить с выражением 0 для в "рассчитывать по " для статьи затрат
---
в ресурсах добавить с выражением 0 для в "рассчитывать по " для статьи затрат
---
сделал но всё без изменений...
---
Ресурсы.БазаРаспределения
0
СтатьяЗатрат
---
спасибо. добавил ресурс написал там выражение ВЫБОР КОГДА ВычислитьВыражение("Сумма(Ресурсы.БазаРаспределения)", "СтатьяЗатрат") = 0 ТОГДА 0 Конец и всё стало красиво.
---
Можно было просто для группировки статья затрат, нужного ресурса, поставить выражение 0.
---
не совсем понял. где это сделать?
---
я вам написал все значения полей для последней картинки.
---
Добавляя поля на вкладке ресурсы. Их можно добавить несколько раз (для разных группировок).
Для одной группировки оставляете в выражение сумма, а для остальных (где не нужно) пишете в выражение 0. И тогда по данному ресурсу указанных группировках будет выводится 0.
---
всё) теперь понял. сделал так и тоже всё отлично. спасибо.
---
что-то я видимо утратил навык донесения информации. правильный (уже не знаю куда проще) ответ в (6)
Коллеги, добрый день!
Происходит что то странное.
Получаю выборку из запроса, стандартным способом, делаю обход по ней:

```1c
    РезультатЗапроса = Запрос.Выполнить();
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
```

В результате запроса есть 2 строки, я их вижу и когда количество строк получаю. И в выгрузке.
Но, когда я иду отладчиком у меня почему то проходит только один раз и сразу на вторую строку.
Причем пару раз было так, что сначала попадает на первую, а потом на вторую в одном же цикле обхода..
---
Конечно. Отладчик выполняет ровно то же самое действие, что и весь код. В результате данное действие выполняется два раза.
 Уберите "Следующий()" из табло. Оставьте просто "ВыборкаДетальныхЗаписей.Сотрудник"
---
переоткрыть конфигуратор, перезапустить предприятие, проверить результат ) может кеш, а может не обновленная бд
---
Этот код он в регламентном задании, уже давно все обновили переобновили. Этому коду уже год наверное. Просто очень редко в выборке 2 записи, так и работало наверное раньше.
---
тогда только текст запроса может как-то прояснить ситуацию
---
Запрос банальнейший в 3 строки:

```1c
    ВЫБРАТЬ
    ДокументУвольнение.Сотрудник
    ИЗ
    Документ.УвольнениеСотрудника КАК ДокументУвольнение
    ГДЕ
    НАЧАЛОПЕРИОДА(ДокументУвольнение.Дата, ДЕНЬ) = &Дата";
```

Код почему то не вставляется.
Если я это все выгружаю в ТЗ, то все ок, отрабатывает 2 раза.
---
НАЧАЛОПЕРИОДА(ДокументУвольнение.Дата, ДЕНЬ) = &Дата

Я бы для гарантии использовал

```1c
    НАЧАЛОПЕРИОДА(ДокументУвольнение.Дата, ДЕНЬ) = НАЧАЛОПЕРИОДА(&Дата, ДЕНЬ)
```

Это так, заметка на полях.
---
Вы еще предложите вместо

```1c
    ДокументУвольнение.Сотрудник
```

использовать
ДокументУвольнение.Сотрудник.Ссылка.Ссылка
Ну так, для гарантии.
---
можно всю процедуру целиком ? с параметрами, с циклом.
---
В табло отладчика посмотрите, там скорее всего есть строка ВыборкаДетальныеЗаписи.Следующий() которая разумеется выполняется передвигая выборку
---
Да, я сначала получаю выборку, потом ее двигаю, но если в запросе 2 строки, то по идее 2 раза должен цикл пробежать? Я даже просто выводила сообщение, выводится 1 раз!
Причем если выгружаю в ТЗ, то все ок, отрабатывает 2 раза.
---
В самом цикле ничего такого нет, что сподвигло бы перескочить?
---
Я вообще оставила 1 строку по выводу сообщения.
---
Может в табло отладки присутствует выражение "ВыборкаДетальныеЗаписи.Следующий()"? Так или иначе где-то в процессе указатель (курсор, кто как называет) двигается по набору (выборке) не тогда, когда должен.
---
Точно. Это сам отладчик же и передвигает, если нажать на кнопку "Рассчитать". Но это только при условии использования отладчика.
---
В табло да, есть. А это может влиять?
---
Конечно. Отладчик выполняет ровно то же самое действие, что и весь код. В результате данное действие выполняется два раза.
 Уберите "Следующий()" из табло. Оставьте просто "ВыборкаДетальныхЗаписей.Сотрудник"
Всем, привет. Народ помогите совсем новичку. Буду благодарен за любую подсказку в правильном направлении. Суть есть документ очень простой с тремя столбцами Предмет, Количество Часов, Сумма. Есть кнопка Сформировать расчётный листок и Поле для заполнения учителя. Выбираем Учителя и нажимаем кнопку. Документ должен заполниться данными по конкретному Учителю. Есть Регист Накопления в котором Измерения - Учитель и Предмет, а ресурс - Количество Часов и Сумма. Вот из регистра предполагается подтягивать данные. Ума хватило только создать процедуры на Клиенте и на Сервере. Дальше с кодом затык. Сразу шапками не закидывайте))
---
Попробуйте начать с "Конструктора запроса с обработкой результата", а дальше код подкорректируете.
---
КоличествоЧасовОборот переименовать КоличествоЧасов и СуммаОборот в Сумма в запросе. Эти имена должны совпадать с именами колонок в табличной части.
---
Попробуйте начать с "Конструктора запроса с обработкой результата", а дальше код подкорректируете.
---
Только логика у вашей конфы какая то странная: если есть регистр накоплений в котором все данные уже есть, зачем делать документ, а не отчет с расчетными листками?
---
Да это моя логика)). Учусь, пробую, решаю. Спасибо, за ответ выше, буду пробовать.
---
Скорее у вас регистр сведений.

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

    КонецПроцедуры

    &НаКлиенте
    Процедура СформироватьРасчетныйЛисток(Команда)
    СформироватьРасчетныйЛистокНаСервере(Объект.Учитель);
    КонецПроцедуры
```
---
Почему вы так решили, что РС? Вполне себе нормальный и правильный регистр накопления должен быть. Просто логика у автора извращенная. Документ должен формироваться независимо от регистра и двигать этот регистр в качестве регистратора.
А то, что автор называет "документом" - надо делать отчетом, конечно.
---
Не спорю, на данном этапе логика хромает
---
*| РегистрСведений1.КоличествоЧасов КАК КоличествоЧасов,
---
Практически получилось. Документ заполнился, только количество часов и сумма не проставляются. Движение по регистру идёт, типы данных совпадают.
---
Вот такой запрос получился в модуле
---
КоличествоЧасовОборот переименовать КоличествоЧасов и СуммаОборот в Сумма в запросе. Эти имена должны совпадать с именами колонок в табличной части.
---
Всем, спасибо большое. Результат достигнут
Доброго времени суток!
Пытаюсь сделать отчет следующего вида

Аналоги номенклатуры реализованы следующим образом, есть периодический регистр сведений, где в качестве измерения "Номенклатура", а в качестве ресурса "КластерАналогов" (это просто справочник без реквизитов).
Записи следующего вида определяют, что номенклатуры являются взаимозаменяемыми.
1. Номенклатура1 - Кластер1
2. Аналог1 - Кластер1
3. Аналог2 - Кластер1

С помощью такого запроса я получаю выборку каждой номенклатуры с каждым аналогом

```1c
    ВЫБРАТЬ
    КластерНоменклатуры.Номенклатура КАК Номенклатура,
    СоставКластераАналогов.Номенклатура КАК Аналог
    ИЗ
    РегистрСведений.СоставКластераАналогов.СрезПоследних(&Период, ) КАК КластерНоменклатуры
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СоставКластераАналогов.СрезПоследних(&Период, ) КАК СоставКластераАналогов
    ПО КластерНоменклатуры.КластерАналогов = СоставКластераАналогов.КластерАналогов
    И КластерНоменклатуры.Номенклатура <> СоставКластераАналогов.Номенклатура
```

Вопрос, как реализовать отчет как на скрине выше?
---
прикрепил схему скд, обратите внимание на выражение ресурсов, там вся магия.
Запрос переписать под себе, у меня для примера все поля строковые были. Думаю разберетесь
---
основной таблицей пусть будет справочник Номенклатура, соединением из регистра получите аналоги для каждой позиции
---
для меня не проблема получить аналог для номенклатуры, выше запрос. Проблема получить остатки и привести всё к виду как на скрине
---
Я так понял в отчете будет не одна номенклатура и её аналоги, а несколько номенклатур и их аналоги? Получается аналог сам может быть номенклатурой со своим списком аналогов?
---
Всё верно, это я и пытался показать в таблице
---
Сообщение было скрыто модератором.
---
Вот так вы хотели?
---
Да, как так сделать?)
---
прикрепил схему скд, обратите внимание на выражение ресурсов, там вся магия.
Запрос переписать под себе, у меня для примера все поля строковые были. Думаю разберетесь
---
Спасибо большое, то что нужно, и оказалось всё не так сложно
---
Пожалуйста, рад был помочь:)
---
самый простой способ, который видится, это:
1) Из условия соединения таблиц убрать неравенство номенклатур.
2) Вместо номенклатур использовать в отчете их представления типа

```1c
    ВЫБОР
    КОГДА ВТ.НоменклатураКластера <> СоставКластера.Номенклатура
    ТОГДА "
    ИНАЧЕ ВТ.НоменклатураКластера
    КОНЕЦ КАК НоменклатураКластера
    3) Ввести поле порядка и дополнительно упорядочивать по нему
    ВЫБОР
    КОГДА ВТ.НоменклатураКластера = СоставКластера.Номенклатура
    ТОГДА 0
    ИНАЧЕ 1
    КОНЕЦ КАК ПорядокСходства
```

получается результат как на картинке
---
Вариант тоже не плохой, но заказчик хочет отчёт именно как я указал