1. P1rate 20.12.16 15:32 Сейчас в теме

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

Добрый день. Подскажите пожалуйста, элементарный отчёт в СКД. Выбираем Состав.Номенклатура и Состав.Количество. Как сделать, чтобы в печатной форме в одну строку выводило всю номенклатуру и количество? Т.е. чтобы в одной строке перечислялись все номеклатуры и их количество, примерно так: Хлеб - 4, Молоко - 6, творог - 10. Нашёл справку по функции СоединитьСтроки() и в Ресурсах СКД смог объединить номенклатуру в одну строку, но не смог привязать туда количество.
Найденные решения
11. spacecraft 20.12.16 18:53 Сейчас в теме
да простейшее решение. все просто.
Прикрепленные файлы:
ВнешнийОтчет1.erf
herfis; P1rate; +2 Ответить
Остальные ответы
Избранное Подписка Сортировка: Древо
2. olenka-ul 3 20.12.16 15:39 Сейчас в теме
Можно прямо в запросе объединить эти поля.
3. herfis 264 20.12.16 17:22 Сейчас в теме
(2) Ну-ка, ну-ка? Готов накинуть стартманей за примерчик.
4. olgerd666 41 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. olgerd666 41 20.12.16 18:14 Сейчас в теме
а понял. ну ок. надо было В ОДНУ СТРОКУ ВСЯ НОМЕНКЛАТУРА выделить
7. spacecraft 20.12.16 18:18 Сейчас в теме
(6) я даже жирным выделил акцент требования. ВСЕ.
т.е. запрос должен вернуть всего одну строку, в которой перечислены все номенклатуры и их количество. Даже пример такой строки приведен.
9. herfis 264 20.12.16 18:38 Сейчас в теме
(6) "Эти поля" - это ж в контексте вопроса, иначе какой смысл?
А вопрос был в объединении всей номенклатуры и ее количества в одну строку конкретного формата.
И вопросы на форуме обычно предполагают ответ, применимый в продакшене.
Но так и быть, так как мое предложение не содержит ограничений, я готов отнестить к ответу, как к решению абстрактной олимпийской задачки.
И, так сказать, оплатить решение, хоть оно и не пригодится на практике.
Так что в путь :)
8. alex-l19041 9 20.12.16 18:34 Сейчас в теме
думаю, что это тот случай когда СКД не поможет... простеньким циклом преобразовать ТЗ в строку...
10. herfis 264 20.12.16 18:39 Сейчас в теме
(8) Не, мне кажется в СКД можно, просто сейчас нет времени экспериментировать...
11. spacecraft 20.12.16 18:53 Сейчас в теме
да простейшее решение. все просто.
Прикрепленные файлы:
ВнешнийОтчет1.erf
herfis; P1rate; +2 Ответить
13. P1rate 21.12.16 10:28 Сейчас в теме
(11)Благодарю за помощь. Ваше решение простое и 100% рабочее
12. starik-2005 1429 20.12.16 21:42 Сейчас в теме
Да, там примитивно все. К числу можно формат применить, засунуть с номенклатурой в таблицу и потом ее в строку с разделителем ",". Читайте справку - там все есть.
14. Katyushkaa 21.12.16 11:14 Сейчас в теме
Создать Ресурс: СоединитьСтроки(ТаблицаЗначений(Номенклатура,Количество))
Прикрепленные файлы:
СоединитьСтроки.xml
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

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

Консультант-аналитик 1С
Санкт-Петербург
Полный день

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

Удаленный ИТ-журналист
Санкт-Петербург
По совместительству

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