СКД СоединитьСтроки() Номенклатура + количество

1. P1rate 20.12.16 15:32 Сейчас в теме
Добрый день. Подскажите пожалуйста, элементарный отчёт в СКД. Выбираем Состав.Номенклатура и Состав.Количество. Как сделать, чтобы в печатной форме в одну строку выводило всю номенклатуру и количество? Т.е. чтобы в одной строке перечислялись все номеклатуры и их количество, примерно так: Хлеб - 4, Молоко - 6, творог - 10. Нашёл справку по функции СоединитьСтроки() и в Ресурсах СКД смог объединить номенклатуру в одну строку, но не смог привязать туда количество.
По теме из базы знаний
Найденные решения
11. spacecraft 20.12.16 18:53 Сейчас в теме
да простейшее решение. все просто.
Прикрепленные файлы:
ВнешнийОтчет1.erf
chiki-79; herfis; P1rate; +3 Ответить
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. olenka-ul 3 20.12.16 15:39 Сейчас в теме
Можно прямо в запросе объединить эти поля.
3. herfis 498 20.12.16 17:22 Сейчас в теме
(2) Ну-ка, ну-ка? Готов накинуть стартманей за примерчик.
4. olegmedvedev 65 20.12.16 17:55 Сейчас в теме
(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)
	КОНЕЦ КАК КонкатенацияНомЦена
ИЗ
	ВРТаб КАК ВРТаб
Показать

может можно и проще. я пока придумал только это/ и этот запрос сделан чисто из спортивного интереса, чем является ответом на вопрос ТС
Прикрепленные файлы:
5. spacecraft 20.12.16 18:03 Сейчас в теме
(4) а теперь осталось мелочь, перечитать начальные требования.
Т.е. чтобы в одной строке перечислялись все номеклатуры и их количество, примерно так: Хлеб - 4, Молоко - 6, творог - 10
6. olegmedvedev 65 20.12.16 18:14 Сейчас в теме
а понял. ну ок. надо было В ОДНУ СТРОКУ ВСЯ НОМЕНКЛАТУРА выделить
7. spacecraft 20.12.16 18:18 Сейчас в теме
(6) я даже жирным выделил акцент требования. ВСЕ.
т.е. запрос должен вернуть всего одну строку, в которой перечислены все номенклатуры и их количество. Даже пример такой строки приведен.
9. herfis 498 20.12.16 18:38 Сейчас в теме
(6) "Эти поля" - это ж в контексте вопроса, иначе какой смысл?
А вопрос был в объединении всей номенклатуры и ее количества в одну строку конкретного формата.
И вопросы на форуме обычно предполагают ответ, применимый в продакшене.
Но так и быть, так как мое предложение не содержит ограничений, я готов отнестить к ответу, как к решению абстрактной олимпийской задачки.
И, так сказать, оплатить решение, хоть оно и не пригодится на практике.
Так что в путь :)
8. alex-l19041 8 20.12.16 18:34 Сейчас в теме
думаю, что это тот случай когда СКД не поможет... простеньким циклом преобразовать ТЗ в строку...
10. herfis 498 20.12.16 18:39 Сейчас в теме
(8) Не, мне кажется в СКД можно, просто сейчас нет времени экспериментировать...
11. spacecraft 20.12.16 18:53 Сейчас в теме
да простейшее решение. все просто.
Прикрепленные файлы:
ВнешнийОтчет1.erf
chiki-79; herfis; P1rate; +3 Ответить
13. P1rate 21.12.16 10:28 Сейчас в теме
(11)Благодарю за помощь. Ваше решение простое и 100% рабочее
15. XelOla 17 28.08.20 22:30 Сейчас в теме
(11)
Строка(Номенклатура.Наименование) + " " + Строка(Номенклатура.ЕдиницаИзмерения.Наименование)
почему мне пишет Неверные параметры "+"
12. starik-2005 3033 20.12.16 21:42 Сейчас в теме
Да, там примитивно все. К числу можно формат применить, засунуть с номенклатурой в таблицу и потом ее в строку с разделителем ",". Читайте справку - там все есть.
14. Katyushkaa 21.12.16 11:14 Сейчас в теме
Создать Ресурс: СоединитьСтроки(ТаблицаЗначений(Номенклатура,Количество))
Прикрепленные файлы:
СоединитьСтроки.xml
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)