В запись поля СКД получить конкатенацию данных из полей другого запроса? #702895


#0 by vdeemer
Доброе время суток! Две таблицы, Таблица1 -> Таблица2 (многие) Таблица1 (Поле1_1, Поле1_2) Таблица2 (Поле2_1, Поле1_1) Запрос выбирает все записи из Таблицы1 и к каждой из них все соответствующие записи из Таблицы 2, соединенные через #13 (одна большая строка). Вычитал, что можно сделать функцию в вычисляемом поле и в ней запросом выбирать и соединять, возвращать строку. Но топорное решение какое-то... Можно ли сделать это умнее? Спасибо.
#1 by Жан Пердежон
Массив
#2 by Maxus43
МАССИВ(Ресурс)
#3 by vdeemer
Ага, вроде даже пример нашел на Массив и СоединитьСтроки , спасибо
#4 by vdeemer
Какой-то неудачный пример попался, непонятно ничего (((
#5 by Нерезидент РФ
а СоединитьСтроки  это что? не нашел в СП
#6 by vdeemer
СоединитьСтроки (JoinStrings) Предназначена для объединения строк в одну строку. Синтаксис: СоединитьСтроки (Значение, РазделительЭлементов, РазделителиКолонок) Параметры: Значение - выражения, которые нужно объединить в одну строку. Если является Массивом, то в строку будут объединяться элементы массива. Если является ТаблицаЗначений, то в строку будут объединяться все колонки и строки таблицы; РазделительЭлементов - строка, содержащая текст, который нужно использовать в качестве разделителя между элементами массива и строками таблицы значений. По умолчанию – символ перевода строк; РазделителиКолонок -строка, содержащая текст, который нужно использовать в качестве разделителя между колонками таблицы значений. По умолчанию "; ". Пример: СоединитьСтроки(ТаблицаЗначений(НомерТелефона, Адрес));
#7 by vdeemer
Только вот не пойму, как применить к моим баранам
#8 by Нерезидент РФ
блин, СП упорно не находит Массив, СоединитьСтроки, ТаблицаЗначений... проверил в конфигураторе на платформе .3
#9 by Нерезидент РФ
8.3
#10 by vdeemer
надо не в СП, а в справке искать
#11 by vdeemer
Массив (Array) Функция формирует массив, содержащий для каждой детальной записи значение параметра. Синтаксис: Массив([Различные] Выражение) В качестве параметра можно использовать таблицу значений. При этом результатом работы функции будет массив, содержащий значения первой колонки таблицы значений, переданной в качестве параметра. Если выражение содержит функцию Массив, то считается, что данное выражение является агрегатным. Если указано ключевое слово Различные, то получаемый массив не будет содержать дублирующихся значений. Пример: Массив(Контрагент)
#12 by Нерезидент РФ
а по сабжу, чтобы использовать выражение ВычислитьВыражениеСГруппировкойТаблицаЗначений нужно в запросе соединить две таблицы и получить вида: Таблица1.Поле1, Таблица2.Поле1, Таблица2.Поле2, Таблица2.Поле3, в СКД группировку по Таблица1.Поле1, а в ресурсы добавить следующее выражение ВычислитьВыражениеСГруппировкойТаблицаЗначений(Таблица2.Поле1,Таблица2.Поле2, Таблица2.Поле3). и в итоговом табличном документе должен получить в первой колонке - Таблица1.Поле1, а во второй - значения трех колонок второй таблицы через запятую
#13 by Нерезидент РФ
в справке тоже искал
#14 by vdeemer
сейчас-сейчас... Конфигуратор-Справка-1С-СКД-Язык выражений СКД-Агрегатные функции
#15 by Нерезидент РФ
ооооо благодарствую. сцууко через поиск не мог на это выйти, не догадался по содержанию найти )
#16 by vdeemer
"в ресурсы" имеется в виду "вычисляемое поле"?
#17 by Нерезидент РФ
(16 ошибся, в вычисляемое поле.
#18 by Нерезидент РФ
кому интересно, вот пример макета СКД, который покажет работу "конкатенации строк" <?xml version="1.0" encoding="UTF-8"?> <DataCompositionSchema xmlns="; xmlns:dcscom="; xmlns:dcscor="; xmlns:dcsset="; xmlns:v8="; xmlns:v8ui="; xmlns:xs="; xmlns:xsi=";         <query>ВЫБРАТЬ ПЕРВЫЕ 200 должен работать на любой типовой с регистром ТоварыНаСкладах
#19 by vdeemer
Ошибка разбора XML (((
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С