1C 8.x СКД. Вывод значений полей табличной части документа в одну ячейку

25.05.15

Разработка - Инструментарий разработчика

Когда возникла необходимость вывести данные табличной части документа в отчет, то, перерыв множество сайтов, в том числе и на Инфостарте, нашла несколько дельных советов-руководств к действию, но, к сожалению, ни один сразу не оказался действенным, ибо найти написанный подробным образом расписанный вариант не получилось.

Скачать файлы

Наименование Файл Версия Размер
Внешний отчет с выводом ТЧ в одну ячейку через запятую
.erf 6,22Kb
17
.erf 6,22Kb 17 Скачать

Моя конфигурация - 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


Табличная часть Система компоновки данных отчет СКД Вывод ТЧ.

См. также

SALE! 20%

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

13000 10400 руб.

02.09.2020    122113    670    389    

714

SALE! 25%

Infostart PrintWizard

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

18000 15300 руб.

06.10.2023    7286    21    6    

39

SALE! 20%

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 8000 руб.

10.11.2023    3524    11    1    

34

SALE! 30%

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2520 руб.

14.01.2013    177737    1073    0    

849

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99344    239    97    

296

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18108    6    8    

39

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28107    3    10    

15

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    23601    15    15    

32
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. dj_serega 390 26.05.15 07:55 Сейчас в теме
2. dgolovanov 26.05.15 08:28 Сейчас в теме
Эх, стыдоба, я внешнюю функцию сделал в общем модулея для этого :)) Спасибо!
20. tugushev98 13.09.22 16:12 Сейчас в теме
(2) твоя внешняя функция будет выполнять отдельный запрос для каждой строки, что есть запрос в цикле
3. zala 7 26.05.15 08:55 Сейчас в теме
Ээээ... Это ж типовая тема - ничего нового и хитрого...В мануалах все описано
dj_serega; zqzq; ekaruk; cj512; +4 Ответить
21. tugushev98 13.09.22 16:14 Сейчас в теме
4. Armando 1399 26.05.15 09:57 Сейчас в теме
Удивляет, что появлении незнакомой задачи люди пытаются перерыть множество сайтов, но не документацию.
19. tugushev98 24.08.22 08:40 Сейчас в теме
(4) какую нахуй документацию, в твоей недокументации ничего толком понятно не расписано
5. ekaruk 4896 26.05.15 11:41 Сейчас в теме
Выложить разработкой простейшее использование базовых возможностей СКД это круто.

Но раз люди плюсуют, значит, кому-то действительно полезно.
Redokov; rimma_n; +2 Ответить
6. Поручик 4670 26.05.15 13:36 Сейчас в теме
Где-то на сайте уже было описано года два назад. Я помню, потому что мы тогда делали серию похожих отчетов с выводом данных из ТЧ.
sapervodichka; +1 Ответить
8. zqzq 23 27.05.15 09:26 Сейчас в теме
1. Адский баян.
2. Достаточно просто использовать Массив, без СоединитьСтроки, тогда ещё и расшифровка будет работать. (Если не нужны экзотические разделители.)

(6) Я бы сказал, это описано в документации по СКД (F1) N лет назад.
sapervodichka; +1 Ответить
10. dock 44 27.05.15 15:43 Сейчас в теме
(8) zqzq, ссылку на теорию или пример можно ?
11. ekaruk 4896 27.05.15 17:05 Сейчас в теме
(10) dock, F1 в конфигураторе

"1С:Предприятие 8" - "Система компоновки данных" - "Язык выражений системы компоновки данных"

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


Массив (Array)
Функция формирует массив, содержащий для каждой детальной записи значение параметра.
Синтаксис:
Массив([Различные] Выражение)
В качестве параметра можно использовать таблицу значений. При этом результатом работы функции будет массив, содержащий значения первой колонки таблицы значений, переданной в качестве параметра.
Если выражение содержит функцию Массив, то считается, что данное выражение является агрегатным.
Если указано ключевое слово Различные, то получаемый массив не будет содержать дублирующихся значений.
Пример:
Массив(Контрагент)
dock; Бубузяка; +2 Ответить
7. Poplar 57 27.05.15 08:59 Сейчас в теме
Жаль, что раньше этой статьи не было. Сэкономил бы много времени. Действительно полезная функция. Спасибо автору.
9. bdimaw 27.05.15 09:55 Сейчас в теме
Статья полезная, но зачем использовать 2 источника данных?
12. pvlunegov 157 09.06.15 10:45 Сейчас в теме
Ставлю плюс за то что автор девушка
13. bad_wag 48 20.05.19 13:04 Сейчас в теме
А можно так же сделать, для поля - НЕ ресурса?
14. HiGHT 20.09.19 11:25 Сейчас в теме
15. bad_wag 48 20.09.19 15:00 Сейчас в теме
(14) Я через вычисляемые поля сделал
16. HiGHT 20.09.19 19:25 Сейчас в теме
(15)
Например есть таблица с 2 колонками.
В первой договоры контрагента, во второй документы реализации.
По каждому договору может быть несколько документов.
Как вывести Документы одной ячейкой для каждого договора не используя ресурсы?
17. bad_wag 48 23.09.19 19:33 Сейчас в теме
(16) Прошу извинить, забыл, что так не получится, а чем ресурс не устраивает?
18. marat.coolls 08.12.21 15:26 Сейчас в теме
Оставьте свое сообщение