Добрый день. Подскажите пожалуйста, элементарный отчёт в СКД. Выбираем Состав.Номенклатура и Состав.Количество. Как сделать, чтобы в печатной форме в одну строку выводило всю номенклатуру и количество? Т.е. чтобы в одной строке перечислялись все номеклатуры и их количество, примерно так: Хлеб - 4, Молоко - 6, творог - 10. Нашёл справку по функции СоединитьСтроки() и в Ресурсах СКД смог объединить номенклатуру в одну строку, но не смог привязать туда количество.
---
да простейшее решение. все просто.
---
Можно прямо в запросе объединить эти поля.
---
Ну-ка, ну-ка? Готов накинуть стартманей за примерчик.
---
я сделал) где мои стартмани?

```1c
    ВЫБРАТЬ
    ЦеныНоменклатурыСрезПоследних.Номенклатура,
    ПОДСТРОКА("0123456789", ЦеныНоменклатурыСрезПоследних.Цена / 10000000 + 1, 1) + ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, ЦеныНоменклатурыСрезПоследних.Цена * 0.000006)) / 6 + 1, 1) + ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, ЦеныНоменклатурыСрезПоследних.Цена * 0.00006)) / 6 + 1, 1) + ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, ЦеныНоменклатурыСрезПоследних.Цена * 0.0006)) / 6 + 1, 1) + ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, ЦеныНоменклатурыСрезПоследних.Цена * 0.006)) / 6 + 1, 1) + ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, ЦеныНоменклатурыСрезПоследних.Цена * 0.06)) / 6 + 1, 1) + ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, ЦеныНоменклатурыСрезПоследних.Цена * 0.6)) / 6 + 1, 1) + ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, ЦеныНоменклатурыСрезПоследних.Цена * 6)) / 6 + 1, 1) + "." + ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, ЦеныНоменклатурыСрезПоследних.Цена * 60)) / 6 + 1, 1) + ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, ЦеныНоменклатурыСрезПоследних.Цена * 600)) / 6 + 1, 1) КАК ЦенаСтрока,
    ЦеныНоменклатурыСрезПоследних.Цена
    ПОМЕСТИТЬ ВРТаб
    ИЗ
    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Лата, ) КАК ЦеныНоменклатурыСрезПоследних
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ВРТаб.Номенклатура,
    ВРТаб.Цена,
    ВЫБОР
    КОГДА НЕ ПОДСТРОКА(ВРТаб.ЦенаСтрока, 1, 1) = "0"
    ТОГДА ПОДСТРОКА(ВРТаб.ЦенаСтрока, 1, 10)
    КОГДА НЕ ПОДСТРОКА(ВРТаб.ЦенаСтрока, 2, 1) = "0"
    ТОГДА ПОДСТРОКА(ВРТаб.ЦенаСтрока, 2, 9)
    КОГДА НЕ ПОДСТРОКА(ВРТаб.ЦенаСтрока, 3, 1) = "0"
    ТОГДА ПОДСТРОКА(ВРТаб.ЦенаСтрока, 3, 8)
    КОГДА НЕ ПОДСТРОКА(ВРТаб.ЦенаСтрока, 4, 1) = "0"
    ТОГДА ПОДСТРОКА(ВРТаб.ЦенаСтрока, 4, 7)
    КОГДА НЕ ПОДСТРОКА(ВРТаб.ЦенаСтрока, 5, 1) = "0"
    ТОГДА ПОДСТРОКА(ВРТаб.ЦенаСтрока, 5, 6)
    КОГДА НЕ ПОДСТРОКА(ВРТаб.ЦенаСтрока, 6, 1) = "0"
    ТОГДА ПОДСТРОКА(ВРТаб.ЦенаСтрока, 6, 5)
    КОГДА НЕ ПОДСТРОКА(ВРТаб.ЦенаСтрока, 7, 1) = "0"
    ТОГДА ПОДСТРОКА(ВРТаб.ЦенаСтрока, 7, 4)
    КОГДА НЕ ПОДСТРОКА(ВРТаб.ЦенаСтрока, 8, 1) = "0"
    ТОГДА ПОДСТРОКА(ВРТаб.ЦенаСтрока, 8, 3)
    КОГДА НЕ ПОДСТРОКА(ВРТаб.ЦенаСтрока, 9, 1) = "0"
    ТОГДА ПОДСТРОКА(ВРТаб.ЦенаСтрока, 9, 2)
    ИНАЧЕ ПОДСТРОКА(ВРТаб.ЦенаСтрока, 10, 1)
    КОНЕЦ КАК ЦенаСтрокой,
    ВРТаб.Номенклатура.Наименование + " " + ВЫБОР
    КОГДА НЕ ПОДСТРОКА(ВРТаб.ЦенаСтрока, 1, 1) = "0"
    ТОГДА ПОДСТРОКА(ВРТаб.ЦенаСтрока, 1, 10)
    КОГДА НЕ ПОДСТРОКА(ВРТаб.ЦенаСтрока, 2, 1) = "0"
    ТОГДА ПОДСТРОКА(ВРТаб.ЦенаСтрока, 2, 9)
    КОГДА НЕ ПОДСТРОКА(ВРТаб.ЦенаСтрока, 3, 1) = "0"
    ТОГДА ПОДСТРОКА(ВРТаб.ЦенаСтрока, 3, 8)
    КОГДА НЕ ПОДСТРОКА(ВРТаб.ЦенаСтрока, 4, 1) = "0"
    ТОГДА ПОДСТРОКА(ВРТаб.ЦенаСтрока, 4, 7)
    КОГДА НЕ ПОДСТРОКА(ВРТаб.ЦенаСтрока, 5, 1) = "0"
    ТОГДА ПОДСТРОКА(ВРТаб.ЦенаСтрока, 5, 6)
    КОГДА НЕ ПОДСТРОКА(ВРТаб.ЦенаСтрока, 6, 1) = "0"
    ТОГДА ПОДСТРОКА(ВРТаб.ЦенаСтрока, 6, 5)
    КОГДА НЕ ПОДСТРОКА(ВРТаб.ЦенаСтрока, 7, 1) = "0"
    ТОГДА ПОДСТРОКА(ВРТаб.ЦенаСтрока, 7, 4)
    КОГДА НЕ ПОДСТРОКА(ВРТаб.ЦенаСтрока, 8, 1) = "0"
    ТОГДА ПОДСТРОКА(ВРТаб.ЦенаСтрока, 8, 3)
    КОГДА НЕ ПОДСТРОКА(ВРТаб.ЦенаСтрока, 9, 1) = "0"
    ТОГДА ПОДСТРОКА(ВРТаб.ЦенаСтрока, 9, 2)
    ИНАЧЕ ПОДСТРОКА(ВРТаб.ЦенаСтрока, 10, 1)
    КОНЕЦ КАК КонкатенацияНомЦена
    ИЗ
    ВРТаб КАК ВРТаб
```

