Печатная форма, получаемая в результате работы СКД в общем случае, не требует разработки, большинство группировок, полей и заголовков генерируются автоматически в зависимости от установленных условий оформлений. Но есть ряд задач, когда нужно для полей, группировок задать собственное оформлений. Для этого служит закладка «Макеты», где определяются секции табличного документа, которые будут выводиться в отчет.
На закладке присутствуют, список оформляемых полей/группировок/ресурсов, табличный документ с областями-секциями оформляемых полей/группировок, список параметров определенных в макете.
Для оформления доступны несколько видов макетов – макет поля, макет группировки, макет заго-ловка группировки, макет ресурсов.
Макет поля – области табличного документа, определяемые для полей. Если указать имя поля и область в табличном документе, то все результирующий отчет поле будет выведено с оформлением указанным в табличном документе.
В окне «Параметры макета» будут перечислены все параметры, которые определены в секции табличного документа, параметры можно определять для ячеек с видом заполнения «Параметр». В списке параметров можно указать выражение, которое отвечает за вывод поля в ячейку, по-умолчанию это «Представление(…)», возможно указать различные поля и реквизиты полей определенных в наборах данных.
Следующим видом оформления является оформления группировок. Если выбрать пункт «Добавить макет группировки» - откроется окно редактирования:
В диалоге можно указать имя группировки или набор полей, которые составляют группировку, т.е. оформление будут применено именно к этому составу полей. Перед этим группировки должны быть определены в настройках СКД, на закладке «Настройки». Далее указывается тип макета, доступны такие типы «Заголовок», «Подвал», «Заголовок иерархии», «Подвал иерархии», «Общий итог заголовок», «Общий итог подвал». После указания параметров группировки и типа макета, нужно указать адрес или имя области.
Именем области может служить как адрес в макете, пример – «R1C1:R10C10» или наименование области указанное в свойствах Имя для группы ячеек:
Аналогично добавляется макет для заголовков группировок.
Для оформления ресурсов используется другой специальный диалог:
Макет для вывода ресурсов можно определить по имени группировки, в которой выводятся ресурсы или же по набору полей, которые формируют данную группировку. Перед этим группировки должны быть определены в настройках СКД, на закладке «Настройки». Тип определяемых макетов такой же как и для группировок. При этом можно указать две группировки, на пересечении которых в отчете со строками и столбцами будет выводиться макет ресурсов.
Нужно заметить, что наиболее быстрый способ сформировать макет отчета воспользоваться специальным конструктором макетов для СКД.
Вызвать его можно из диалога редактирования отчета, при добавлении нового отчета:
После этого откроется окно с доступными элементами оформления:
На данной закладке перечислены все параметры, которые передаются в запрос – источник данных. В запросе параметры определяются с помощью имени параметра и знака «&», например &НачалоПериода, &КонецПериода, &СписокНомеклатуры.
1. «Имя» - имя параметра определенного в запросе или нового - введенного пользователем непосредственно в таблицу параметров.
2. «Заголовок» - наименование параметра, как оно будет, представляется пользователю в диалоге «Настройки». Чтобы отсортировать параметры, чтобы они выводились в нужном порядке в диалоге «Настройки» - можно перед именем указать порядковый номер параметра «1.», «2.» и т.д.
3. «Доступные типы» - доступные типы параметра, такие как простые типы Число, Дата, Строка, типы определенные в конфигурации – Справочники, Документы и т.д. Можно назначать составные типы. Существует также специальный тип «СтандартныйПериод». Использовать данный тип можно для задания автоматического отрезка даты и передачи его в параметры &НачальнаяДата и &КонечнаяДата. Добавляем параметр с любым именем, например, Период, указываем тип «СтандартныйПериод». Параметры &НачальнаяДата и &КонечнаяДата делаем недоступными для редактирования и в выражениях указываем &Период.ДатаНачала и &Период.ДатаОкончания, для &НачальнаяДата и &КонечнаяДата соответственно.
4. «Доступные значения» - если для параметра возможен ограниченный набор значений, то их следует указать в данном поле.
5. «Доступен список значений» - галочка влияет на последующее поле «Значения». Если галочка установлена то в поле «Значения» - доступен список значений.
6. «Значения» - значение или список значений параметра по-умолчанию.
7. «Выражение» - в данном поле можно указать выражение, по которому вычисляется пара-метр. В выражении можно использовать функции общих модулей, а также другие значения других параметров.
8. «Включать в доступные поля» - галочка регулирует видимость/невидимость параметра в списке выбранных полей диалога «Настройка».
На этой закладке можно определить пользовательские вычисляемые поля.
Состав доступных настроек такой же, как для таблицы «Поля» на закладке «Наборы данных», за исключением некоторых полей:
1. «Путь к данным» - указывается путь к данным из набора. Именно это название, указанное в этом поле будет фигурировать во всех дальнейших настройках СКД.
2. «Выражение» - как вычисляется поле. Например, для вычисления процентов по каким либо ресурсам «Выбор Когда План = 0 Тогда 0 Иначе Продажи / План Конец». Если вычисляемое поле является ресурсом, то выражение будет использоваться для детальных записей.
3. «Заголовок» - строка с заголовком поля, которые выводится в отчет или в настройках
4. «Ограничение доступности поля» - ряд галочек – настроек, служит для указания того, как данное поле не может быть использовано в настройках. Возможно, указать такие ограни-чения
a. «Поле» - поле нельзя использовать в выборках СКД
b. «Условие» - поле нельзя использовать как условие
c. «Группа» - запрет на использование поля в группировках
d. «Упорядочивание» - запрет использовать поле в сортировках
5. «Выражение представления» - содержит выражение, которое используется при выводе зна-чений поля в отчет.
6. «Выражение упорядочивания» - как упорядочивать это поле.
a. «Тип значения» - уточнение типа значения поля набора данных, полезно использо-вать для уточнения полей составного типа
На этой закладке можно указать, какие осуществляются связи между двумя и более наборами дан-ных, по каким параметрам и условиям.
1. «Источник связи» - указывается первый набор данных, от которого осуществляется связь
2. «Приемник связи» - набор данных, к которому осуществляется связь
3. «Выражение источник» - имя поля или выражение, по которому определяются значения ис-точника
4. «Выражение приемник» - имя поля или выражение на языке запросов, по которому определяются значения приемника
5. «Параметр» - имя параметра, в который помещается значение связи, может использоваться в запросе для набора данных приемника, при этом в этом параметры будут получаться данные источника соответствующие указанному значению приемника
6. «Список параметров» - указывает на допустимость использования списка параметров, очень полезно для условий использующих оператор «В»
7. «Условие связи» - перед назначением связи проверяется указанное условие и если данное выражение возвращает Истина, то связь источника и приемника устанавливается
8. «Начальное значение» - используется для указания начального значения источника связи, полезно, когда необходимо указать связь набора данных самого к себе.
Для набора данных «Объект» используется для передачи в СКД внешних данных, таких как таблица значений, результат запроса. Для этого набора данных доступны описания полей, а также название объекта, которые будет передан в СКД:
Описание полей набора данных
После определения, какого вида мы набор данных используем, следует внести описание полей для данных, выводимых в отчет:
В таблице «Поля» заполняются свойства:
1. «Поле» - имя поля, в случае запроса заполняется автоматически, в случае набора данных «Объект» определяется вручную.
2. «Путь» - указывается путь к данным из набора. Именно это название, указанное в этом поле будет фигурировать во всех дальнейших настройках СКД.
3. «Заголовок» - строка с заголовком поля, которые выводится в отчет или в настройках
4. «Ограничение доступности поля» - ряд галочек – настроек, служит для указания того, как данное поле не может быть использовано в настройках. Возможно, указать такие ограни-чения
a. «Поле» - поле нельзя использовать в выборках СКД
b. «Условие» - поле нельзя использовать как условие
c. «Группа» - запрет на использование поля в группировках
d. «Упорядочивание» - запрет использовать поле в сортировках
5. «Ограничение доступности полей-реквизитов» - ряд галочек ниже, указывает на ограничения для реквизитов поля, смысл установки данных ограничений такой же что и в для поля
6. «Роль» - обозначает дополнительные свойства поля и его взаимоотношения с другими полями. Для редактирования ролей открывается специальный диалог:
a. «Без роли» - никаких особых «нагрузок» на поле не накладывается, режим по умолчанию для большинства полей
b. «Период» - содержит номер периода, если поле имеет тип периода. Самый младший период должен иметь тип 1. Например, в запросе рассчитываем итоги по различным периодам: ПериодСекунда = 1, ПериодДень=2, ПериодНеделя=3 и т.д. Данный номер будет указывать, как в СКД рассчитывается итоги по полям остатка.
c. «Дополнительный» – указывает на то, что поле–период не является обязательным
d. «Счет» - указывает на то, что поля является бухгалтерским счетом, используется для рас-чета бухгалтерских итогов.
e. «Вид» - строка выражение, с помощью которого рассчитывается вид счета. Результатом выражения должно быть значение перечисления ВидСчета (Активный, Пассивный, Активно/Пассивный), либо число. Значение числа 0 соответствует активному счету, 1 – пассивному, 2 – активно-пассивному. Выражение записывается на языке выражений системы компоновки данных. Данная информация используется при расчете по полям бухгалтерских остатков;
f. «Остатки» – признак того, что поле является полем остатка;
g. «Имя» – строка, содержащая имя группы полей остатка. Например: "Сумма", "Количест-во";
h. «Тип» – тип остатка (НачальныйОстаток, КонечныйОстаток, Нет (поле не является остат-ком));
i. «Бух. Тип» – тип бухгалтерского остатка (Дебет, Кредит, Нет (поле не является бухгалтерским остатком));
j. «Поле счета» – имя поля-счета, для которого рассчитываются остатки;
k. Игнорировать значения NULL – если установлено, то в результат не нужно включать групповые записи по данному полю в случае, если поле содержит значение NULL.
l. «Обязательное» - при выполнении запроса поле с указанным флажком будут присутствовать всегда, даже если не были выбраны в выборке.
7. «Выражение представления» - содержит выражение, которое используется при выводе зна-чений поля в отчет.
Например нужно преобразовать дату в особый формат для этого указываем такое выражение «Формат(ПериодПолугодие,"ДФ = '""Полугодие с"" дд.ММ.гггг""'")» или ссылку на документ преобразовать к произвольному виду: ««Дата: »+Ссылка.Дата+«Номер: »+Ссылка.Номер».
8. «Выражение упорядочивания» - как упорядочивать это поле. При редактировании открывается диалог:
В диалоге можно указать, как данное поле упорядочивать. «Выражение» - как упорядочива-ется это поле, «Тип упорядочивания» - «по возрастанию» или «по убыванию», «Необходи-мость автоупорядочивания» – автоматическое определение полей, по которым необходимо упорядочивать результат компоновки данных.
9. «Проверка иерархии» - используется, в случае если нужно формировать нестандартные отборы.
a. «Набор данных» – набор данных для проверки иерархии;
b. «Параметр» – параметр, в который будет подставляться значение, для которого нужно получить дочерние элементы;
10. «Тип значения» - уточнение типа значения поля набора данных, полезно использховать для уточнения полей составного типа
11. «Оформление» - параметры оформления поля набора данных. При редактировании открывается диалог:
Можно задавать следующие параметры:
Цвет фона - Определяет цвет фона в ячеках
Цвет текста - Определяет цвет текст в ячейках
Цвет в диаграмме - Определяет цвет линий в диа-грамме
Цвет границы - Цвет линий границы
Стиль границы - Типы линий границы
Стиль границы слева - слева
Стиль границы сверху - сверху
Стиль границы справа - справа
Стиль границы снизу - снизу
Шрифт - Вид шрифта, толщина, наклон и т.д.
Отступ - Количество знаков отступа
Авто отступ - Количество знаков отступа, применяется в группировках
Горизонтальное положение - Положение текста в ячейке по горизонтали
Вертикальное положение - Положение текста в ячейке по вертикале
Размещение - Размещение текста который не помещается в ячейку
Ориентация текста - Ориентация текст в градусах (90-поворот перпендикулярно)
Формат - Форматная строка значения
Выделять отрицательные - Признак того чтобы выделять отрицательные значения
Минимальная ширина - Минимальная ширина ячейки в пунктах
Минимальная высота - Минимальная высота ячеки
Максимальная высота - Максимальная высота
Текст - Текст который выводится вместо значения
Далее, эти параметры используются для настройки условного оформления при выводе полей в отчет.
Кроме элементов полей в описании могут присутствовать папки, которые служат для организации расположения полей в доступных полях.
Для того чтобы поместить поле в папку, нужно создать папку, например «Отбор», далее для полей помещаемых в папку указать путь через точку: «Отбор.Организация», «Отбор.Подразделения». После этого в доступных полях при настройке мы увидим папку, содержащую указанные нами элементы.
Конструктор запроса состоит из следующих закладок:
1. «Таблицы и поля» - на закладке три иерархических списка:
a. «База данных» - перечислены все доступные объекта, к которым можно сделать за-прос. Также кнопка «Отображать таблицы изменений» , с помощью которой можно получить доступ к таблицам изменений объектов ИБ, если они регистрируются для какого либо плана обмена.
b. «Таблицы» - список выбранных таблиц, к которым будет выполнен запрос. Также в этом окне можно удалить таблицу, переименовать или заменить таблицу, а также добавить внутренний запрос.
Для виртуальных таблиц можно назначать параметры, нажав на кнопку «Параметры виртуальных таблиц»:
Рекомендуется активно использовать параметры виртуальных таблиц для отборов по тем или иным измерениям, поскольку при этом увеличивается скорость выполнения запроса. В параметрах можно использовать внешние переменные, название которых предваряется знаком «&».
c. «Поля» - список полей, которые выбираются из таблиц. Также можно добавить вычисляемые поля, для этого при нажатии кнопки «Добавить» открывается конструктор произвольного выражения:
Слева окно с доступными в выражении полями. Справа подсказку используемых функций. Внизу конструируемое произвольное выражение. В выражениях можно использовать внешние параметры, для их обозначения используется знак «&», например: &Период, &ДатаНач Нужно быть внимательным, если в окне будет набрано длинное и сложное выра-жение, в котором будет небольшая синтаксическая ошибка, то после нажатия кноп-ки «ОК» система выдаст предупреждение и закроет окно. Весь набранный код бу-дет потерян, поэтому рекомендую, если нет уверены в правильности выражения, то перед закрытием конструктора всегда сохраняйте содержимое в буфер обмена (Ctrl-C).
2. «Связи» - на закладке указываются связи между таблицами.
В таблице указываются связываемые таблицы, отношение между связываемыми таблицами и усло-вие связи. Если условие связи сложно, то можно указать некое вычисляемое выражение, при этом откроется конструктор произвольного поля.
3. «Группировка» - на закладке указываются, какие поля группируются, а какие агрегируются (суммируются).
4. Закладка «Условия» - перечисляются условия которые накладываются на запрос.
В условиях тоже можно писать сложные выражения с помощью конструктора простых выражения и ис-пользованием внешних переменных:
5. «Дополнительно»
Дополнительные параметры, накладываемые на запрос
6. «Объединения и псевдонимы»
На этой закладке можно назначать псевдонимы для полей , а также управлять запросами которые соединяется через конструкции «ОБЪЕДИНИТЬ» или «ОБЪЕДИНИТЬ ВСЕ»
7. «Порядок»
В каком порядке будут выводиться получаться результаты запроса
Внимание! В низу закладки можно видеть галочку «Автоупорядочивание» - в текущей версии 1С 8.1 в СКД она бесполезна, более того при установленной галочке при записи СКД выдает ошибку, так что ею пользоваться не стоит.
8. «Компоновка данных»
Закладка, в которой определятся служебные поля для СКД. Играет примерно такую же роль, что и закладка «Построитель отчета» в обычном конструкторе отчетов.
a. На закладке «Таблицы» - перечислены таблицы, используемые в запросе, можно указать обязательность включения таблицы в запрос, галочкой «Обязательная». Т.е. если никакие поля в выборку не попадают, то данная таблица в запросе вообще не участвует. Также можно указать параметры для таблиц.
В процессе настройки СКД, мы задаем, какие либо отборы, то все значения отборов будут подставлены в параметры виртуальных таблиц, что снова нам поможет оптимизировать и ускорить запрос.
b. На закладке «Поля» - перечислены поля и их псевдонимы, которые будут добавляться в список полей СКД.
c. «Условия» - в случае указания отборов в настройках СКД, все значения отборов будут добавляться как дополнительные условия, в условия можно также добавлять сложные выражения.
9. «Характеристики»
Закладка, не имеющая аналога в обычном конструкторе выходной фор-мы.
Даная закладка обеспечивает расширение работы запросов с характеристиками. Таблица на закладке состоит из нескольких полей:
a. «Тип значения» - тип для которого будут выбираться характеристики. Например если указать «СправочникСсылка.Номенклатура», то в запросе будут выбираться все характеристики для номенклатуры.
b. «Источник» - источник для свойств видов характеристик, может быть запрос или таблица. В данном поле мы можем написать запрос выборки только тех свойств, которые нам нужны.
c. «Список характеристик» - поле в котором указывается источник для свойств характери-стик. Чаще всего это план видов характеристик или запрос. Также нужно указать поля, которые отвечают за «Идентификатор», «Имя» и «Тип» свойства.
d. «Источник» - следующее поле, в котором указываем источник значений характеристик, тоже может быть или таблица или запрос.
e. «Значение характеристик» - таблица или запрос, которые получает значения характери-стик. Например, таблицей значений характеристик может служить регистр сведений «ЗначенияСвойствОбъектов». Мы также должны указать те поля из таблицы (или запро-са), что отвечают за «Объект», «Свойство» и «Значение» характеристики.
После редактирования запроса, текст запроса можно видеть в окне под список полей. Ниже галочкой «Автозаполнение» мы можем регулировать заполнение дополнительных параметров для полей определенных в запросе. Следует обратить внимание, что состав полей определяется только в самом запросе.
На этой закладке определяются источники данных, наборы данных, поля, которые выводятся в отчет и конструируется запрос.
Набор и источники данных
Крайнее слева окно на закладке «Набор данных» определяет набор и источники данных. Наборы данных в СКД описывают поля, которые можно получать из данного источника, какие поля можно использовать для группировки, отборов и т.д.
Сейчас доступны такие наборы данных:
• Запрос – данные выбираются запросом;
• Объект – внешний источник данных, который можно передавать в СКД, например результат запроса, таблица значений;
• Объединение - описываются наборы данных – составные части объединения;
Наборов данных может быть добавлено несколько. Далее их объединение может быть осуществлено на закладке «Связи наборов данных».
Если мы добавим первый набор данных, то можем заметить, что автоматически добавился новый источник данных. На данный момент доступен только один тип источника данных, где в качестве источника данных выступает информационная база 1С:Предприятия 8.1. Смысл такой, что набор данных «Запрос» содержит свойство – текст запроса, который должен быть записан в терминах ис-точника, сейчас это язык запросов 1С. Можно отредактировать наименование источника данных, если выделить строку «Наборы данных», то активизируется окно справа - список источников данных.
Набор данных «Запрос»
Данный набор указывает на то, что данные из базы будут выбираться запросом.
В нижней части окна можно увидеть поле текстового документа для непосредственного редактирования запроса, как и с любым текстом, запрос можно копировать, вырезать текст запроса, вставлять куски из другого текста.
Для набора данных «Запрос» можно вызвать конструктор, нажав на кнопку «Конструктор запроса». Откроется слегка модифицированный для СКД конструктор запросов:
Порядок закладок на экране отображает этапы построения отчета.
1. «Набор данных» - формирование источников и наборов данных
2. «Связи наборов данных» - связь между наборами
3. «Вычисляемы поля» - определение вычисляемых полей
4. «Ресурсы» - указание состава ресурсов
5. «Параметры» - назначение параметров
6. «Макеты» - создание макетов
7. «Вложенные схемы» - указание вложенных СКД
8. «Настройки» - окончательные пользовательские настройки СКД
Наиболее важной закладкой является «Набор данных», если в процессе построения отчета мы мо-жем не пользоваться некоторыми закладки и предоставляемыми на них функциями, то заполнить наборы данных мы обязаны. Также на этой закладке мы можем сохранить/загрузить схему СКД во внешний файл XML.
Для того чтобы начать работать с СКД, загружаемся в 1С в режиме «Конфигуратор». Далее в дереве конфигурации выбираем раздел «Отчеты» и правым кликом вызвать контекстное меню, клацаем на пункт «Добавить»:
Для того чтобы добавить внешний отчет нужно нажать Файл – Новый – Внешний отчет. Теперь внешние отчеты, которые способные работать с СКД имеют расширение «erf», а внешние обработки (также как и старые внешние отчеты) имеют старое расширение «epf». Данное различие отражено в окне выбора создаваемого объекта:
Нажимаем «Внешний отчет» и появляется форма настройки отчета:
Как заметим по сравнению со старыми отчетами/обработками отличие только в кнопке «Открыть схему компоновки данных» и реквизите «Открыть схему компоновки данных». После нажатия на кнопку «Открыть схему компоновки данных» - открывается конструктор схемы компоновки данных:
Также работать с СКД можно в режиме «Предприятия». Для этого нужно с диска ИТС скачать отчет «КонсольОтчетов.erf».
Новый отчет в консоли создается добавление нового элемента в окне «Отчеты», также после этого откроется окно конструктора схемы компоновки:
Система компоновки данных (СКД) – является визуальным средством для построения и вывода отчетов, без использования кодирования на языке 1С. Т.е. мы можем задавать источники данных, способ их вывода на экран, при этом, не написав ни строчки кода.
Сама идея СКД не является чем-то новым, данный принцип использован во множестве программ. Нечто похожее реализовано в MS Access, MS SQL 2005, также существуют встраиваемые в различные среды разработки компонент, самый типичный FastReport.
В 1С уже есть конструктор выходной формы , который может формировать простые отчеты.
Но когда возникает потребность в формировании отчетов с сложной структурой, тут приходится полученный конструктором отчет серьезно переделывать. Также в типовых конфигурациях (УПП, УТ, БП) можно формировать отчеты на основе «УниверсальныйОтчет». В других конфигурация есть свои механизмы, например в конфигурациях фирмы Рарус формирования отчетов происходит на основе создаваемого вручную макета:
В системе компоновки данных существует возможность выводить отчет не только в табличный документ, но и в коллекции значений (таблица значений, дерево значений).
Для вывода отчета в коллекцию предназначен объект ПроцессорВыводаРезультатаКомпоновкиВКоллекциюЗначений.
Пример вывода отчета в дерево значений:
В данном примере результат вывода помещается в переменную ДеревоЗначений.
Работа с выводом в таблицу значений аналогична.
Стоит отметить, что при выводе результата компоновки в коллекцию значений существует несколько ограничений:
* В настройках нельзя использовать таблицы, диаграммы и вложенные схемы;
* Не используется условное оформление;
* Игнорируются папки в выбранных полях. also Как отчет на СКД сохранить в таблицу значений, а потом выгрузить в файл?
Для удобства работы с параметрами типа дата, в системе компоновки данных существует возможность использовать Стандартные периоды.
Как же их использовать?
Мы имеем отчет, в котором 2 параметра: Начало периода и Конец периода. Добавим в параметры третий параметр, назовем его Стандартный период и установим ему тип СтандартныйПериод.
Для параметров Начало периода и Конец периода в Выражение запишем следующее: &СтандартныйПериод.ДатаНачала
&СтандартныйПериод.ДатаОкончания
Также у этих параметров установим галку Ограничение доступности.
Все. Теперь можно пользоваться возможностями стандартного периода:
Кроме того, стандартная дата окончания содержит время 23:59:59 что избавляет от проблемы, когда в отчет не попадают данные за последний день! also
Пользователь выбрал период формирования отчета с 1июля по 31. Почему при формировании отчета в него не попадают данные за 31 число?
На самом деле, это одна из самых распространенных ошибок при разработке отчетов. В 1С 8.х дата содержит время с точностью до секунды, и если в своем отчете Вы описываете параметры следующим образом:
то при формировании пользователем отчета с 1 по 31 июля, фактически параметры будут заполнены так: НачалоПериода = 01.07.2010. 0:00:00, КонецПериода = 31.07.2010. 0:00:00. Т.е. данные, отличные от начала дня 31-го числа в отчет не попадут.
Для того, чтобы в отчет попали данные и за весь день 31 июля, необходимо написать в поле Выражение параметра КонецПериода следующее:
КонецПериода(&КонецПериода,"День")
Тут КонецПериода() – функция языка выражений системы компоновки данных. also