Ситуация : потребовалось вывести в отчете на платформе 1С Предприятие 8.2, выводимом с помощью системы компоновки данных (СКД), следующую таблицу из трёх колонок
Сотрудник Образование1 Сертификат1Сотрудник Образование2 Сертификат1
таким образом :
Сотрудник Образование1;Образование2 Сертификат1
Каждое значение в колонке «Образование» представляло собой вычисляемое выражение вида
"Вид образования :" + ВидОбразования + "; Учебное заведение: " + УчебноеЗаведение + "; год окончания : " + Формат(ГодОкончания, "ЧГ=") + "; Специальность: " + Специальность + "; Квалификация: " + Квалификация + "; Диплом: " + Диплом
До сего дня я не знал, как это делать, но примерно представлял, что задача вполне решаема с помощью вычисляемых выражений СКД.
Поискав в интернете имена заинтересовавших меня функций для вычисляемых выражений СКД, я нашёл несколько тем на форумах, где люди в основном спрашивали, но не давали готовых ответов на подобный моему вопрос.
Однако на этих форумах я почерпнул идею сделать из моих строк — ресурс, чтобы затем «просуммировать» его для группировки «Сотрудник». Функция «Сумма» для строк не подошла, поэтому я применил агрегатную функцию «СоединитьСтроки».
Я сделал из колонок «Образование» и «Сертификат» два ресурса таким образом :
СоединитьСтроки(Образование) СоединитьСтроки(Сертификат)
и рассчитал их по группировке «Сотрудник», но на выходе получилось :
Сотрудник Образование1;Образование2 Сертификат1;Сертификат1Возник вопрос : можно ли заставить СКД удалить дубли строк из результата функции СоединитьСтроки(), если она применяется к строковому ресурсу?
Оказалось, да! Для этого нужно было применить агрегатную функцию СКД Свернуть(), но не в определении ресурса типа
Свернуть(СоединитьСтроки(Образование) )
так как сам Конфигуратор недвусмысленно говорит, что вложенные агрегатные функции тут неприменимы, а в определении вычисляемого выражения Образование :
СВЕРНУТЬ("Вид образования :" + ВидОбразования + "; Учебное заведение: " + УчебноеЗаведение + "; год окончания : " + Формат(ГодОкончания, "ЧГ=") + "; Специальность: " + Специальность + "; Квалификация: " + Квалификация + "; Диплом: " + Диплом)
Таким образом, задача была решена.
«Для этого нужно было применить агрегатную функцию СКД Свернуть(), но не в определении ресурса типа» — Это куда?
Здесь имеется в виду закладка Ресурсы в схеме СКД. Не на этой закладке.