Моя конфигурация — 1С Университет ПРОФ, редакция 1.1 (1.1.7.1), хотя в данном вопросе суть не в этом.
Создание отчета выполняется через систему компоновки данных.
Моя задача была вот в чем:
Имеется документ «Информационная технология», там имеется табличная часть, содержащая авторов.
На основе данного документа создается еще один — «Регистрация ИТ в ФИПС».
Задача состоит в том, чтобы на выходе получить отчет, в котором есть 4 поля из документа «Регистрация ИТ в ФИПС», плюс поле из документа «Информационная технология», плюс данные об авторах из табличной части документа «Инф.технология».
Отчет создается через Систему компоновки данных.
Сначала создаем первый набор данных — запрос, где выбираем необходимые поля (+ поле Ссылка) из первого документа ( у меня «Регистрация ИТ в ФИПС»), затем создаем второй набор данных — запрос, где выбираем поля второго документа («Информационная технология») вместе с табличной частью (Авторы) (+ поле Ссылка 2го документа).
На вкладке «Связи» настраиваем связь между этими наборами данных.
Источник связи — НаборДанных1, приемник связи — НаборДанных2, Выражение источник — Ссылка из НаборДанных1, Выражение приемник — Ссылка из НаборДанных2.
Для того, чтобы в поле табличной части (Авторы.Автор) вывести всех авторов через запятую, переходим на вкладку Ресурсы.
Выбираем поле Авторы.Автор и в части «Выражение» пишем:
СоединитьСтроки(Массив(Авторы.Автор)," , ")
то есть мы указываем, что объединяем массив данных и размещаем записи через «, «.
В настройках отчета создаем группировку, я поле не выбирала, т.е. добавила ДетальныеЗаписи.
Ну, и как обычно выбираем поля, которые отчет должен отражать, и добавляем отборы.
Для первоначального изучения исследованы следующие источники: //infostart.ru/public/267055/
http://www.cyberforum.ru/1c-custom/thread1237018.html
Полезная функция.
Эх, стыдоба, я внешнюю функцию сделал в общем модулея для этого :)) Спасибо!
Ээээ… Это ж типовая тема — ничего нового и хитрого…В мануалах все описано
Удивляет, что появлении незнакомой задачи люди пытаются перерыть множество сайтов, но не документацию.
Выложить разработкой простейшее использование базовых возможностей СКД это круто.
Но раз люди плюсуют, значит, кому-то действительно полезно.
Где-то на сайте уже было описано года два назад. Я помню, потому что мы тогда делали серию похожих отчетов с выводом данных из ТЧ.
Жаль, что раньше этой статьи не было. Сэкономил бы много времени. Действительно полезная функция. Спасибо автору.
1. Адский баян.
2. Достаточно просто использовать Массив, без СоединитьСтроки, тогда ещё и расшифровка будет работать. (Если не нужны экзотические разделители.)
(6) Я бы сказал, это описано в документации по СКД (F1) N лет назад.
Статья полезная, но зачем использовать 2 источника данных?
(8) zqzq, ссылку на теорию или пример можно ?
(10) dock, F1 в конфигураторе
«1С:Предприятие 8» — «Система компоновки данных» — «Язык выражений системы компоновки данных»
СоединитьСтроки (JoinStrings)
Предназначена для объединения строк в одну строку.
Синтаксис:
СоединитьСтроки (Значение, РазделительЭлементов, РазделителиКолонок)
Параметры:
Значение — выражения, которые нужно объединить в одну строку. Если является Массивом, то в строку будут объединяться элементы массива. Если является ТаблицаЗначений, то в строку будут объединяться все колонки и строки таблицы;
РазделительЭлементов — строка, содержащая текст, который нужно использовать в качестве разделителя между элементами массива и строками таблицы значений. По умолчанию – символ перевода строк;
РазделителиКолонок -строка, содержащая текст, который нужно использовать в качестве разделителя между колонками таблицы значений. По умолчанию «; «.
Пример:
СоединитьСтроки(ТаблицаЗначений(НомерТелефона, Адрес));
Массив (Array)
Функция формирует массив, содержащий для каждой детальной записи значение параметра.
Синтаксис:
Массив([Различные] Выражение)
В качестве параметра можно использовать таблицу значений. При этом результатом работы функции будет массив, содержащий значения первой колонки таблицы значений, переданной в качестве параметра.
Если выражение содержит функцию Массив, то считается, что данное выражение является агрегатным.
Если указано ключевое слово Различные, то получаемый массив не будет содержать дублирующихся значений.
Пример:
Массив(Контрагент)
Ставлю плюс за то что автор девушка
А можно так же сделать, для поля — НЕ ресурса?
(13)
Поддержу вопрос)
(14) Я через вычисляемые поля сделал
(15)
Например есть таблица с 2 колонками.
В первой договоры контрагента, во второй документы реализации.
По каждому договору может быть несколько документов.
Как вывести Документы одной ячейкой для каждого договора не используя ресурсы?
(16) Прошу извинить, забыл, что так не получится, а чем ресурс не устраивает?