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

25.05.15

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Внешний отчет с выводом ТЧ в одну ячейку через запятую
.erf 6,22Kb
17
17 Скачать (1 SM) Купить за 1 850 руб.

Моя конфигурация - 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С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

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

15500 руб.

02.09.2020    179414    995    403    

952

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

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    20953    137    80    

139

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

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

22200 руб.

06.10.2023    19188    51    19    

83

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

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

15000 руб.

10.11.2023    13077    55    33    

72

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

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9360 руб.

17.05.2024    29369    101    48    

146

Инструментарий разработчика Программист 8.3.14 Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

20000 руб.

07.10.2021    18758    7    32    

43

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

Разработка Конструктор автоматизированных рабочих мест "Конструктор АРМ" реализована в виде расширения и является универсальным инструментом для создания АРМ любой сложности в пользовательском режиме.

3600 руб.

27.12.2024    1888    2    0    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. dj_serega 394 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 1402 26.05.15 09:57 Сейчас в теме
Удивляет, что появлении незнакомой задачи люди пытаются перерыть множество сайтов, но не документацию.
19. tugushev98 24.08.22 08:40 Сейчас в теме
(4) какую нахуй документацию, в твоей недокументации ничего толком понятно не расписано
5. ekaruk 5002 26.05.15 11:41 Сейчас в теме
Выложить разработкой простейшее использование базовых возможностей СКД это круто.

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

(6) Я бы сказал, это описано в документации по СКД (F1) N лет назад.
sapervodichka; +1 Ответить
10. dock 45 27.05.15 15:43 Сейчас в теме
(8) zqzq, ссылку на теорию или пример можно ?
11. ekaruk 5002 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 160 09.06.15 10:45 Сейчас в теме
Ставлю плюс за то что автор девушка
13. bad_wag 51 20.05.19 13:04 Сейчас в теме
А можно так же сделать, для поля - НЕ ресурса?
14. HiGHT 20.09.19 11:25 Сейчас в теме
15. bad_wag 51 20.09.19 15:00 Сейчас в теме
(14) Я через вычисляемые поля сделал
16. HiGHT 20.09.19 19:25 Сейчас в теме
(15)
Например есть таблица с 2 колонками.
В первой договоры контрагента, во второй документы реализации.
По каждому договору может быть несколько документов.
Как вывести Документы одной ячейкой для каждого договора не используя ресурсы?
17. bad_wag 51 23.09.19 19:33 Сейчас в теме
(16) Прошу извинить, забыл, что так не получится, а чем ресурс не устраивает?
18. marat.coolls 08.12.21 15:26 Сейчас в теме
Оставьте свое сообщение