Система компоновки данных
Система компоновки данных представляет собой механизм, основанный на декларативном описании отчетов. Он предназначен для построения отчетов, а также вывода информации, имеющей сложную структуру и содержащий произвольный набор таблиц и диаграмм.
Устройство системы компоновки данных
- создание отчета без программирования;
- использование автоматически генерируемых форм просмотра и настройки отчета;
- разбиение исполнения отчета на этапы;
- исполнение отдельных этапов построения отчета на различных компьютерах;
- независимое использование отдельных частей системы компоновки данных;
- программное управление процессом выполнения отчета.
Основные элементы системы компоновки данных представлены на следующей схеме:
Схема компоновки данных
- текст запроса с инструкциями системы компоновки данных;
- описание нескольких наборов данных;
- подробное описание доступных полей;
- описание связей между несколькими наборами данных;
- описание параметров получения данных;
- описание макетов полей и группировок;
- и др.
Настройки компоновки данных
- отбор;
- упорядочивание;
- условное оформление;
- структуру отчета (составные части будущего отчета);
- параметры получения данных;
- параметры вывода данных;
- и др.
Макет компоновки данных
Макет компоновки данных представляет собой уже готовое описание того, как должен быть сформирован отчет. В нем соединяется схема компоновки и настройки компоновки. Фактически макет компоновки данных представляет собой результат применения конкретных настроек к схеме компоновки и является готовым заданием процессору компоновки на формирование отчета нужной структуры с учетом конкретных настроек.
Элемент результата компоновки данных
Результат компоновки данных представляется набором элементов результата компоновки данных. Как самостоятельная логическая сущность результат компоновки данных не существует, существуют только его элементы. Элементы результата компоновки данных можно вывести в табличный документ для представления их пользователю, или в другие виды документов. Также имеется возможность программного вывода элементов результата компоновки в объекты вида Дерево значений или Таблица значений.
Работа с системой компоновки данных в конфигурации
Система компоновки данных интегрирована в объект конфигурации Отчет. Это позволяет создавать отчеты без программирования.
У объекта конфигурации Отчет реализовано свойство «Основная схема компоновки данных»:
При нажатии кнопки открытия для этого свойства, вызывается конструктор макета, который позволяет создать макет отчета, содержащий схему компоновки данных:
После нажатия кнопки «Готово» будет открыт конструктор схемы компоновки данных.
Конструктор схемы компоновки данных позволяет описать исходные данные, которые будет использовать отчет: наборы данных, связи между наборами данных, вычисляемые поля, ресурсы и т. д.
Также конструктор схемы компоновки данных предоставляет возможность описать настройки компоновки данных, которые будут использоваться по умолчанию (в том случае, если пользователь не задаст собственные настройки). Настройки компоновки данных могут быть созданы с помощью специального конструктора настроек компоновки данных, или вручную:
После выполнения этих действий отчет готов. В режиме 1С:Предприятие система автоматически, на основании схемы компоновки данных, содержащейся в отчете, может создать форму отчета и форму настроек отчета.
Таким образом пользователь просто запускает отчет и получает результат в соответствии с теми настройками, которые описал разработчик:
При необходимости пользователь может открыть форму настроек отчета и отредактировать их, изменить структуру отчета и т. д. аналогично тому, как это делает разработчик в режиме конфигуратора.
Консоль системы компоновки данных
Внешний отчет «Консоль системы компоновки данных» предназначен для специалистов, желающих подробнее узнать об устройстве системы компоновки данных. Консоль позволяет выполнять отдельные шаги компоновки данных с просмотром промежуточных результатов в виде XML. Подробнее…
Скд в 1с что это
Войдите как ученик, чтобы получить доступ к материалам школы
Система компоновки данных 1С 8.3 для начинающих: первый отчёт на СКД
Автор уроков и преподаватель школы: Владимир Милькин
Если вы не читали введение к этому модулю — пожалуйста, прочтите его: ссылка.
Готовим рабочее место
Для выполнения уроков вам понадобится 1С 8.3 (не ниже 8.3.13.1644) .
Если у вас уже есть установленная 1С версии 8.3 — используйте её. Если нет — скачайте и установите учебную версию, которую фирма 1С выпускает специально для образовательных целей: ссылка на инструкцию по скачиванию и установке 1С.
На вашем рабочем столе должен появиться вот такой ярлык:
Для всех уроков из этого цикла мы будем использовать подготовленную мной базу данных «Гастроном». Она полностью совпадает с базой, которую мы использовали в четвёртом и пятом модулях школы при изучении запросов. Поэтому я рассчитываю, что вы знакомы с её справочниками и документами.
Если вы её удалили — скачайте заново по следующей ссылке, распакуйте и подключите в список баз.
Наконец, рабочее место настроено и сейчас мы вместе создадим наш первый отчёт при помощи системы компоновки данных. Он будет очень простым, чтобы продемонстрировать общие возможности системы компоновки данных (сокращенно СКД).
Ставим цель
Цель этого урока — создать отчёт, который в режиме пользователя выводит список клиентов со следующими полями:
- Имя
- Пол
- Любимый цвет клиента.
Отчёт должен быть внешним. Это значит, что он будет создан и настроен в конфигураторе, а затем сохранен в виде отдельного (внешнего) файла на компьютере.
Чтобы сформировать такой отчет в 1С пользователю нужно будет запустить базу в режиме пользователя, открыть этот файл и нажать кнопку «Сформировать».
Создаём отчёт
Запускаем конфигуратор для базы «Гастроном»:
Из главного меню выбираем пункт «Файл»->»Новый. «:
Выбираем «Внешний отчет»:
Создаём схему компоновки данных внутри отчёта
Открылось окно создания внешнего отчёта. В качестве имени вводим: «Урок1«, а затем жмём кнопку «Открыть схему компоновки данных«:
Запустился конструктор создания схемы. Соглашаемся с именем по умолчанию «ОсновнаяСхемаКомпоновкиДанных» и жмём кнопку «Готово«:
Открылось основное рабочее окно, с множеством закладок и полей, в котором мы и будем настраивать нашу схему компоновки данных.
Не нужно пугаться — возможностей здесь действительно много, но далеко не все из них нам нужны. Особенно на первом уроке.
Сейчас мы находимся на закладке «Наборы данных«. На ней и останемся.
Пишем запрос через конструктор
Система компоновки данных (сокращенно СКД) требует от нас данные, которые она будет выводить пользователю.
Самый простой способ — написать запрос к базе. В предыдущих модулях школы мы научились писать и понимать запросы — поэтому я рассчитываю, что вы обладаете соответствующими навыками.
Нажимаем на зелёный плюсик и в раскрывшемся списке выбираем пункт «Добавить набор данных — запрос«:
Добавился набор данных с именем «НаборДанных1«, но мы видим, что поле «Запрос» в нижней части окна пока пустое:
Наша задача написать в это поле текст запроса. Вы ещё не забыли как это делается?
В этом запросе мы выбрали три поля («Наименование«, «Пол» и «ЛюбимыйЦвет«) из таблицы «Справочник.Клиенты«.
Но не торопитесь писать этот текст в поле «Запрос» вручную.
Сейчас мы создадим тот же самый запрос визуально, только при помощи мышки. Этот способ называется «Конструктор запроса«.
Чтобы вызвать этот конструктор нажмём кнопку «Конструктор запроса. » в верхней правой части поля «Запрос»:
В открывшемся окне перетащим таблицу «Клиенты» из первого столбца во второй, чтобы указать, что именно из этой таблицы мы будем запрашивать данные:
Получилось вот так:
Далее раскроем таблицу «Клиенты» во втором столбце по знаку «Плюс«, чтобы увидеть все её поля и перетащим поле «Наименование» из второго столбца в третий, чтобы указать, что из этой таблицы нам нужно запрашивать поле «Наименование»:
Получилось вот так:
Поступим точно так же с полями «Пол» и «ЛюбимыйЦвет«. Результат будет таким:
Нажмём кнопку «ОК», чтобы выйти из конструктора запроса и увидим, что текст запроса автоматически добавился в поле «Запрос».
Более того на основании текста запроса 1С сама вытащила имена полей (область выше запроса), которые будут использоваться схемой компоновки данных:
Теперь, когда мы составили запрос, СКД знает каким образом получать данные для отчёта.
Настраиваем представление данных
Осталось как-то визуализировать эти данные для пользователя в виде печатной формы. И вот тут СКД может творить чудеса!
Чтобы сотворить такое чудо перейдём на вкладку «Настройки» и нажмём кнопку конструктора настроек (волшебная палочка):
В открывшемся окне укажем тип отчёта «Список» и нажмём «Далее«:
В следующем окне выберем (путём перетаскивания) поля, которые нужно будет отобразить в списке (перетащим все из доступных нам: «ЛюбимыйЦвет«, «Наименование» и «Пол«):
Получим вот такой результат и нажмём кнопку «ОК«:
Конструктор настроек закрылся и появился пункт «Детальные записи«:
Отчёт готов, давайте же его проверим. Для этого вначале сохраним отчет в виде внешнего файла.
Сохраняем отчёт в виде файла
Откроем пункт главного меню «Файл«->»Сохранить«:
Я сохраню его на рабочий стол под именем «Урок1«:
Проверяем отчёт в режиме пользователя
Наконец, закроем конфигуратор и зайдём в нашу базу в режиме пользователя:
Имя пользователя «Администратор», пароля нет:
Через меню выберем пункт «Файл«->»Открыть. «:
И укажем файл отчёта (я сохранял его на рабочий стол под именем «Урок1.erf»:
Открылась форма отчёта, нажмём кнопку «Сформировать«:
Готово! Вот она наша печатная форма со списком клиентов, их любимым цветом и полом:
Печатную форму можно легко распечатать. Для этого достаточно выбрать в меню пункт «Файл«->»Печать. «:
Вот так просто, без программирования нам удалось создать полноценный отчёт, который пользователи смогут открывать в своих базах, формировать и распечатывать.
То ли ещё будет, наберитесь терпения
Войдите на сайт как ученик
Авторизуйтесь, чтобы получить доступ ко всем материалам школы
Для учеников
Прибегайте к изучению эталонного варианта только после самостоятельного выполнения всех шагов.
На вопросы учеников — отвечаю по почте, но прежде загляните в ЧАВО (ссылка) .
Устройство системы компоновки данных в 1С. Основные элементы и составные части СКД
Большая обзорная статья для знакомства с СКД “под капотом”. Мы рассмотрим, из чего состоит система компоновки данных, как происходит формирование итогового результата, и затронем многие механизмы и нюансы, связанные с СКД.
Содержание
Основные понятия и термины СКД
Система компоновки данных – это механизм платформы 1С Предприятие 8, который используется при построении отчетов, в динамических списках, а также может применяться для реализации сложных отборов, например при сегментировании товаров или клиентов, выгрузке номенклатуры на сайт, формировании заказов с учетом потребностей, и др.
Навык использования СКД сочетает в себе умение работать с запросами, макетами табличных документов, использование обработчиков расшифровки и компоновки результата на встроенном языке, а также понимание взаимосвязи отдельных составных частей.
На рисунке ниже схематично изображено устройство системы компоновки данных. На основе схемы компоновки и примененных к этой схеме настроек компоновщик макета формирует макет компоновки данных. Далее этот макет обрабатывается процессором компоновки и преобразуется в результат компоновки данных. В свою очередь, результат компоновки может быть выведен в табличный документ, либо в объект – таблицу значений или дерево значений.
У всех объектов, образующих систему компоновки данных, есть своя объектная модель для работы средствами встроенного языка. Другими словами, СКД можно использовать полностью программно – начиная от программного создания схемы и заканчивая выводом в табличный документ или таблицу значений.
Схема компоновки
Схема компоновки – это краеугольный камень всей СКД. Она описывает все правила получения и обработки данных. Ключевые элементы схемы компоновки:
- Источники данных – запросы, объединения, объекты
- Поля компоновки
- Параметры
- Вычисляемые поля
- Ресурсы
Помимо вышеперечисленных составляющих, в схеме компоновки можно описывать макеты оформления, вложенные схемы, связи наборов данных.
Настройки компоновки
Следующий незаменимый компонент СКД – это настройки компоновки. Настройки отвечают за то, как именно данные будут представлены пользователю. Они включают отборы, структуру выводимых полей, условное оформление и др. Следует знать, что настройки делятся на три вида – фиксированные, стандартные и пользовательские. Вообще, работа с настройками – предмет для отдельной, не менее большой статьи
Макет компоновки данных
Макет компоновки данных получается в результате применения настроек к схеме компоновки. Макет компоновки состоит из:
- обработанных наборов данных и связей между ними
- итоговых запросов, которые формируются на основе текстов запросов в схеме компоновки, наложенных отборов, выбранных полей и т.п.
- параметров и их значений
- макетов различных областей отчета
- тела макета компоновки, в котором структура отчета сопоставляется с макетами областей
Важно! Еще раз обращаю внимание, что итоговые запросы, которые формируются в макете компоновки данных, могут сильно отличаться от текстов запросов, указанных в схеме компоновки. Итоговые запросы получаются в результате применения условий по отборам, выбранным полям (те поля, которые не используются, удаляются из текста запроса, кроме полей с ролью “Остатки”), конструкциям расширения языка запросов для СКД и параметрам. Например, отборы могут преобразоваться в параметры вида &П1, &П2 и т.д.
Некоторые особенности схемы компоновки данных
Схема компоновки данных как объект языка может сериализовываться в/из XML, а также в/из XDTO. Кроме того, в редакторе схемы компоновки данных доступна возможность выгрузить схему в XML-файл, либо загрузить из файла.
При работе с СКД используется расширение языка запросов, которое позволяет описывать поля и отборы для компоновки данных (в тексте они будут обрамлены в фигурные скобки). Кроме того, запросы в СКД отличаются тем, что в них нельзя использовать секцию Итоги. Итоги настраиваются для всей схемы компоновки, т.к. в ней может быть несколько наборов данных, а кроме того может использоваться набор данных “Объект”, куда может передаваться произвольная таблица значений
В СКД можно использовать два вида сортировки:
- Сортировка на уровне запроса – использование секции “Упорядочить”. В этом случае сортировку в настройках поменять нельзя
- Сортировка в настройках компоновки. Данная сортировка применяется уже к выбранным данным, и в итоговый макет компоновки не включается. Сортировка, заданная в настройках компоновки является приоритетной, т.е. она замещает собой сортировку, заданную в запросах.
Для фильтрации результатов, в СКД используется три механизма:
- Стандартные условия на уровне запроса – они прописываются в тексте запроса, управлять ими из настроек нельзя. Если в тексте запроса используются параметры, до выполнения компоновки они должны быть заполнены, иначе платформа выдаст сообщение об ошибке.
- Условия, записанные в расширении языка запросов. В конструкторе их можно задать на закладке Компоновка данных / Условия. Поля, добавленные таким образом, будут иметь ограничения при настройке – их нельзя указать в качестве выбранных полей, полей группировки или сортировки. Но они будут доступны для использования в отборах. В итоговый запрос макета компоновки данных такие условия попадут, только если они заданы. Кроме того, указание параметров не является обязательным.
- Отборы, заданные в настройках компоновки данных. Данный вид отборов распространяется на все наборы данных, и на все запросы в пакетных запросах, если возможно. Этими отборами пользователь может управлять на уровне варианта отчета или пользовательских настроек.
Параметры СКД
При редактировании текста запроса в наборе данных – не важно, вручную или через конструктор запроса, если в тексте присутствуют параметры, по завершении редактирования они автоматически добавляются на закладку Параметры. Кроме того, при необходимости разработчик может самостоятельно добавить произвольное количество дополнительных параметров. При этом, параметры, добавленные вручную, можно в любой момент удалить, а вот параметры, добавленные автоматически, удалить нельзя.
Рассмотрим состав реквизитов табличной части Параметры:
- Имя — Имя параметра, как оно задано в тексте запроса
- Заголовок — представление параметра в настройках компоновки (пользователь будет видеть именно заголовок)
- Тип — тип значений параметра
- Доступные значения — список доступных значений. Если этот список заполнен, можно будет указывать только значения из списка, и другое значение параметра выбрать будет нельзя. При его редактировании можно задать произвольные представления для каждого значения. Значения ограничиваются указанным типом параметра. Если параметр имеет составной тип значения, то и в доступных значениях можно выбирать только значения типов, входящих в состав (например, Дата и Строка)
- Доступен список значений — Установка этого флажка влияет на то, может ли параметр принимать список значений, или только одно значение.
- Значение — значение параметра по умолчанию
- Выражение — можно задать выражение на языке выражений СКД. Данное поле служит для реализации более сложной логики вычисления значения параметра. Можно использовать другие параметры, функции СКД. Например, можно привести параметр даты к началу дня, или менять значение одного параметра в зависимости от других.
- Параметр функциональной опции — если в СКД используются поля, которые входят в состав параметризируемой функциональной опции, можно управлять их видимостью, указав соответствующий параметр ФО. Параметр СКД и параметр ФО в этом случае должны иметь одинаковый тип. Важно! Значения не параметризируемых ФО также учитываются СКД и влияют на видимость полей в пользовательском режиме.
- Включать в доступные поля — флажок отвечает за видимость параметра в настройках компоновки, на закладках «Поля», «Отбор» и «Сортировка»
- Ограничение доступности — флажок, отвечающий за видимость параметра в настройках компоновки на закладках «Параметры». Различные служебные параметры, которые пользователь не должен редактировать, обычно отмечаются данным флажком
- Запрещать не заполненные значения — флажок, отвечающий за проверку заполнения параметра
- Использование — данное свойство параметра влияет на использование этого параметра в итоговом запросе макета компоновки. Значение «Всегда» — отключить использование параметра в пользовательском режиме будет нельзя. Параметр всегда будет использоваться в итоговом макете компоновки. Значение «Авто» — в случае, если параметр используется в расширении запроса схемы компоновки (в фигурных скобках), либо не используется в тексте запроса вообще (например, какой-то служебный параметр, добавленный разработчиком), его использование можно отключить в пользовательских настройках. В этом случае он будет отсутствовать в итоговом макете компоновки.
- Параметры редактирования — открывает окно настроек редактирования, где можно задать формат редактирования, маску, параметры выбора и др.
Поля схемы компоновки данных
При формировании отчетов с использованием СКД существуют три вида полей, которые могут быть выведены в отчет: основные поля, вычисляемые поля и пользовательские поля. Пользовательские поля задаются в настройках компоновки, а вот в самой схеме компоновки данных могут быть заданы основные поля и вычисляемые.
Основные поля СКД
Основные поля схемы компоновки образуются из полей, указанных в наборах данных. В наборе данных состав полей определяется использованием флажка “Автозаполнение” и использованием расширения языка запроса компоновки данных. Если автозаполнение отключено, основные поля должны быть добавлены и настроены разработчиком вручную. При редактировании набора данных, таблица полей имеет следующие колонки:
- Путь – строка, описывающая путь к данным, по которому данное поле будет использоваться в выражениях вычисляемых полей, в ресурсах и в настройках компоновки. Для организации иерархии вложенных полей можно записывать путь через точку, например “Номенклатура.Артикул” или “Контрагент.ОсновнойДоговор.ВложенныйРеквизит2Уровня”. Кроме того, путь может указываться строкой, содержащей пробелы. В этом случае поля с пробелами в именах должны указываться в квадратных скобках.
- Заголовок – строка с заголовком для пользовательского режима. Отображается в пользовательских настройках, при редактировании варианта отчета в режиме 1С Предприятие, в шапке отчета.
- Ограничение доступности поля – группа флажков, позволяет отключить доступность поля для указания в выбранных полях, отборах, группировках и сортировке.
- Ограничение доступности реквизитов поля – группа флажков, отвечает за то, как можно использовать реквизиты поля через точку в пользовательских настройках. Важно! Если не ограничено использование вложенных реквизитов, то даже у самого поля установлен флаг ограничения, оно все равно будет доступно!
Роль - Роль – группа настроек, описывающих использование поля при расчете итогов по группировкам для полей остатков. Эти настройки используются при выводе полей виртуальных таблиц “Остатки и обороты” для регистров накопления и регистров бухгалтерии.
- Выражение представления – выражение на языке выражений СКД, позволяющее переопределить стандартное представление поля. Можно использовать экспортные функции общих модулей, все доступные поля, а также функции языка выражений СКД.
- Выражения упорядочивания – позволяет задать параметры сортировки, которые будут использоваться при выборе данного поля в настройках сортировки. Указанные выражения упорядочивания переопределяют параметры сортировки по полю, указанные в настройках. Т.е. сортировка будет выполняться по тем параметрам, которые заданы в выражениях упорядочивания.
- Проверка иерархии: набор данных и параметр – данные поля предназначены для реализации собственной нестандартной иерархии.
- Тип значения – влияет на допустимые типы значений при выборе поля в качестве значения отбора.
- Доступные значения – список доступных значений для указания в отборе. Предварительно необходимо обязательно выбрать тип значения для поля.
- Оформление – позволяет настроить оформление поля – цвет, шрифт, формат и прочее. Важно! Оформление вида текст не работает корректно – произвольный текст не выводится.
- Параметры редактирования – влияют на редактирование поля при выборе его в отборе в настройках компоновки. Во многом они повторяют настройки элемента формы “Поле ввода”. Можно задать маску, параметры выбора и связи параметров выбора, формат редактирования и другие параметры.
Что означают роли полей схемы компоновки
Роли полей компоновки данных служат для корректного расчета начального и конечного остатков. Указание роли позволяет СКД верно интерпретировать поле. Роли и связанные с ними настройки задаются в отдельном окне:
- Период – данная роль сообщает СКД, что поле является полем-периодом. В числовом поле рядом следует указать порядковый номер периода от самого младшего к самому большому, начиная с поля НомерСтроки. Поля периодов нельзя использовать в группировках совместно с другими полями – это связано с механизмом расчета итогов по полям остатков.
В случае, если используется поле периода – Регистратор, вместе с ним обязательно должно присутствовать дополнительное поле периода. Если в параметрах виртуальной таблицы указана периодичность “Авто”, следует выбрать поле “ПериодСекунда”; если выбрана периодичность “Регистратор”, то следует выбрать поле “Период”. - Дополнительный – установка этого флажка означает, что данное поле-период является не обязательным. В этом случае выбор дочерних периодов в отчете не требует выбора самого этого поля. Если флажок отключен, то использование дочернего поля-периода требует использования в группировке и самого данного поля. Например, стандартно при выборе периодов из виртуальной таблицы оборотов или остатков и оборотов, поля Регистратор и ПериодСекунда не являются дополнительными, а все остальные (ПериодМинута, ПериодЧас и др.) имеют признак “Дополнительный”.
Важно! При одновременном использовании группировок по неделям и по месяцам, может возникнуть дублирование группировки по неделям, в том случае, если часть недели приходится на один месяц, а часть – на другой.
Также, обратите внимание, что если поле указано в качестве поля-периода, то становится невозможным выбор подчиненных полей (реквизитов) данного поля в качестве группировки. - Измерение – данный признак сообщает СКД, что поле является измерением. Это используется для корректного расчета итогов по полям остатка. Эту роль необходимо указывать для полей группировок, по которым будет производиться расчет итогов. В случае, если группировка осуществляется не по самому измерению, а по вложенному реквизиту (например, измерение – Товар, а группировка по реквизиту Товар.Артикул), то для поля Товар.Артикул следует указать родительское поле. Для самого родительского поля также должен быть указан признак “Измерение”.
- Счет – Указание данного поля имеет смысл при рассчете итогов по полям бухгалтерских остатков. Данный признак означает, что поле является полем счета. Можно указать вид счета, указав строку на языке выражений СКД. Результатом выражения должно быть значение перечисления ВидСчета – Активный, Пассивный, Активно / Пассивный. Также можно задать вид счета числом: 0 – активный, 1 – пассивный, 2 – активно-пассивный. Если вид счета не указан, СКД будет интерпретировать данный счет как активно-пассивный.
- Остатки – роль следует указывать для полей начального и конечного остатков. Имеет смысл при работе с виртуальными таблицами регистров. Данная роль имеет следующие настройки:
Имя – произвольное имя группы полей. Должно быть одинаковым для полей начального и конечного остатков.
Тип – тип остатка: начальный или конечный
Бух.тип – при работе с регистрами бухгалтерии, следует указать тип итогов – дебит или кредит
Поле счета – также для регистров бухгалтерии. Имя поля бухгалтерского счета, для которого рассчитываются остатки
Для правильного расчета итогов в схеме компоновки данных должны обязательно присутствовать поля начального и конечного остатков с соответствующими ролями и настройками. Если в настройках компоновки будет выбрано только одно поле остатка, в результирующий макет будут добавлены оба – и начальный и конечный остаток.
Помимо перечисленных ролей, имеются два дополнительных признака:
Игнорировать значения NULL – если флаг включен, то в результат не будут включены групповые записи по данному полю, если оно содержит значение NULL
Обязательное – установка этого признака означает, что данное поле будет добавлено в итоговый макет компоновки, если хотя бы одно поле из текущего набора данных будет использоваться.
Вычисляемые поля СКД
Вычисляемые поля схемы компоновки данных – это дополнительные поля, значения которых вычисляются на основе полей наборов данных.
Таблица вычисляемых полей имеет практически тот же состав колонок, что и у основных полей. У вычисляемых полей компоновки данных отсутствует возможность строить по ним произвольную иерархию и рассчитывать итоги по остаткам. Соответственно, отсутствуют поля “Роль”, “Проверка иерархии: набор данных” и “Проверка иерархии: параметр”.
Вычисляемые поля имеют дополнительную колонку “Выражение”, которое и описывает способ вычисления поля на языке выражений СКД. Как и в любых выражениях на языке выражений СКД, можно использовать все основные поля компоновки, экспортные функции общих модулей и встроенные функции СКД.
Важно! В выражении вычисляемого поля СКД нельзя использовать другие вычисляемые поля!
Ресурсы схемы компоновки
Поскольку в схеме компоновки данных могут использоваться несколько наборов данных, связанных между собой, а также из-за возможности в качестве набора данных использовать объект – произвольную таблицу значений, в тексте запросов СКД отсутствует возможность указывать секцию итогов. Итоги в СКД рассчитываются по группировкам для всей схемы целиком.
Для описания расчетов итогов служит закладка Ресурсы. Ресурсами могут быть как поля наборов, так и вычисляемые поля компоновки.
Выражения, описывающие логику расчета итогов, записываются на языке выражений СКД. Они могут содержать, как простую агрегатную функцию (Сумма, Количество, Минимум и др.), так и сложное выражение с использованием встроенных функций СКД и экспортных процедур общих модулей.
Значением выражения может быть как число, строка или дата, так и значение ссылочного типа.
Итоговые значения ресурсов могут рассчитываться по разному для разных группировок. Например, для одной группировки ресурс рассчитывается как Минимум, а для другой как Среднее. Для этого служит настройка “Рассчитывать по”:
Как видно из скриншота выше, одно и то же поле можно указать несколько раз в качестве ресурса, при этом для каждой строки должно быть задано значение настройки “Рассчитывать по”. За счет этого можно настраивать разную логику расчета итогов одного и того же поля для разных группировок.
Если эта настройка не задана, то выражение для расчета итогов ресурса будет применено для всех группировок.
Для объектов ссылочных типов можно задать разные выражения расчета итогов отдельно для элементов и групп по иерархии.
1С СКД: виды и настройки. Оформление СКД
Что такое СКД 1С? Система компоновки данных (СКД) — это мощный механизм платформы 1С для разработки отчетов. Этот механизм позволяет максимально минимизировать использование программного кода в прикладном решении.
Если посмотреть историю релизов любого программного продукта 1С, можно увидеть, как все больше и больше отчетов строится при помощи СКД, формы отчета, которая является самой удобной. Но без знаний сделать ничего не получится, и потому снова садимся за книгу.
Работая над задачами клиентов, все чаще сталкивался с моментами, когда у заказчика были желания выделить определенным цветом колонку или текст, согласно определенным условиям. Или хотели просто другое оформление СКД, более яркое или приглушенное, чтоб не бросалось в глаза.
2. Оформление СКД. Виды стандартного оформления СКД
Еще на моменте обучения обратил внимание, что разработчики СКД сделали для специалистов, которые будут заниматься разработкой отчетов и их оформлением, огромную услугу. А именно, дали возможность выбора макета оформления.
В системе 7 вариантов макетов и видов СКД:
Эти варианты макетов можно найти на вкладке “Настройки-Другие настройки”. Но на этой вкладке также есть поля, которые помогут оформить отчет не строго по стандартному макету, а так как желает заказчик, если ему необходимо особенное оформление. (Рис 1) В основном эта вкладка отвечает за общий вид отчета.
В большинстве случаев достаточно использования стандартного макета оформления СКД. Но иногда бывают моменты, когда необходимо выделить ячейку или поле определенным цветом, в зависимости от условия, которое поставлено в техническом задании.
3. Поля и ячейки — условное оформление СКД
В этом случае на помощь приходит вкладка “Условное оформление” в той же самой вкладке 1С СКД — Настройки. Эта вкладка содержит всего лишь несколько колонок, которые заполняются разработчиком при выполнении задачи, а именно:
Представленные в 1С СКД колонки будут описаны далее с максимально детальным описанием.
Итак, колонка “Оформление”. Как раз в этой колонке и задаем те параметры оформления, которые желает заказчик в техническом задании. (Рис. 2)
Рис.2 Окно редактирования параметров колонки “Оформление”
Как мы видим, параметры оформления, которые мы можем настроить, совпадают с вкладкой “Другие настройки”. Но есть огромная разница между этими вкладками. В “Других настройках” все параметры касаются внешнего отображения формы отчета, в то время как колонка отвечает только за оформление выбранного нами поля отчета.
К примеру, заказчик хочет, чтоб текст выделялся красным жирным шрифтом в определенной ситуации, которая указана в ТЗ. В таком случае выбираем параметры “Цвет текста” и “Шрифт”. В первом параметре мы выбираем необходимый цвет, а во втором — жирность шрифта. В этой колонке разработчик может делать с оформлением практически все, что возможно. Главное правильно настроить следующие колонки.
И вот мы подошли к самому главному: к колонке “Условия”. В этой колонке мы устанавливаем условие, согласно которому будет выполняться оформление из первой колонки. Самое обычное условие, которое практически всегда необходимо заказчику это, когда значение какого-то ресурса больше другого. К примеру, так можно в 1С СКД вычислить, что когда “Сумма Реализаций” больше “Суммы оплат”, тогда должно срабатывать оформление, которое задано в первой колонке. Вариантов условий много и все они зависят от требований заказчика. Главное в этом деле, быть внимательным и сделать все правильно с первого раза, чтобы потом не краснеть перед заказчиком, когда оформление, которое он хотел, не сработает.
Следующая колонка “Оформляемое поле” также одна из важнейших в нашей задаче. С этой колонкой все предельно ясно и просто. Мы просто выбираем поле или ресурс, в котором будет срабатывать наше оформление. Но расслабляться тоже не стоит, один клик мышки и выбрано уже другое поле. И хорошо, если заметите вовремя и исправите. А если нет? Но все-таки всегда необходимо быть внимательным!
Колонок у нас осталось всего ничего. Потому еще немного придется почитать. И следующая у нас колонка “Представление”, но её мы можем пропустить, так как в основном она не используется и не заполняется.
Мы подошли к последней колонке, а именно “Область использования”. Данная колонка отвечает за то, в какой области отчета будет использоваться наше оформление. В ней имеется довольно много вариантов выбора, и этот вариант зависит только от того, где необходимо использовать оформление.
Для того чтобы сделать оформление СКД отчета согласно ТЗ, не нужно много делать, главное все правильно настроить, и все будет работать, как часы.