В этой статье мне хотелось бы рассказать о нюансах, с которыми я столкнулся при разработке отчета на СКД, точнее с управлением внешним видом макета отчета, и решениях, которые я применил к ним.
Я знаю, что макет в СКД можно подменить (изменить) с применением кодирования непосредственно в форме отчета, но для меня было принципиально важно произвести изменения в СКД не прибегая к кодированию.
Текст запроса в отчете был такой:
ВЫБРАТЬ Номенклатура.Наименование, Номенклатура.Код, Номенклатура.БазоваяЕдиницаИзмерения, Номенклатура.ЕдиницаИзмеренияМест, Номенклатура.ЕдиницаХраненияОстатков, Номенклатура.ЕдиницаДляОтчетов, Номенклатура.Комментарий, Номенклатура.Артикул, Номенклатура.Ссылка КАК Номенклатура ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ НЕ Номенклатура.ЭтоГруппа
Момент 1. Произвольные заголовки отчета и колонок.
По умолчанию в СКД есть возможность выводить произвольный текст заголовка. Делается это в настройках СКД:
на выходе получаем:
Но если заголовки отчета и колонок должены быть произвольными, тогда этот вариант не подходит. Поэтому я сделал следующее:
Указал имя для детальных записей:
Нарисовал нужный мне макет в СКД
Там же, на закладке "Макет", обозначил границы макета заголовка группировки:
и указал имя группировки:
затем обозначил область макета, которое нужно вывести в заголовок отчета:
Если сформировать отчет, то:
не совсем то, что хотелось получить. Для себя способ решения этой проблемы нашел такой - цвет фона и рамки области макета, которая является заголовком отчета, сделал белым:
и на выходе полуется нужный вид отчета:
Момент 2. Произвольная расшифровка полей отчета.
Задача следующая - при двойном клике по полю "Артикул" должна быть возможность открыть карточку номенклатуры, породившую эту строчку.
В отчете, приведенном выше, если выполнить двойной клик по любому полю, то не будет возможности открыть карточку номенклатуры:
Например если кликнуть по полю "Артикул", то получим следующее:
Решение такое:
Добавляем макет поля:
указываем поле (Артикул), при клике на которое должна открываться карточка номенклатуры:
в макете, любое пустое поле заполняем текстом "Артикул", в свойствах указываем - Заполнение = "Параметр", ПараметрРасшифровки = "РасшифровкаНоменклатуры":
и указываем это поле область макет поля:
После этого должны появиться параметры макета:
В этих парметрах указываем выражение для "РасшифровкаНоменклатуры", в моем случае это ссылка на номенклатуру:
Получаем возможность открыть карточку товара при клике по полю "Артикул":
Думаю найдутся разработчики, которые сталкивались с подобными нюансами и решили их другими способами, но это уже другая статья...
Отчет основан на реальных событиях, внешний вид, текст запроса и имена колонок изменены в интересах статьи.