может можно и проще. я пока придумал только это/ и этот запрос сделан чисто из спортивного интереса, чем является ответом на вопрос ТС
---
а теперь осталось мелочь, перечитать начальные требования.
 Т.е. чтобы в одной строке перечислялись все номеклатуры и их количество, примерно так: Хлеб - 4, Молоко - 6, творог - 10
---
а понял. ну ок. надо было В ОДНУ СТРОКУ ВСЯ НОМЕНКЛАТУРА выделить
---
я даже жирным выделил акцент требования. ВСЕ.
т.е. запрос должен вернуть всего одну строку, в которой перечислены все номенклатуры и их количество. Даже пример такой строки приведен.
---
"Эти поля" - это ж в контексте вопроса, иначе какой смысл?
А вопрос был в объединении всей номенклатуры и ее количества в одну строку конкретного формата.
И вопросы на форуме обычно предполагают ответ, применимый в продакшене.
Но так и быть, так как мое предложение не содержит ограничений, я готов отнестить к ответу, как к решению абстрактной олимпийской задачки.
И, так сказать, оплатить решение, хоть оно и не пригодится на практике.
Так что в путь :)
---
думаю, что это тот случай когда СКД не поможет... простеньким циклом преобразовать ТЗ в строку...
---
Не, мне кажется в СКД можно, просто сейчас нет времени экспериментировать...
---
да простейшее решение. все просто.
---
Благодарю за помощь. Ваше решение простое и 100% рабочее
---
Строка(Номенклатура.Наименование) + " " + Строка(Номенклатура.ЕдиницаИзмерения.Наименование)
почему мне пишет Неверные параметры "+"
---
Да, там примитивно все. К числу можно формат применить, засунуть с номенклатурой в таблицу и потом ее в строку с разделителем ",". Читайте справку - там все есть.
---
Создать Ресурс: СоединитьСтроки(ТаблицаЗначений(Номенклатура,Количество))