СКД СоединитьСтроки() Номенклатура + количество
Добрый день. Подскажите пожалуйста, элементарный отчёт в СКД. Выбираем Состав.Номенклатура и Состав.Количество. Как сделать, чтобы в печатной форме в одну строку выводило всю номенклатуру и количество? Т.е. чтобы в одной строке перечислялись все номеклатуры и их количество, примерно так: Хлеб - 4, Молоко - 6, творог - 10. Нашёл справку по функции СоединитьСтроки() и в Ресурсах СКД смог объединить номенклатуру в одну строку, но не смог привязать туда количество.
По теме из базы знаний
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(3)я сделал) где мои стартмани?
может можно и проще. я пока придумал только это/ и этот запрос сделан чисто из спортивного интереса, чем является ответом на вопрос ТС
ВЫБРАТЬ
ЦеныНоменклатурыСрезПоследних.Номенклатура,
ПОДСТРОКА("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)
КОНЕЦ КАК КонкатенацияНомЦена
ИЗ
ВРТаб КАК ВРТаб
Показатьможет можно и проще. я пока придумал только это/ и этот запрос сделан чисто из спортивного интереса, чем является ответом на вопрос ТС
Прикрепленные файлы:
(6) "Эти поля" - это ж в контексте вопроса, иначе какой смысл?
А вопрос был в объединении всей номенклатуры и ее количества в одну строку конкретного формата.
И вопросы на форуме обычно предполагают ответ, применимый в продакшене.
Но так и быть, так как мое предложение не содержит ограничений, я готов отнестить к ответу, как к решению абстрактной олимпийской задачки.
И, так сказать, оплатить решение, хоть оно и не пригодится на практике.
Так что в путь :)
А вопрос был в объединении всей номенклатуры и ее количества в одну строку конкретного формата.
И вопросы на форуме обычно предполагают ответ, применимый в продакшене.
Но так и быть, так как мое предложение не содержит ограничений, я готов отнестить к ответу, как к решению абстрактной олимпийской задачки.
И, так сказать, оплатить решение, хоть оно и не пригодится на практике.
Так что в путь :)
Создать Ресурс: СоединитьСтроки(ТаблицаЗначений(Номенклатура,Количество))
Прикрепленные файлы:
СоединитьСтроки.xml
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот