Имя: Пароль:
1C
1С v8
СоединитьСтроки() - как?
0 Cmyk32
 
02.08.12
15:04
Привет!
Не совсем понимаю, что делает СоединитьСтроки()

У меня две строки:
Город     Сеть Цена
Товар1 5,70
1 Cmyk32
 
02.08.12
15:06
сорри. случайно отправила

Город       Сеть      Адрес              Коэф.
Москва     Ригла     ул.Тверская,15       1,5
Питер      Ригла     ул.Мурата, 20        1,5

Могу я с помощью Соединить строки вывести две строки, где 4-ая колонка будет содержать одно общее значение?
Город       Сеть      Адрес              Коэф.
Москва     Ригла     ул.Тверская,15       1,5
Питер      Ригла     ул.Мурата, 20
2 Живой Ископаемый
 
02.08.12
15:07
а что такое СоединитьСтроку()? это функция которую вы нафантазировали у себя в уме?
3 Fish
 
02.08.12
15:08
(0) Так посмотри, что делает эта функция.
4 Cmyk32
 
02.08.12
15:09
(3) Нет по ней инфы, не могу понять где использовать
5 Cmyk32
 
02.08.12
15:09
(4) + у МЕНЯ нет по ней инфы
6 butterbean
 
02.08.12
15:10
(5) ты ее придумала??
7 Fish
 
02.08.12
15:10
(4) Тогда хотя бы код этой функции приведи. или по твоему тут все телепаты?
8 GLazNik
 
02.08.12
15:10
(5) а у нас то тем более
9 Рэйв
 
02.08.12
15:10
(5)Встань на нее  и нажми F12 , юный падаван!:-)
10 Ненавижу 1С
 
гуру
02.08.12
15:10
(5) инфы нет, фото нет, беда
11 Рэйв
 
02.08.12
15:11
Это скорее всего какая то самописная глобальная функция
12 Cmyk32
 
02.08.12
15:11
13 Cmyk32
 
02.08.12
15:13
Сорри, неправильно сформулировала вопрос.
Я хочу понять зачем нужна функция СоединитьСтроки() в СКД и как ее использовать.
Она появилась с 8.2.14 версии.
14 Ненавижу 1С
 
гуру
02.08.12
15:21
(13) по-моему это не для этого
15 Cmyk32
 
02.08.12
15:34
апну... вдруг кто знает, что это не "фантазия" и даже не "самописная глобальная функция"
16 Kashemir
 
02.08.12
15:43
- В языке выражений системы компоновки данных реализована функция "Массив()". Результатом работы функции является массив, в котором элементом является значение параметра для каждой детальной записи. Если выражение системы компоновки данных содержит функцию "Массив()", то такое выражение считается агрегатным.
Перед параметром функции допустимо указывать ключевое слово "Различные", в этом случае получаемый массив не будет содержать одинаковых значений.
В качестве параметра функция может принимать выражение, возвращающее таблицу значений. В этом случае результатом работы функции "Массив()" будет массив, содержащий значения первой колонки переданной таблицы значений.
- В языке выражений системы компоновки данных реализована функция "ТаблицаЗначений()". Результатом работы функции является таблица значений, в которой количество колонок равно количеству параметров функции, а данные в колонках получаются из детальных записей. Если выражение системы компоновки данных содержит функцию "ТаблицаЗначений()", то такое выражение считается агрегатным.
Перед параметром функции допустимо указывать ключевое слово "Различные", в этом случае получаемая таблица значений не будет содержать строк, содержащих одинаковые данные.

_________________________

В языке выражений системы компоновки данных реализована функция "СоединитьСтроки()", предназначенная для объединения строк в одну.


__________________________
Возможно, что СоединитьСтроки() является агрегатной функцией для значений Массива или ТЗ ?
17 Kashemir
 
02.08.12
15:47
Вот примеры из СП:

Например, для пользовательского поля с выражением:

ВычислитьВыражениеСГруппировкойМассив("Сумма(СуммаОборот)", "Контрагент")

компоновщик макета сгенерирует для вывода следующее выражение:

СоединитьСтроки(Массив(Упорядочить(ВычислитьВыражениеСГруппировкойТаблицаЗначений ("Представление(Сумма(НаборДанных.СуммаОборот)), Сумма(НаборДанных.СуммаОборот)", "НаборДанных.Контрагент"), "2")))






Например, пользовательского поля с выражением:

ВычислитьВыражениеСГруппировкойТаблицаЗначений ("Контрагент, Сумма(СуммаОборот)", "Контрагент")

Компоновщик макета сгенерирует для вывода следующее выражение:

СоединитьСтроки(ПолучитьЧасть(Упорядочить(ВычислитьВыражениеСГруппировкойТаблицаЗначений ("НаборДанных.Контрагент, НаборДанных.КонтрагентПредставление, Сумма(НаборДанных.СуммаОборот), Представление(НаборДанных.СуммаОборот), НаборДанных.ПолеУпорядочивание", "НаборДанных.Контрагент"), "5, 1, 3"), "2, 4"))
18 Kashemir
 
02.08.12
15:48
А вот собственно и описание из СП:

СоединитьСтроки (JoinStrings)
Предназначена для объединения строк в одну строку.

Синтаксис:

СоединитьСтроки (Значение, РазделительЭлементов, РазделителиКолонок)

Параметры:

Значение - выражения, которые нужно объединить в одну строку. Если является Массивом, то в строку будут объединяться элементы массива. Если является ТаблицаЗначений, то в строку будут объединяться все колонки и строки таблицы;
РазделительЭлементов - строка, содержащая текст, который нужно использовать в качестве разделителя между элементами массива и строками таблицы значений. По умолчанию – символ перевода строк;
РазделителиКолонок -строка, содержащая текст, который нужно использовать в качестве разделителя между колонками таблицы значений. По умолчанию "; ".
Пример:

СоединитьСтроки(ТаблицаЗначений(НомерТелефона, Адрес));
19 sivalor
 
02.08.12
15:51
(1) почему бы просто не сделать вычисляемое поле Город + " " + Адрес.
20 Kashemir
 
02.08.12
15:52
(19) Представь себе что город и адрес это значения разных произвольных строк одной колонки.
21 Heckfy
 
02.08.12
15:54
(18) А у меня нету такого :(:(:(
22 Kashemir
 
02.08.12
15:54
Значит у тебя версия ниже 8.2.14
23 Бледно Золотистый
 
02.08.12
15:56
(21) В СП поиск не находит, в справке искать надо.
24 Cmyk32
 
02.08.12
15:58
(23) теперь понятно/
(18)(23) Спасибо!

Получается это не то, что мне нужно в (1).
25 Kashemir
 
02.08.12
16:00
(24) Так тебе нужна обычная конкатенция строк. Операции "+" вполне достаточно( как в (19)).
26 Cmyk32
 
02.08.12
16:02
У меня коэффициент находится в одной колонке. Или ты имеешь ввиду при программном выводе результата?
27 Kashemir
 
02.08.12
16:05
(26) Что-то я запутался. Объясни еще раз что нужно получить в результате
28 Kashemir
 
02.08.12
16:05
(27) Может нужна просто группировка по коэффициенту ?
29 Cmyk32
 
02.08.12
16:08
(26) По сути мне нужно тоже самое, что в этом примере http://forum.infostart.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=130981 (кроме группировки "ОДЕЖДА")

Если делать стандартный вывод СКД, то "мужская" и "женская" - будут повторяться в каждой строке.

(27) Простая группировка - не читается в моем случае.
30 Kashemir
 
02.08.12
16:34
(29) Тогда просто сделай свой макет+группировка.
31 Cmyk32
 
02.08.12
16:40
(29) Да. Спасибо за помощь.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший