Автор: Хрусталева Е.Ю.
Теги: организация производства управление экономика предприятий программирование на эвм компьютерные программы экономика экономические науки программирование менеджмент программное обеспечение бизнес базы данных компьютерные технологии
ISBN: 978-5-9677-1698-0
Год: 2012
Е. Ю. Хрусталева
Разработка
сложных отчетов
в «1С:Предприятии 8»
Система компоновки данных
2-е издание
Москва
2012
УДК 658.012.011.56:004.42
ББК 65.29
Х95
Х95 Хрусталева Е. Ю. Разработка сложных отчетов в «1С:Предприятии 8». Система
компоновки данных / Е. Ю. Хрусталева. - 2-е изд. - М.: 1С-Паблишинг, 2012. -
484 с.: ил. - (Библиотека разработчика).
18ВК 978-5-9677-1698-0
Книга адресована разработчикам прикладных решений в системе «1С:Предприятие 8». Она
позволяет самостоятельно изучить возможности системы компоновки данных.
Все примеры второго издания книги основаны на версии 8.2 платформы «1С:Предприятие»
и адаптированы для нее. Описаны новые возможности системы компоновки данных, появившиеся
в платформе 8.2.
Для начинающих разработчиков в книге описывается устройство системы компоновки данных,
приводятся простые примеры создания отчетов, снабженные большим количеством иллюстраций
и комментариев.
Значительная часть книги посвящена выполнению практических примеров создания
и настройки сложных отчетов. Эти примеры можно использовать для того, чтобы попрактиковаться
в создании и модификации отчетов, использующих систему компоновки данных.
Для опытных разработчиков книга содержит подробное описание отдельных возможностей
системы компоновки данных. Эту часть книги можно использовать в качестве справочного пособия
или для более глубокого изучения возможностей механизма.
Все примеры, рассматриваемые в книге, содержатся на прилагаемом компакт-диске.
Для создания примеров использована платформа «1С:Предприятие» версии 8.2.15.301.
Книга выпущена под редакцией Максима Радченко.
Группа подготовки издания:
Дизайн обложки - Кира Федотова.
Литературное редактирование, корректура - Елена Семененко.
Верстка, препресс - Ольга Шестакова.
18ВК 978-5-9677-1698-0
Все права защищены. Никакая часть данной книги не может быть вос-
произведена в какой бы то ни было форме без письменного разреше-
ния владельцев авторских прав.
Полное или частичное копирование материалов книги без письменно-
го разрешения фирмы «1С-Паблишинг» запрещается.
© ООО «1С-Паблишинг», 2012
© Оформление. ООО «1С-Паблишинг», 2012
Оглавление
Предисловие................................................................7
Кому предназначена эта книга.............................................7
Источники информации.....................................................7
Как читать...............................................................7
Структура................................................................8
Что находится на компакт-диске......................................... 8
Глава 1. Устройство системы компоновки данных..............................9
Схема компоновки данных.................................................12
Наборы данных.........................................................13
Связи наборов данных..................................................13
Вычисляемые поля......................................................14
Ресурсы...............................................................14
Параметры.............................................................15
Макеты................................................................16
Вложенные схемы.......................................................16
Настройки.............................................................17
Пример изменения настроек...............................................21
Глава 2. Примеры разработки отчетов.......................................27
Исходные данные для примеров.......................................... 27
Пример 1. Набор данных - запрос.........................................28
Визуальное конструирование............................................29
Варианты отчета..........................................................37
Настройка отдельных группировок..........................................42
Пример 2...................................................................48
Вычисляемые поля.........................................................49
Параметры. Период отчета.................................................50
Быстрые пользовательские настройки.......................................53
Системные поля...........................................................55
Обязательность использования параметров..................................57
Пример 3. Связь наборов данных.............................................58
Пример 4. Связь таблиц внутри набора данных................................64
Связывание таблиц в запросе..............................................65
Программный запуск отчета................................................69
Пример 5. Набор данных - объединение.......................................72
Пример 6. Автоматическое формирование отчета...............................78
Пример 7...................................................................81
Передача параметров в запрос набора данных...............................84
Программная установка параметров отчета..................................90
Примере....................................................................92
Извлечение данных по периодам............................................93
Интерактивное оформление отчета..........................................99
Пример 9. Свободная структура таблицы отчета..............................106
Пример 10.................................................................112
Связь наборов данных по периодам........................................114
Функциональные опции....................................................119
Пример 11.................................................................126
Характеристики в отчете.................................................127
Вывод данных в диаграмму................................................129
Пример 12.................................................................135
Детализация в выбранном периоде.........................................135
Выражения для представления полей.......................................138
Характеристики в метаданных.............................................142
Вывод всех дат в периоде............................................... 147
Пример 13.................................................................152
Пользовательские поля...................................................155
Вложенный отчет.........................................................157
Пример 14.................................................................167
Расчет итогов по полям остатка..........................................171
Вывод в диаграмму нескольких ресурсов...................................177
Пример 15.................................................................183
Набор данных - объект...................................................183
Программная компоновка..................................................189
Общий макет оформления..................................................192
Макет оформления в схеме компоновки.....................................196
Пример 16.................................................................203
Вывод иерархических данных..............................................203
Вывод данных в собственной иерархии.....................................204
Стандартная расшифровка полей отчета....................................210
Переопределение поля для расшифровки....................................211
Изменение действий расшифровки..........................................215
Пример 17.................................................................218
Язык выражений..........................................................219
Вывод отчета в общую форму..............................................228
Фоновое выполнение отчета...............................................232
Пример 18. Работа с системой компоновки данных из встроенного языка.......233
Заполнение наборов данных и компоновка отчета...........................237
Настройка отчета........................................................240
Описание схемы компоновки данных........................................243
Пример 19. Консоль системы компоновки данных..............................247
Глава 3. Справочник разработчика............................................265
Общие возможности.........................................................265
Получение итогов по всем датам в выбранном периоде......................265
Характеристики..........................................................276
Иерархия................................................................291
Расшифровка.............................................................309
Расчет итогов по полям остатка..........................................320
Связи наборов данных....................................................325
Расчет итогов...........................................................332
Использование нескольких схем компоновки для одного отчета..............336
Многоязычные отчеты.....................................................339
Поля......................................................................347
Автоматическое заполнение полей.........................................347
Использование автополей.................................................353
Переопределение представления полей.....................................357
Вычисляемые поля........................................................359
Пользовательские поля...................................................363
Роли полей..............................................................366
Поля-реквизиты..........................................................369
Функциональные опции и права на просмотр поля в отчете..................370
Ресурсы...................................................................372
Параметры.................................................................378
Использование дат.......................................................379
Использование стандартных периодов......................................380
Макеты.....................................................................382
Предопределенные макеты..................................................383
Макеты оформления........................................................396
Настройки отчета...........................................................401
Конструктор настроек.....................................................401
Варианты отчета..........................................................404
Пользовательские настройки...............................................409
Хранилище вариантов и хранилище пользовательских настроек................414
Фиксированные настройки..................................................419
Упорядочивание...........................................................420
Отбор....................................................................425
Расположение реквизитов..................................................430
Настройка группировок....................................................432
Расположение ресурсов....................................................457
Расположение группы выбранных полей......................................460
Заголовки выбранных полей................................................462
Расположение общих итогов................................................462
Отображение заголовков, параметров данных и отборов......................466
Настройки диаграмм.......................................................469
Условное оформление......................................................472
Работа с системой компоновки средствами встроенного языка..................476
Установка схемы компоновки данных........................................476
Редактирование стандартных настроек......................................477
Работа с параметрами схемы компоновки....................................479
Редактирование настроек схемы компоновки.................................480
Редактирование настроек не основной схемы компоновки.....................481
Вывод отчета.............................................................482
Вывод в дерево значений, таблицу значений
для дальнейшей программной обработки.....................................483
Предисловие
Кому предназначена эта книга
Целью автоматизации хозяйственной деятельности любой фирмы в конечном
итоге является формирование разнообразной отчетности, удовлетворя-
ющей интересам бухгалтерского, финансового и административного учета.
Для решения этой задачи в платформе «1С:Предприятие» используется
специальный механизм построения аналитической отчетности - система
компоновки данных, который рассмотрен в этой книге.
Источники информации
При создании этой книги использовались различные источники информации:
а материалы информационно-технологической поддержки (ИТС) фирмы
«1С»;
в материалы конференции партнеров-разработчиков на 1Шр://рагЦ1ег8. у8.1 с.ги;
в материалы независимых интернет-конференций, посвященных разработке
в системе «1С:Предприятие 8».
Как читать
В книге доступно, шаг за шагом описана работа с системой компоновки
данных. Рассматривается ее общее назначение, и демонстрируются ее разно-
образные свойства на многочисленных примерах, основанных на реальных
задачах и построенных по принципу от простого к сложному. Примеры
содержатся в демонстрационной информационной базе, прилагающейся
к книге. Кроме того, даны ответы на наиболее часто встречающиеся вопросы
разработчиков на партнерских конференциях и других интернет-форумах
по данной теме.
Книгу можно читать как последовательно, так и только отдельные ее главы
в зависимости от потребностей читателя.
Для достаточно опытных разработчиков, а также тех, кто не имеет времени
и желания разбираться во всех деталях системы компоновки данных, будут
полезны общая теоретическая информация о механизме из первой главы
и информация обо всех возможностях и тонкостях системы компоновки
из третьей главы (стр. 265).
Разработчикам, не знакомым с системой компоновки данных и имеющим
мало опыта разработки в «1С:Предприятии», рекомендуется начинать читать
книгу с первой главы, а также поупражняться в создании отчетов, описанных
во второй главе (стр. 27).
Читателям, желающим получить наиболее полное представление о системе
компоновки данных и опыт работы с ней, советуем читать книгу последова-
тельно и внимательно, подробно разбирая заинтересовавшие примеры.
Структура
В первой главе содержится теоретическая информация о системе компоновки
данных, описываются общие принципы работы этого механизма, рассматри-
вается последовательность и назначение каждого этапа компоновки.
Вторая глава содержит большой набор разнообразных практических примеров
по созданию и модификации отчетов. Она будет полезна для разработчиков,
желающих получить реальные навыки по разработке отчетов с помощью
системы компоновки данных.
Третья глава посвящена детальному рассмотрению отдельных возможностей
системы компоновки данных. Она предназначена в первую очередь разра-
ботчикам, уже знакомым с азами разработки отчетов и желающим получить
более глубокую и конкретную информацию по тем или иным возможностям
системы компоновки данных.
Что находится на компакт-диске
108.ей - файл выгрузки демонстрационной информационной базы с приме-
рами отчетов, описанных в книге.
Глава 1. Устройство
системы компоновки
данных
В данной главе описывается общее устройство системы компоновки данных,
рассматривается последовательность и назначение каждого этапа компо-
новки. Подробно описываются все составляющие схемы компоновки данных,
структура отчета и его настроек.
Система компоновки данных - мощный и гибкий инструмент для создания
отчетов на основе их декларативного описания. Использование декларатив-
ного описания отчетов позволяет реализовать следующие возможности:
я создание отчета без программирования,
я возможность создания различных вариантов отчета,
я возможность задания различных вариантов пользовательских настроек,
я использование автоматически генерируемых форм просмотра и настройки
отчета,
я разбиение исполнения отчета на этапы,
я исполнение отдельных этапов построения отчета на различных компью-
терах,
я независимое использование отдельных частей системы компоновки
данных,
я программное влияние на процесс выполнения отчета,
я настройки структуры отчета,
и совмещение в отчете нескольких таблиц,
я создание вложенных отчетов и др.
Система компоновки данных состоит из набора элементов, каждый
из которых имеет свое декларативное описание, возможность программного
доступа и сериализации, то есть сохранения в ХМЬ или загрузки из ХМЬ.
Это позволяет гибко управлять всеми этапами выполнения отчета.
Формирование отчета с использованием системы компоновки данных разби-
вается на несколько этапов. При этом разбиение на этапы - не логическое,
а физическое. То есть в каждый из этих этапов разработчик может вмешаться,
программно или визуально, выполнить различные этапы компоновки данных
в различных модулях и даже на различных компьютерах (рис. 1.1).
Схема
компоновки
данных
компоновки
данных
Результирующий
документ
--------,—,
Настройки
Компоновщик
макета
Процессор
вывода
Макет
компоновки
данных
Процессор
компоновки
данных
Рис. 1.1. Схема взаимодействия объектов системы компоновки данных
На схеме представлены следующие этапы формирования отчета:
1. Разработчик создает схему компоновки данных и стандартные настройки
компоновки, которые содержат полную информацию о компоновке.
2. На основе схемы компоновки данных и настроек компоновки компо-
новщик макета создает макет компоновки данных, который является уже
готовым заданием для процессора компоновки.
3. Процессор компоновки данных в соответствии с макетом компоновки
извлекает данные из информационной базы, агрегирует, оформляет
эти данные и формирует результат компоновки. Результат компоновки
состоит из массива элементов, которые можно получать последовательно,
но в большинстве случаев результат компоновки получается целиком.
4. Процессор вывода обрабатывает результат компоновки и выводит его
в различные форматы:
□ табличный документ,
□ НТМЬ-документ,
□ таблица значений,
□ дерево значений.
Процесс разработки отчета с помощью системы компоновки данных и его
дальнейшего использования на практике реализуется следующим образом.
Исходя из прикладной задачи, для которой разрабатывается отчет, разра-
ботчик создает схему компоновки данных, в которой описывает наборы
данных, связи между ними, определяет поля отчета, параметры получения
данных и т. п., а также задает стандартные настройки компоновки данных -
структуру отчета, порядок, отбор и другие.
У каждого отчета разработчик может предусмотреть несколько вариантов
настроек, представляющих данные в виде диаграммы, таблицы или группи-
ровок, имеющих различный состав полей, итогов и т. п. Разработчик может
описать, какие настройки отчета будут доступны пользователю (пользова-
тельские настройки) и какие из этих настроек будут присутствовать прямо
в форме отчета (быстрые пользовательские настройки). С их помощью
пользователь может настроить вариант отчета под себя и сохранить его для
дальнейшего использования.
Пользователь запускает отчет. При его формировании выполняется
программная компоновка данных и вывод результатов компоновки поль-
зователю. Данные в отчете выводятся в соответствии со стандартными
настройками для основного варианта отчета.
Пользователь может выбрать вариант отчета, являющийся с его точки зрения
наиболее информативным, а может, при желании и соответствующей квали-
фикации, задать собственные настройки и получить другой отчет, основанный
на той же схеме компоновки данных. При этом данные будут представлены
в соответствии с пользовательскими настройками.
Таким образом, на основе одной схемы компоновки данных может быть
получено множество различных отчетов. Применение настроек компоновки
данных, созданных разработчиком или измененных пользователем, к схеме
компоновки данных и определяет конечный результат. Этот процесс может
быть представлен с помощью следующей схемы (рис. 1.2).
Пользователь
Рис. 1.2. Схема разработки и использования отчета
с помощью системы компоновки данных
Схема компоновки данных
Основой для компоновки отчета является схема компоновки данных. Создание
схемы компоновки данных может быть выполнено:
визуально при помощи конструктора схемы компоновки данных;
визуально при помощи любого редактора, позволяющего редактировать
текст ХМЬ;
программно при помощи объектов встроенного языка системы
«1 С:Предприятие».
Схема компоновки данных содержит следующие разделы:
наборы данных,
связи наборов данных,
вычисляемые поля,
ресурсы,
параметры,
макеты,
вложенные схемы,
настройки.
Наборы данных
Наборы данных являются источниками данных для отчета и описывают
способ получения этих данных. Данные можно получить из информаци-
онной базы или из некоторых объектов, находящихся в памяти (например,
из таблицы значений). Один отчет может использовать одновременно
несколько наборов данных, отбирая, объединяя и связывая между собой
данные из разных наборов.
Существуют различные виды наборов данных. Они отличаются тем, откуда
получаются данные и как эти данные обрабатываются:
и Запрос - содержит запрос к базе данных на языке запросов с использова-
нием дополнительных синтаксических элементов (расширений);
е Объект - содержит информацию о внешнем наборе данных, например,
таблице значений;
! Объединение - объединяет информацию из нескольких наборов данных.
Разработчик, создавая схему компоновки данных, может добавить в нее
наборы данных такого вида и в таком количестве, которые ему необхо-
димы. В зависимости от вида набора данных нужно выполнить различные
действия для того, чтобы отчет мог использовать данные этого набора.
Например, если используется набор данных - запрос, то в схеме компоновки
данных нужно задать текст запроса, обращающегося к информационной базе
«1С:Предприятия». Если используется набор данных - объект, то в схеме
компоновки нужно описать поля этого набора данных, чтобы система компо-
новки знала, данные какого типа будут получены из этого набора, затем
с помощью встроенного языка создать внешний набор данных и иници-
ализировать им процессор компоновки данных. Если используется набор
данных - объединение, то в схеме компоновки данных нужно описать
наборы данных, которые входят в это объединение.
Типичные сценарии использования наборов данных содержатся в первых
четырех примерах второй главы стр. 27.
Связи наборов данных
Схема компоновки данных может содержать несколько наборов данных.
В случае, когда требуется получить связанную информацию из этих
наборов, в схеме компоновки данных описывается их связь по какому-то
полю. При связывании наборов данных в схеме компоновки используется
Левое соединение.
Однако в случае, если требуется вывести в отчет все записи из обоих
наборов данных, используется набор данных - объединение. Такой набор
содержит два или более подчиненных набора данных, но информация в них
не связывается, а объединяется. По аналогии с языком запросов в этом
случае используется Объединение.
Отличие связывания и объединения наборов данных рассматривается
во второй главе на стр. 77.
Вычисляемые поля
Отчет может содержать не только те поля, которые описаны в наборе данных,
но и дополнительные поля, созданные разработчиком и вычисляющиеся на
их основе (стр. 49). Значения этих полей получаются в результате вычис-
ления выражений, написанных разработчиком в схеме компоновки данных,
или в результате выполнения функций, описанных в общих модулях конфи-
гурации. В приведенном примере выводится вычисляемое поле Прибыль как
разница между полями СтоимостьПриход и СтоимостьРасход (рис. 1.3).
Продажа системных блоков
I Параметры: Начало периода: 01.12.2011
Конец периода: 31.12 .2011
Склад Системный @лок Количество Приход Количество Расход Конечный остаток Стоимость Стоимость Приход Расход ^Трибыль^
Основной 2 2 17 500,00 20 000.00 2 500,00
Компьютер для дома 1' л 9 000,01 10000Д 1 000,00
Компьютер для офиса г 1' 11 8 500.001 10 000,ОС 1 500,00
Итого 2 2 17 90 00 20 000 001 ^ 2 500,00/
Рис. 1.3. Вывод в отчете вычисляемого поля
Ресурсы
При исполнении отчета с помощью системы компоновки данных из источ-
ника данных, например из информационной базы данных, извлекаются
данные для отчета. В базе данных они представлены в виде таблиц. Соот-
ветственно, все эти данные можно построчно вывести в отчет. Это детальные
записи. Но поскольку, как правило, эти данные привязаны к некоторым иерар-
хическим данным (например, в отчет выводятся остатки номенклатуры,
где номенклатура содержит многоуровневые группы), то возникает желание
сгруппировать записи в отчете и показать остатки номенклатуры по группам
(например, сколько на складе телевизоров определенной марки и сколько
телевизоров в целом). Для этого система компоновки данных может рассчи-
тывать и добавлять в отчет записи, которые называются итоговыми. Этих
записей в явном виде нет в базе данных, но они получаются в результате
исполнения отчета, на основании некоторой обработки детальных записей,
которую выполняет система компоновки данных.
Эти групповые итоговые данные называются ресурсами схемы компоновки
данных (стр. 370). Обычно данные в отчете группируются по каким-то
позициям, например по номенклатуре. Смысл группировки не только в опре-
деленном расположении данных, но и в выводе итоговых данных - ресурсов
по этой группировке. На основании значений ресурсов формируются общие
итоги отчета.
В приведенном примере детальные записи группируются по складам и выво-
дятся групповые и общие итоги отчета (рис. 1.4).
Остатки номенклатуры
Склад Йоменкиачла , Начальный Приход Расход Конечный
остаток остаток д
Основной V . ' '
; Материнская плата 5,1 • Щ 3,000 з,ооо! 2,000
; Память 5,000! 2,000
, Жесткий диск 3.000;. 3,000‘
РшииЧИм? .’. -?; С. 24,СМ; 7 МО
| Монитор !_Г:П> 4,обо! 2,000; 2,0001
I Веб-камера 10.000! 3,000| 7.0001
Микрофон 50,001 2,000; 8 000!
Ж,О0Й! 16,000 21 000»]
Рис. 1.4. Вывод ресурсов в группировке
В таблице ресурсы выводятся как бы на пересечении соответствующей строки
и колонки таблицы, например остатки конкретного товара на конкретном
складе. В приведенном примере в отчет выводится таблица, в которой
в колонках данные сгруппированы по складам, а в строках - по номенкла-
туре (рис. 1.5).
Номенклатура Г -11 - - « Основной Приход ! { Расход Конечный остаток 'Розничный . Приход ' Расход ч । Итого 1 • Конечный Приход уостаток ! Расход Конечный остаток
Веб-камера — Жесткий диск Материнская плата Микрофон Монитор ОСО Память г- ЗД00< 3,000 ’ 1 10,000’ 3,000 7,0001 10,000; з',6оо! 3,000 7.000;
( 1 ! 3,000. 17, .7 3.000’ 17 2,000, ; ' 2,обо; "з,обб- I
1 5,000 1 г 3,000 2.00С 1 10.000. 2.000 и 8400 ...5,000; '' "Го,666] | "~4,ооо; 2,000 в,обо
5.0011' [ 4,000 2,000' 2,0001 2,000
з.оооэ . !,ооо ; 1 1 5,000: 2,000"
Итого- 13,000 9,000, 4.00С ^„24Д)00 7.000_ _17ДЮ| 37,000 16,000; 21,0001 I
Рис. 1.5. Вывод ресурсов в таблице
Таким образом, для вывода таблиц и диаграмм обязательно определять
ресурсы для отчета. Отчет, выводящий данные в группировку, может и не
содержать ресурсов. Например, в случае вывода простых списков, когда
групповые итоги не нужны.
Параметры
Параметры являются критериями получения данных для отчета (стр. 376).
Параметры могут быть явно определены в запросе, например вид номенкла-
туры (&ВидНоменклатуры), а могут быть параметрами виртуальных таблиц
базы данных, например начало и конец отчетного периода. Как правило, пара-
метры выводятся пользователю перед формированием отчета. Затем заданные
пользователем значения параметров передаются в отчет, и отчет формиру-
ется заново, например с новым отчетным периодом (рис. 1.6).
•с . тчет Оос~..> •►..<6. ».8м• ,_емонс/раци »•»»к [1С.Препприятие) « М Р' М- » _ X
I Отчет по системным блокам
Рис. 1.6. Вывод в отчете параметров отчетного периода
Макеты
По умолчанию внешний вид отчета формируется системой автоматически.
Но разработчик может задать собственное расположение и оформление
различных областей отчета. Для этого в схеме компоновки данных создаются
предопределенные макеты (стр. 381). В отличие от стандартных макетов оформ-
ления, предопределенные макеты привязаны к одному отчету, его конкретным
полям и структуре. Можно создавать макеты отдельных полей, группировок,
итоговых полей и ресурсов отчета. В приведенном примере группировка
по номенклатуре оформлена с помощью предопределенного макета (рис. 1.7).
'Склад
Начальный Приход Расход Конечный
Рис. 1.7. Макет группировки «Номенклатура»
Вложенные схемы
Часто бывает нужно использовать данные одного отчета внутри другого. Разра-
ботав схему компоновки одного отчета, можно затем многократно использовать
ее в других отчетах, связав родительский и вложенный отчеты по общему
полю. В приведенном примере выводится список контрагентов с вложенными
данными по продажам номенклатуры для каждого из них (рис. 1.8).
Контрагент ООО "Автоматика"
' Контрт-нт I -ериод, месяд иод,день Стойкое г_ь Стоимость.^ Сгоимость.'Ч в ввщий группировка 1
ДОЩ 'К1, ООС ’Лвтом?т.я«1" ,. .. «о,ов; «иод
> Декабрь.2011 « 500,00 46 46.44
т 05.12.2011 1 000,00 6 70! 4.06 (1
[ 11.12.2011 10500,00 91.30 ' 42,661
9 I Январь.2012 13000,00 бздв; 53,061
> 12.01.2012 13 000,00 100,00! 53,06 [
1 24 500,00: Г 100.00; 100,001
Контрагент ООО "Атлант"
Контрагент | Период. месяц ? Период, день ! Стоимость ! Стоимость^ [ Стоимость.% ТЕЯ В [ОбщрЙ; группировке ,
(6.ЮПЙЙЙЙ51 ооо ’Атпант" 9 000ДО 100 0Э !Ь0,00 .
' ЯнварьЛ012 9 000,00 100,0Р юо. ТО
13.01.2012 4 600,00 44 44 44,441
1 1( 15 01 2012 5 000,00 55,56 55,56
I Итого ‘ ,
; Контрагент оос ) "Система"
[(Контрагент | Период, месяц. [Период, день [Стоимость ! V. <! Стоимость % । Стоимость Д {общий группировке { И
лмядаййбф ООО Хисге^а" 10 000,до юодо; ; -100.00
Декабрь.2011 10 000,00 100,00 ] 100,00
0912.2011 10 000,00 ;оо.оо; юо,оь |
[ Итого ! 10 000,00! 100,00! 100,00^
Рис. 1.8. Вывод вложенного отчета
Пример использования вложенного отчета рассматривается во второй главе
на стр. 157.
Настройки
В схеме компоновки данных разработчик задает стандартные настройки,
которые определяют, как первоначально будет выглядеть отчет, определяет
его иерархическую структуру и настройки как отчета в целом, так и его
отдельных элементов.
Практически то же самое окно настроек, что и в схеме компоновки
данных, будет доступно и пользователю при исполнении отчета в режиме
1С:Предприятие по команде Все действия ► Изменить вариант... Но поль-
зоваться этим окном рекомендуется лишь очень опытному пользователю,
понимающему, что он делает.
Иерархическая структура отчета состоит из
следующих элементов:
и Группировка - предназначена для вывода информации в виде обычного
линейного отчета (рис. 1.9).
Список номенклатуры на складах
1 Номенклатур! Склад ПрихсД Расход Конечный остаток
Монитор ЬСО 'Розничный ! 4,000 2.600. 2,000!
Веб-камера (Розничтъп 10,066 ЗР00! 7,000]
Микрофон [Розничной I 1^,0001 6,000
Материнская плата Юсновнчй 5Л00 3,0001 2,000
Память ।Эсновной 5.о6о1 З',000| 2~000!
Жесткий диск {Основной ! 3,000 3.000 1 1
Итого ! з/да; | 16,0001 21,030;
и Таблица - предназначена для вывода информации в виде таблицы
(рис. 1.10).
Остатки номенклатуры
Нгменк. 1атура ; Основное Приход । Расход Конечный остата Розничный Приход Расход Конечный ,остаток Итого Приход Расход Конечный остаток
Веб-камера 10,000 3,000' 7,000 10,000' 3,000 7,000'
Жесткий диск Материнская плата 3,000 5,0Сг 3.00С 3,000 ~ 2,000 г- - —( ! 3.000| 3,000- } 5,000! 3,000 2,000;
Микрофон 10,000 2,000' е,ооо 10.000 2.000: е,ооо!
Монитор ЬСВ 4,000 2,000 2,000 4 060 2,000 2,000 ‘
Память 5,000 3,000 2,300 5,000 3,000 2,000
Итого 1 13 000 9 000 4,000 24 000 7.000 17.000 37 000 16 000 . 21,000
Рис. 1.10. Вывод таблицы
Диаграмма - предназначена для вывода информации в виде диаграммы
(рис. 1.11).
Рис. 1.11. Вывод диаграммы
Вложенный отчет — предназначен для вывода вложенного отчета
(см. рис. 1.8).
На первый взгляд элементы структуры отчета Группировка и Таблица похожи.
Но в таблице информация группируется по строкам и по столбцам, а на их
пересечении выводятся групповые итоговые данные - ресурсы. А также
рассчитываются общие итоги по вертикали и горизонтали. В группировке
данные группируются по строкам, и общие итоги рассчитываются только
по вертикали. Группировку можно вывести в табличном виде (горизон-
тально), а можно - в виде вертикального списка.
Для каждого элемента структуры отчета и для всего отчета в целом суще-
ствуют следующие элементы настроек:
Выбранные поля - с помощью этого элемента настроек разработчик или
пользователь может определить список полей, выводящихся в отчет
(рис. 1.12).
Д <чйне ьастризйки
Условное офоргипе. ? Пользовательские.....
*’*тг --и—— =
Параметры Выбранные поля } Отбор * Сортировка
» Номенклатура
«» Склад
В Количеством ачальныйОстаток
КоличествоПриход
Ц КоличествоРасход
А КоличествоКонечныйОстаток
Рис. 1.12. Настройка списка полей отчета
, Доступные поля П:
1 Ч-< а* 11
1 Склад
! уг.' $ КоличествоКонечныйО стаггок
1 № & Количествен ачальныйО статок
Ко личествоП риход
КоличествоРасход
СистемныеПоля 1
1 ф я П араметры Данных Г I м II п
т~~~
: Поле
» Отбор - с помощью этого элемента настроек разработчик или пользова-
тель может определить условия фильтрации записей в отчете (рис. 1.13).
и-к., кг..'.'-,-':-' •V»"*
Полятруппиршки ( Выбраннме поля- 11 Отбор | Сортировке , у Условное оформление .. ... Другие настройки
Доступные поля
1{ ~пг~
* ' Левое значение
I Вид С| авнения ' Правое знач... ’ Примен... П...1 "Ц
з
Склад
КоличествоКонечныйО стаггок
КоличествоНачальныйОстаток
Ко личествоП риход
КоличествоРасход
СистемныеПоля
П араметры Данных
Отбо1-1
Л
^олнчествоКонечныйОстеток
Больше
1Д00 Обычное
Я.
ф
4?
I
$
»
X I
Рис. 1.13. Настройка отбора
Порядок — с помощью этого элемента настроек разработчик или пользо-
ватель может определить порядок записей в отчете (рис. 1.14).
& -Поля группировки Л | Выбранные поля = г. Отбор ССсртировка™"^ У*и1овн»4Я>О|эмлен®^ ]_______________
вдь»
4
X
♦
♦
Доступные поля
{Поле
! Направление сортировки
0Й|М
КоличебгйбКонечныййёгаток . 1;'!;®
По убыванию
Склад
КоличвсгвоКонечныйО стаггок
Количеством ачальныйО стаггок
КоличествоПриход
КоличвствоРасход
| ф $
я
я Параметры - с помощью этого элемента настроек разработчик или поль-
зователь может задать значения параметров отчета (рис. 1.15).
Параметры Выданные поля 01 бор > Ссртдажка У слоеное Псльзобёгельские.^ Другие'.настройки $
С Отображать недоступные параметры (устанавлтвать значения недоступней параметров не рекомендуется) }
Параметр
@Г Начало периода
^1*1 и Конец периода
Рис. 1.15. Настройка параметров данных
Пользовательские поля - с помощью этого элемента настроек пользова-
тель может создать собственные дополнительные поля (рис. 1.16).
Рис. 1.16. Создание пользовательских полей
Условное оформление - с помощью этого элемента настроек разработчик
или пользователь может задать условия оформления записей в отчете
(рис. 1.17).
- •-чич.-е. • Ч . *,
По <я группировки Выбранные гюля Отбор Сортировка Условное оформление | Другие настройки
Оформление
Условие
Оформляемые поля
Представление !
,аетфэнй.ЦбСТт
КсличествоКонечныйОстаток Меньше или равно ”1 ” Номенклатура, КоличествоКон.. Маленький запас
о
м
&
&
Рис. 1.17. Настройка условного оформления
я Другие настройки - с помощью этого элемента настроек разработчик или
пользователь может задать значения параметров вывода, таких как макет
оформления, заголовок, расположение итогов и др. (рис. 1.18).
Пал тр,, щрое • в бр- поля Отбор » ^ерл'иреека ', У ходкое оформление ] Другие настройки )
. г- — ~~ - , Параметр дна«ени«. 4 . 1
Макет оформления «ЖэдВИНИММНЯИЙМММШИНММИНН» ИИкЦ
Количество записей О ' Процент записей ГО: Тк1макета . !„ 1 [ Расположение итогов О ; Расположение полей группировок Расположение грутпировок ; О; Расположение реквизитов 1гГ Авто Авто Вместе Начало Вместе с владельцем 10! 10) 1 1 1 1 — 4 1 Г 4
В следующем разделе познакомимся с настройками более подробно
на примере конкретного отчета.
Пример изменения настроек
Отчет, полученный с помощью системы компоновки данных, представляет
собой сложную иерархическую структуру, куда входят и простые линейные
записи, и группировки, и таблицы, и диаграммы. Например, отчет Остатки
номенклатуры имеет такой вид (рис. 1.19).
Остатки номенклатуры
Вариант отчета: {Новый вариант
С „рмирот^ Настройке...
и
Остатки номенклатуры
9?
Ц Веб-камера
! 6}
7У
Кесткийдиск
6}-
5Г
!4»
3?
2 Г'
1
04-
Материнская
плата
I Врвариант.. . |
Все действия-’ I Й?
Розничный
7
Й
I-
Ноненкнатура Склад прикид Рас.<о/ Конечный
{Микрофон “озничный 10.000 2,000 0.000
; Веб-камера Розничный 10,000 3,000 7,000
Монитор ШЭ “озничный 1 «да 2.000 2,000
.Материнская плата Основной 5,000 з.оог 2,000
-Память Основной 5,000 здоо' 2Д00
Жесткий диск Основной ; зооо здпо 1
'ЙТС80 Г 37ЛЙШ 16,0001 21 ДШ;
Поненклатура Основной Г? ' ’ ’ пзничнь |й Итон* 1НЫЙ
► Ч Приход Расход Конечный - патак Г |риход ) Расход Конечный ИЙГЗТОк .Приход {Расход кане’
I -а. — - ; ' ' - -
Веб-камере 10,000 3,000 7,000 юдоо. 3,000 7,000
Жесткий диск 3,000 3,000 3,0001 3,000
материнская плата 5,000 3,000 2,000 5,0001 3,000 2,000
Микрофон ... П1 10.000 2 ДОС 8.000 10,000; 2,000 6,000
•Монитор ШЭ 4,000 2,000 2.000 4,000! 2,000 2,000
•Память 5,000 3,000 2,000 5,000! 3,000 2,000;
I Йт го 13.' 06 9 0®| 4.000 24 ЛВС 7000 17 37 ПОС 16.000 21000]
1 Микрофон
Основной
Ж Монитор 1С0
И Память
Структура отчета, созданная разработчиком, имеет вид (рис. 1.20).
’руктура отчета
Отчет
0е33 < Детальные записи)
Таблица
© Строки
й™3 Номенклатура
о Колонки
Склад
® ® !и. Диаграмма
Точки
0й23 Склад
© Серии
Номенклатура
Рис. 1.20. Структура отчета в окне настроек
В верхней таблице окна результата отчета представлены обычные детальные
записи, полученные из информационной базы данных. Для вывода детальных
записей используется элемент структуры отчета Группировка, но без указания
поля группировки. Когда поле группировки указано, записи в отчете группи-
руются по нему без более подробной детализации. Обычно это делается для
вывода промежуточных групповых итогов.
Создадим новую группировку отчета. Для этого выделим корневой элемент
Отчет в структуре элементов отчета, нажмем кнопку Добавить в командной
панели окна настроек, добавим новую группировку и укажем поле груп-
пировки Склад. Сравним ее с группировкой Детальные записи (рис. 1.21,
1.22).
Структура отчета
Отчегг
< Детальные записи)
Таблица
© Строки
@<И1 Номенклатура
© Колонки
0е33 Склад
Диаграмма
© Точки
0 *а Склад
Я Серии
0|аи Номенклатура
до
ПК ' Отмена г. ’
Конечный остаток
Начальнь й остаток
Приход
Расход
Г руппиронка
Поле: {
Тип: | Без иерархии
Ьыбиать Отмена
м Ььшог прля-Демонсграш,...11С"П едпрнятиь п
Выбор поля
Досгуп.тые юля
== Номенклатур^,,
I!
I
а
а
©
Рис. 1.21. Выбор поля группировки
Мы видим, что в нижней группировке (Склад) присутствуют только две
записи, то есть данные в отчете сгруппированы по складам. Однако это не
таблица, а группировка, представленная в табличном виде. Если задать
значение параметра вывода Тип макета - Вертикально, то те же данные будут
представлены в виде вертикального списка (рис. 1.23).
Остатки номенклагуры
Вариант отчета: (Новьй вариант
#ТМорклирои<пь { Настройка...
] [ ^ыбр^.^рианту^
Вее действия »> (7?
Остатки номенклатуры
у.
Нам&н»" Олад Пр иход Расхи . К я* й
.... стат»к
7,000
2,000
2,000
2,000
Веб-камера _ _ розничный 10,000;___3,000'
[Монитор ЬСО дРозничньй ', 4 ДЮО| 2,000;
[Материнская плата Основной ', 5ДО0; 3,000;
[Память [Жесткий диск | Итого [Основной _ ^Основной [ _ 5.000' З.оой ’ !”37ДЙ0| ‘ -
Г " ”
Склад Приход РАСХОД КоначнмйС ост грк
I? ювной 13,000< 9,000 ‘ 1,0011
РиЗНИЧНЫЙ 24,000 7,0001 17.000
1 Ж с го 37.000 1а 000 21,Ж
3,000;
зроо<
16ЖИ _ 21/ЮО
.„и
т{
Т-
.3
ч
8.
г
1
Рис. 1.22. Детальные данные отчета «Остатки номенклатуры» и данные,
сгруппированные по складам
- ? О.-’
Рис. 1.23. Данные отчета «Остатки номенклатуры», сгруппированные по складам,
представленные в виде вертикального списка
Остатки номенклатуры
Вариант отчета: (Новый вариант Л
Г>ормироЕаггь . ОЦ Настройка.. .
Остатки номенклатуры
Склад Основной
Приход 13,000
Расход 9,000
Конечный остаток 4,000
Склад Розничный
Приход 24,000
Расход 7000
Конечный остаток 17,000
Итого
Приход 37,000
Расход 16,000
Конечный остаток 21,000
Все действия ’
Выбрать вариант
I
В средней части отчета (см. рис. 1.19) находится элемент структуры отчета
Таблица, где по строкам данные группируются по полю Номенклатура, а по
столбцам — по полю Склад. На пересечении строк и столбцов, в ячейках
таблицы, находятся групповые итоговые данные — ресурсы, например,
остаток конкретного товара на конкретном складе. Таким образом, элемент
структуры отчета Таблица используется в случае, если требуется различным
образом сгруппировать информацию по строкам и по столбцам, на их пересе-
чении вывести итоговые данные, а также вывести общие итоги по вертикали
и горизонтали. В других случаях не имеет смысла создавать таблицу, а можно
воспользоваться группировкой. В нее можно вложить подчиненную ей груп-
пировку.
Добавим в группировку Склад вложенную группировку по полю Номенкла-
тура. Для этого выделим группировку Склад в структуре элементов отчета,
нажмем кнопку Добавить в командной панели окна настроек, добавим новую
группировку и укажем поле группировки Номенклатура (рис. 1.24).
В нижней части отчета (см. рис. 1.19) находится Диаграмма, которая служит
для более наглядного графического представления данных.
Стру .тура отчет-
Отчет
Чоменклзтурз'
УКП Таблица
'Э Строки
Номенклатура
-5 Колонки
Склад
_1'1/ Диаграмма
Рис. 1.24. Добавление вложенной группировки «Номенклатура» в группировку «Склад»
В режиме 1 С: Пред приятие командой Все действия ► Изменить вариант...
пользователь может изменить настройки отчета, его структуру, отбор, упоря-
дочивание записей, оформление и т.п. Настройки отчета могут относиться
как ко всему отчету в целом, так и к его отдельным элементам - группи-
ровкам, таблицам, диаграммам (стр. 42). Например, пользователь может
для элемента отчета Номенклатура установить сортировку по полю Конечный
остаток. У каждого элемента настроек есть признак использования в отчете —
флажок слева от его названия. Допустим, пользователь не хочет видеть
в отчете диаграмму. Для этого достаточно просто снять флажок использо-
вания у данного элемента структуры отчета. Аналогично можно отключить
в настройках любое поле, отбор, параметр и т.п. В результате сделанных
изменений настройки отчета примут вид, как на рис. 1.25.
Результат выполнения отчета с новыми настройками будет выглядеть, как
на рис. 1.26.
I Вариант “Новый еариает" отчета "Остатки номенклетурьГ - Дьмонстри • окне т чин. игурация "Система компановки данных'' (1 СПрад. ‘ X
Вариант “Новый вариант3' отчета "Остатки номенклатуры"
Добавить( X I # # I ' й Все действия»
Парамет.. Пользой Гру.тиру
и» Полял.!
элемент имеет собственную сортировку (для упорядочивания записей выводимых в элементе)
Выбрать Все действия’ ‘ Добавить новый элемент порядка
Доступные поля
Все действия
( . Поле
?)
Склад
Конечный остаток
Начальный остаток
Приход
Расход
Направление сортировки
Ж По возрастанию
О “
«
9
9
Г-------------------------
Завершить редактирование Отмена ; Все действия ’; ?
Рис. 1.25. Окно для редактирования пользовательских настроек
" 1"' =: - . _ - . _ д!
’Тс., «У Остатки номь-тклетуры-Демонстрационная конфигурация ‘'.Система к.. (1С:Предприятме] ла.» <7 г* -й? м* *“ л
Остатки номенклатуры
Вариант отчета: (Новый вариант ____________________________ ] Г Вьюрсть вармент.
Сформировать I Ц$( Настройка. Все действия’ ?
Остатки номенклатуры Г
м
Склад Номенкла а Приход —— РЛсход ( ж . Конечный остаток
?. новнои 13,000 9,000 •- ' ч, 4.-00
Г Жесткий диск ЗОО0 3,000
* Материнская плата 5.О0П 3 000 2.000
। Память 5,000 3.00С 2Д С
Розничный 24,000 7,000 17, МО
। Монитор ЬСО 4,00о 2 000 2,000
Г ВеЕ самера 1 000 3000 7,000
' Микрофон 10/ЮС 2.000 Р.000
1 1того 37 000 16,000 21,009 |
Номенклатура Основной Розничный Итою
Приход [Расход Конечный I остаток Приход Расход Конечный остаток Приход Расход Конечный остаток
Веб-камера 10,000 3.000 7 О0С юдос 3000 7,000
[Жесткий диск 3.000 3,000 3,000 3,000
Материнская плата 5,000 3,000 2,000 5,000 3.000 2,000
Г.ИКрпфон 10,000 2.000 6.000 10,000 2,000 8.000
[Монитор ЬСО 4,000 2,000 2,000 4,000 2,000 '.ООО
. 1амять 5 . Г 3,000 2,000 5,0СЬ 3,000 ОСЮ
Итого____________________13.000 9 (ХЮ 4 080 24 080 7.800 17 800 37 008 8.ЗД' 21.000
2
Рис. 1.26. Изменение отчета с помощью пользовательских настроек
Очевидно, что обе таблицы очень схожи между собой. Но поскольку первая
таблица представляет собой результат вывода группировки Склад и вложенной
в нее группировки Номенклатура, то данные в ней группируются только
по строкам, и общие итоги выводятся только по вертикали. В соответствии
с новыми настройками записи первой таблицы внутри группировки Номен-
клатура отсортированы по возрастанию поля Конечный остаток, и диаграмма
в отчет не выводится.
Помимо изменения стандартных настроек в основном варианте отчета поль-
зователь может создать собственный вариант настроек (стр. 37) и затем
сохранить его (Все действия ► Сохранить вариант). Например, можно переме-
стить диаграмму в новый вариант отчета, затем перед формированием отчета
выбрать этот вариант, нажав кнопку Выбрать вариант..., и получить отчет,
содержащий только диаграмму остатков номенклатуры.
Однако следует иметь в виду, что окно полных настроек отчета, вызываемое
по команде Все действия ► Изменить вариант..., предназначено лишь для хорошо
подготовленного, опытного пользователя. Для большинства же пользователей
следует помещать необходимые им настройки в состав пользовательских
настроек, которые будут доступны в отдельном окне по команде Настройка.
При этом наиболее часто используемые настройки должны быть быстрыми,
то есть располагаться непосредственно в отчетной форме (стр. 99).
При этом для каждого варианта отчета пользователь может создать свои
комбинации пользовательских настроек и сохранить их для дальнейшего
использования (Все действия ► Сохранить настройку...). Затем пользователь
может вернуться к этим настройкам, выполнив команду Все действия ► Выбрать
настройку...
ВНИМАНИЕ
Сохранение и последующая загрузка пользовательских настроек очень
удобны для пользователя, потому что ему не приходится каждый раз
редактировать настройки вручную. Однако пользователь может выбирать
только те настройки, которые он сам сохранил.
Глава 2. Примеры
разработки отчетов
Данная глава содержит набор практических примеров, основанных
на реальных задачах. Она будет полезна как для начинающих разработчиков,
так и для специалистов, желающих углубить свои знания и навыки по разра-
ботке отчетов с помощью системы компоновки данных.
Исходные данные для примеров
Разрабатываемые нами отчеты будут базироваться на данных о хозяйственной
деятельности небольшой фирмы, которая оказывает услуги по сборке,
ремонту и продаже компьютеров и комплектующих к ним.
Приобретение комплектующих отражается в документах Приходная На-
кладная. Предоставление компьютерных услуг, продажа комплектующих
и собранных системных блоков отражаются в документах РасходнаяНа-
кладная. Оба эти документа формируют движения в регистре накопления
ОстаткиНоменклатуры, который имеет вид Остатки и содержит два измерения -
Номенклатура и Склад и ресурсы - Количество и Цена.
Сборка готовых системных блоков отражается в документах Сбор-
каКомпьютера, который формирует движения типа Приход в регистре
накопления СобранныеСБ. Этот регистр имеет вид Остатки и содержит два
измерения - СБ и Склад, ресурсы - Количество и Стоимость и реквизит - Мастер.
Одновременно при проведении этого документа формируются движения типа
Расход в регистре Остатки Номенклатуры. Здесь отражаются комплектующие,
которые были израсходованы при сборке.
Документы РасходнаяНакладная также формируют движения в регистре
накопления Продажи. Этот регистр имеет вид Обороты и содержит два изме-
рения — Номенклатура и Контрагент и ресурсы — Количество и Стоимость.
Документы ПриходнаяНакладная также формируют движения в регистре
сведений Цены. Этот регистр является периодическим и имеет измерение
Номенклатура и ресурс Цена.
В базе данных также содержится регистр сведений ДополнительныеХарак-
теристики для хранения значений характеристик объектов. Этот регистр
является непериодическим и имеет два измерения - Объект и ВидХарактери-
стики и ресурс - ЗнамениеХарактеристики.
Пример 1. Набор данных - запрос
Практическое знакомство с системой компоновки данных начнем с простого
отчета, целиком реализованного с помощью визуальных средств разработки.
В этом примере подробно, шаг за шагом описываются действия разработчика
по визуальному конструированию отчета с помощью системы компоновки
данных. В следующих примерах эти действия будут лишь кратко перечис-
ляться. Поэтому данный пример будет полезен для новичков, не знакомых
с системой компоновки данных, а остальным просто позволит вспомнить
некоторые моменты разработки отчетов.
После создания отчета мы разработаем другой вариант этого же отчета и на
нем покажем возможности настройки отдельных элементов отчета.
Итак, разработаем отчет, который будет отражать приход, расход и остатки
номенклатуры на складах (рис. 2.1).
Розничный
Номенклат ^а
Основной
огтаток
Начальный Приход Расход Конечный Начальный Приход Расход
остаток » ч, остаток остаток
Итого
Конечный Начальный Приход Расход Конечный
остаток остаток
'Веб-тг*р& 10.001 3.000 7/500 10/500 3.000 7/500'
.есткий диск 3,000: 3,000. . . ! 3,000 З.О00 I
Материнская пла га 5/500 3 000 2.000 ! I 5/500 3,000 2000
Микрофон ! г 10.00( 2,000 8.0л 5 У 10.000 2,000 Ь.000
1онитор ЬСО — I г 4,000 2,000 2,000 | 4/ЮО 2 000 2/500!
1амя ъ 5.СО0 3.000 2.000 5,000 3/100 2.000;
Итого 13 ЛОО 9.000, 4.000 □ _ 24,000 7,000 17,000 . Т 37,000 16000 21,000
Рис. 2.1. Требуемый вид отчета
ПРИМЕЧАНИЕ
Все действия, описанные в этой главе и далее, будут выполняться
на демонстрационной конфигурации, прилагающейся к книге на компакт-
диске.
Визуальное конструирование
Для визуального конструирования отчетов с использованием системы компо-
новки данных предназначен объект конфигурации Отчет. Выделим в дереве
объектов конфигурации ветвь Отчеты и добавим новый отчет.
В появившемся окне редактирования назовем отчет ОстаткиНоменклатуры
и создадим схему компоновки данных отчета, нажав кнопку Открыть схему
компоновки данных или кнопку открытия со значком лупы (рис. 2.2).
ч I т
л I
► Основные
Имя
Подсистемы
Синоним:
Комментарий.
Открыть схему компоновки данных. !
Расширенное представление:
Пояснение:
Функциональные опит,
Дадаыс
Формы
Комееды
Макеты
Права
Прочее
СстагкиНоменклетуры
[Остатки номенклатуры
Основная схема компоновки данных.
а
а!
С
Действия
_____________-_______-______________!
Далее»; } .Закрыть !1 Справка ]
Рис. 2.2. Окно редактирования объекта конфигурации «Отчет»
Так как у нашего отчета еще нет схемы компоновки данных, платформа пред-
ложит создать новую схему и откроет конструктор макета. В открывшемся
окне конструктора макета будет доступен для выбора единственный тип
макета - Схема компоновки данных (рис. 2.3).
>онст (• ,г.ич “
Имя-
Синоним:
Комментарий:
1 Основная схема компоновки даыых
- Выберите тип макета -—
Т абличный документ
Т екы свый документ
• Двоичные ранные
. АсЯуе сЬситегй
' НТМ1 докумекл
1 > Географическая схема
Г раФическая схема
® Схема компоновки данных
' Макет оформления компоновки данных
Рис. 2.3. Конструктор макета
Загрузить из Файла.
Нажмем кнопку Готово. Платформа создаст макет отчета, содержащий схему
компоновки данных, которая в дальнейшем будет доступна на закладке
свойств отчета Макеты наряду с другими макетами отчета.
Затем конструктор макета откроет окно конструктора схемы компоновки
данных. В нем происходит основная работа по визуальному конструиро-
ванию отчета. Для этого конструктор предоставляет массу разнообразных
возможностей. Но мы пока рассмотрим лишь те из них, которые понадобятся
в нашем отчете. Остальные возможности по мере усложнения будут пред-
ставлены в других примерах.
Любой отчет основывается на данных, извлекаемых из каких-либо источ-
ников по определенным условиям и параметрам. Мы рассмотрим наиболее
простой случай, когда используется один набор данных. Он будет содержать
запрос к базе данных, сформулированный на специальном языке — языке
запросов.
Итак, на закладке Наборы данных добавим новый набор данных - запрос
(рис. 2.4).
Г Отчет ОстаткиНоменклатуры: ОсновнаяОхемаКомпоновкиДанных
Наборыданных } наборов д ,Быч >ляемыеп... а -есдрси
- О. X
добавить набор данлих - запро?
Параметры Макеты Влот ые сх&. Настрой! и
Рис. 2.4. Добавление набора данных в окне конструктора схемы компоновки данных
Добавить набор данных - объект
й’ • Добавить набор данных - объединение
СЗ
В правом нижнем окне конструктора схемы компоновки данных мы можем
создавать и редактировать текст запроса. Текст запроса можно написать
вручную, но гораздо проще сделать это с помощью конструктора запроса,
нажав кнопку Конструктор запроса (рис. 2.5).
От"чт СстаткиНоменклаууры. ОсновнаяСхемаКомпоновкнДаиных
- ..и,- ..
Наборыданных Связи набсрсед.. | Г Вычисляемые п. Реддоры Параметры
. 1. . ...... ...... - □ X,;
' ! Макеты Вложенные схё... ИГ част ой си
Ы Автозаполнение V
Рис. 2.5. Вызов конструктора запроса
Конструктор запроса позволяет визуально конструировать запрос. Даже поль-
зователь, не знакомый с языком запросов, может с помощью конструктора
создать синтаксически правильный запрос.
Мы пока рассмотрим лишь основную закладку конструктора Таблицы и поля.
Остальные возможности по мере усложнения будут представлены в других
примерах. Сначала в списке База данных нам нужно выбрать таблицы, с кото-
рыми будет работать запрос. Раскроем ветку Регистры накопления, здесь мы
видим объектную таблицу ОстаткиНоменклатуры, в которой накапливаются
данные об остатках номенклатуры. Ниже находятся несколько виртуальных
таблиц, созданных платформой. Так как в нашем отчете будут отражаться
как остатки, так и данные о приходе и расходе номенклатуры, то очевидно
нам нужна таблица ОстаткиНоменклатуры.ОстаткиИОбороты. Выделим ее.
ПРИМЕЧАНИЕ
Выделенные элементы можно перенести из одного списка в другой
перетаскиванием мышью или двойным щелчком на них. Либо можно
использовать кнопки СЕ?, < , 6И, «1
Перенесем выделенную таблицу в список Таблицы. Раскроем ее. Здесь
отобразятся все доступные для выбора поля этой таблицы. Затем перенесем
в список Поля нужные нам в отчете поля таблицы:
Номенклатура,
Склад,
КоличествоНачальныйОстаток,
и КоличествоКонечныйОстаток,
Количество Приход,
КоличествоРасход.
Итак, в результате наших действий окно конструктора запроса примет вид
(рис. 2.6).
Рис. 2.6. Выбор данных для запроса
Нажмем ОК и вернемся в конструктор схемы компоновки данных (рис. 2.7).
Отчет ОстаткиНоменклатуры: ОсновнаяСхемаКомпоновкиДанных
Наборы данных | Связи наборов данных Вычисляемые поля
Ресурсы Параметры Макеты
Вложенные схемы
Настроили
I Выр... ^Провер
Роль
© Наборы данных
Н^&йрЛаннь |И
Ко личвстбоК онечныйСстаток
Номенклатура
КоличествоПриход
। □ Количество Приход
Номенклатура
О Номенклатура
Поля:
; Гполе
! Выр... ; Набор!
'упор.. Г„ I
Парам»
• О Количество Начальный оста
Ограничение поля
Поле Ус... Гру... Упо....
*.а
С_раниче: ие реквизитов
Поле Ус. Гру.. Упо...
Путь
, Аетозаголовок
Количество
г X! Конструктор запроса.
ИЗ
РегистрНакопления.ОстаткиНоменклыуры.ОстаткиИОбороты КАК ОстаткиНоменклатугы
с г
Автозаполнение 5?
23 Измерение
□
Рис. 2.7. Конструктор схемы компоновки данных
«» КоличествоРасход
1__________
«а» КоличествоНачальныйОстаток
КоличествоКонечныйОстаток
О Количество Конечный остаток!
КоличествоРасход
О Количество Расход
КоличествоНачальныйОстаток
НачСст,
Количество
“ КоличествоПриход
» Склад
Запрос
Измерение
ВЫБРАТЬ
ОстаткиНоменклачурыОстаткиИОбороты. Номенклатура,
ОстаткиНоненклатурыОстаткиИОбороты.Склад,
ОстаткиНоменклатурыОстаткйИОбороты.КоличествоНачальныйОстаток
ОстаткиНсменклатурыОстаткиИОбороты.КоличествоКонечныйОстаток,
ОстаткиНоменклатурыОстаткиИОбороты.КоличествоПриход,
ОстаткиНоменклатурыОстаткиИОбороты.КоличествоРасход
Итак, мы добавили набор данных - запрос и создали текст запроса, выби-
рающего данные из информационной базы «1С:Предприятия». Текст
запроса отображается в поле Запрос. Здесь его можно вручную отредактиро-
вать или снова вызвать Конструктор запроса для внесения в него изменений.
Так как свойство Автозаполнение включено, платформа автоматически запол-
нила список доступных полей текущего набора данных исходя из запроса
(стр. 346).
Пока мы не будем рассматривать другие возможности конструктора схемы
компоновки данных, а приступим к настройке отчета, то есть к формиро-
ванию его структуры и внешнего вида.
Представим наш отчет в виде таблицы, где по строкам данные группи-
руются по позициям номенклатуры, а в колонках - по позициям складов.
Групповые итоговые данные - Ресурсы (стр. 370), например остаток
конкретного товара на конкретном складе, выводятся в ячейках таблицы.
Поэтому для того, чтобы увидеть какие-либо значения в таблице, мы должны
определить ресурсы схемы компоновки данных.
ВНИМАНИЕ
Для всех отчетов, где выводятся итоговые данные по каким-либо
группировкам, нужно определить поля ресурсов отчета! Итоговые данные
формируются на закладке Ресурсы.
На закладке Ресурсы схемы компоновки данных в списке Доступные поля
расположены все поля из текущего набора данных отчета. Нажмем кнопку
®, чтобы конструктор выбрал все доступные ресурсы, по которым можно
вычислять итоги (рис. 2.8).
Наборыдадных 1 Связи Наборов,. 4 ШмиоЛяйфю.^44 Ресурсы
Пар®да-ры: Ь Макеты Вложенные 4 I НасгпоЙ^г
' Доступные поли
г~------
“оле
! Выражение
КсличествоНачальныйОстагок / Количествен ачальныйО ст
I =“ КоличествоПриход
। “ КоличествоРасход
! т Номенклатура
> “ Склад
*“» КоличествоПриход
«“ КоличествоРасход
Сумма(КоличествоКонечныйОстагок) !
...............— • - — -Р
Сумма(КоличествоНачальныйОстаток) !
Счмь ,а*КоличествоГ ‘"чход)
Среднее(КоличествоРасход)
М аксимум(КоличествсРаскод)
Минимум(КоличествоРасход)
Количество(КоличествоРасход)
Количество(Различные КоличествоРа... |
; Рассчитывать по
С'ДИМО" ► .. с .Л
Рис. 2.8. Выбор ресурсов отчета
ПРИМЕЧАНИЕ
Поля в список ресурсов можно перенести из списка доступных полей
перетаскиванием мышью или двойным щелчком на них. Либо можно
использовать кнопки И, 1<3, (Ю, ЙУ.
В колонке Выражение здесь содержится выражение, по которому будет вычис-
ляться значение ресурса. По умолчанию предлагается функция Сумма,
но доступны и другие распространенные функции агрегирования данных
(см. рис. 2.8).
Теперь перейдем на закладку Настройки и создадим стандартные настройки,
определяющие, как будет выводиться информация в отчет.
Напомним, что иерархическая структура отчета содержит три основных
элемента:
Группировка - для вывода информации в виде обычного линейного
отчета;
Таблица - для вывода информации в виде таблицы;
Диаграмма - для вывода информации в виде диаграммы.
Выделим корневой элемент Отчет и добавим в него новую таблицу. Для этого
нужно нажать кнопку Добавить, расположенную в командной панели окна,
или правой кнопкой мыши вызвать контекстное меню элемента Отчет
(рис. 2.9).
-Набсрыдмцьв^^^. Связинабзроа.^] Сьййс/!яемые.„ . . ‘ , Ресурсы || Парадитры ' Макеты. •’ ^ломанные сК-. ; I Настройки {
«> й И М IX < ЗНД Ц* I 0В
Имя еариа.. Представл
»Ьз Новая группировка...
Новая таблиц
Н овая диаграмма
Новый вложенный отчст.
1п$
?|
Настройки: 'Отмй.| Отчет
Параметры ВыбранныТ^ Ят^26.
Сортировка ' Условное.,. . Польвежа... Другие на..
. Доступные поля
<& «» Склад
® 0 КоличествоКонечныйО ?
Э Й Количествен ачальный
I
I ♦
1>
*' КоличествоПриход
© КоличествоРасход
СмстемныеП.сдя
Рис. 2.9. Добавление новой таблицы в отчет
В структуре отчета появится элемент Таблица, включающий в себя Строки
и Колонки. Выделим элемент Строки и нажмем кнопку Добавить в командной
панели или клавишу 1пз для добавления новой группировки. В появившемся
окне выбора поля группировки выберем поле Номенклатура (рис. 2.10).
ПРИМЕЧАНИЕ
Для выбора поля группировки следует нажать кнопку выбора в строке
Поле и выбрать нужное поле из списка доступных полей. Также можно
использовать механизм «ввод по строке» и ввести в строку Поле первые
буквы имени поля, а платформа выполнит автоподстановку.
Аналогичным образом в колонки таблицы добавим группировку по полю
Склад. Таким образом мы указали, что в строках таблицы данные будут груп-
пироваться по позициям номенклатуры, а в колонках - по позициям складов.
Ресурс Пара».<тры [. Макеты
Вычисляемые
Г* .<• -а..О
*Й Ж 4? «|Ь#Й
Ч>
Имя вариа.. ; Представл
Основной
Рис. 2.10. Окно выбора группировки
г В/южённ^.сХ;. | Настройки ।
Выбсх. поля
Доступные поля
4
&
&
3
Другие на
Поль-зова
ОК -I I Отмена
ЮВД< ’
Склад
КоличествоКонечныйО статок
КоличествоН ачальныйОстаток
КоличествоПриход
КоличествоРасход
Сортиров»" = Условное
Наборы даньых
На закладке Выбранные поля перенесем мышью из списка доступных полей
поля, которые будут выводиться в отчет:
КоличествоНачальныйОстаток,
КоличествоПриход,
КоличествоРасход,
я КоличествоКонечныйОстаток.
ПРИМЕЧАНИЕ
Добавление доступных полей в список выбранных полей можно
осуществить перетаскиванием мышью, двойным щелчком на доступных
полях либо нажатием кнопки Добавить справа от списка выбранных полей.
Порядок выбранных полей можно изменить позже кнопками Вверх, Вниз
или перетаскиванием мышью.
Поля Номенклатура и Склад можно не переносить. Они все равно будут выво-
диться в отчет в составе автополей группировок (стр. 352).
В результате окно настроек отчета должно принять вид (рис. 2.11).
ЬабвиЫА?нныч 1 * СвязиьебоооЕ (’ Вычигтяе1-#-к... Д < Ресурсы .л Ч. П«к.4втры
Макеты^ Влф№рные:^в^.-Ч; { Настройки |
|Имяезриг ’ Представл..
г,*»»
Я'бйЗ
I .гая»
Доступные поля
$
&
В
И
ч&»ч Ь ; Выбраним... Н
Сгрти зека | , ИЁ1№ное .д. Д * Га№зов&.
Строки
@шэ Номенклатура
© Колонки
Настройки !Отчет | Склад
Номенклатура
Склад
гчаак:4М1|*.'
! л
' Поле ,.
Выбранные поля
А
Количеством ачальныйОстаток
Количеством рихсд
КоличествоРасход
СисгемныеПоля
Рис. 2.11. Окно настроек отчета
КоличествоНачальныйОстаток
Ц КоличествоПриход
Л КоличествоРасход
Запустим отчет на исполнение в режиме 1 С:Предприятие. Нажмем кнопку
Сформировать. Отчет примет следующий вид (рис. 2.12).
Рис. 2.12. Результат отчета
Мы видим, что данные в отчете представлены в виде таблицы, строки
которой сгруппированы по номенклатуре, а колонки — по складам, а также
выведены общие итоги по вертикали и горизонтали.
Заметьте, что при прокручивании отчета вниз и вправо положение шапки
отчета и самой левой колонки остается зафиксированным. Для удобства
пользователя платформа автоматически фиксирует табличный документ,
в который выводится результат отчета, когда в отчет выводится одна таблица
(ФиксацияСлева и ФиксацияСверху) или одна группировка (ФиксацияСверху).
Таким образом, мы быстро и легко создали простой отчет Остатки номенкла-
туры, представив данные в виде таблицы. На этом примере мы научились
создавать и настраивать схему компоновки данных для нового отчета
и рассмотрели следующие ее возможности:
создание набора данных на основе запроса, используя конструктор
запроса;
создание иерархической структуры отчета - добавление таблицы и груп-
пировок в отчет;
определение ресурсов для расчета групповых итогов отчета.
Варианты отчета
Теперь продемонстрируем возможности различных настроек отчета.
Настройки могут относиться как ко всему отчету в целом, так и к его
отдельным элементам - группировкам, таблицам, диаграммам. Последнее
может быть полезно, чтобы выделить разные элементы индивидуальными
стилями оформления, установить для каждого элемента свой отбор, сорти-
ровку и т. д.
ВНИМАНИЕ
При установке настроек отчета в средней части окна, под деревом структуры
отчета, должна быть выделена кнопка, соответствующая режиму настроек.
Кнопка Отчет — для настройки отчета в целом или кнопка с именем
группировки, например Детальные записи, если настройки относятся только
к ней.
Создадим новый вариант отчета Остатки номенклатуры и на его примере
продемонстрируем несколько вариантов настройки различных элементов
структуры отчета.
У одного и того же отчета может существовать несколько вариантов, пред-
ставляющих одни и те же данные в различном виде. Например, для отчета
Динамика продаж одним вариантом отчета может служить диаграмма, пока-
зывающая продажи товаров по периодам, а другим - табличный отчет,
показывающий продажи товаров в разрезе покупателей. При этом каждый
вариант отчета обладает своим набором пользовательских настроек.
Вернемся в конфигуратор и откроем схему компоновки данных на закладке
Настройки. В левой части окна находится список вариантов отчета.
При создании настроек отчета в первый раз система компоновки данных
по умолчанию создает Основной вариант настроек. Чтобы добавить новый
вариант, нажмем кнопку Добавить над этим списком. Зададим имя варианта
и его представление как Оформление (рис. 2.13).
р------~ --------------------
I Имя варианта Представ; ,зни
' Основной
*
, Основной
Наборы данных < Связи н««5оров ычисляем
Настройки ЙЭтчет Отчет
Отчет
Ресурсы . г Пара.летрь Макеты чакенныег»
ЛТ Настройки [
Сортиров У» .повис., Прльэ№... , Другие н.
Парамет.^ ВыбраннГП ^Отбйр
I Поле
I»
Доступные поля
поля
Рис. 2.13. Добавление нового варианта настроек
СИ»
I
I
I
I
йз
13
Склад
КоличествоКонечныйО статок
КоличествоНачальныйОсгатог'. I
КоличествоПриход
КоличествоРасход
СистемныеПоля
ПараметрыДанных
Мы видим, что структура отчета и все его настройки очистились. Но они
не пропали, а стали невидимы, так как относятся к основному варианту
настроек. Если у отчета есть несколько вариантов, то мы видим и можем изме-
нять настройки того варианта, который выделен в данный момент. Причем
вся остальная информация в схеме компоновке данных (ресурсы, параметры,
наборы данных) осталась без изменений. Данные для отчета будут полу-
чены с помощью того же запроса к базе данных. Изменятся лишь настройки,
которые определят, как будет представлен отчет.
Добавим в структуру отчета новый элемент Группировка и покажем возмож-
ности настройки отдельных элементов отчета.
Элемент Группировка позволяет выводить в отчете не только сгруппиро-
ванную каким-то образом информацию, но и обычные детальные записи,
выбранные платформой из источников данных согласно нашему запросу.
Выделим корневой элемент Отчет и добавим в него новую группировку
(рис. 2.14).
Нзбспыганных в | Связи набо в.
В ж вдёмы Ресурсы
.Параметры Макеты. ЙпожвнйЫе СК., ...- I Настройки Б
Имя варианта Представление
- •
Основной Основной
Оформление
Сформж нив
: ! ювай гр$р кфбвкз .
Новая таблица
Новая диаграмма
Новый вложенный отчет..
!пе.
Г (яппи,'» рка
)
Поле
Тип (Без иерархии
ОК
I, Настройки ^Отчгт * Отчет
Парамй./ ГВыбраннТ"’] | Отбор. ; Сортиров.,, } { Ысйбенр.^ .- Пбяьзов.,.
( Отмена
Другие н
г Поле
Й«чён&»тг<
| < I Доступные поля
$
0
*
Ф,
•?/
а*
Склад
КоличествоКонечныйОстагтон
I
Количествен ачальныйО статС
КоличествоПриход
КоличествоРасход
~~~ ; 1 |» >
Рис. 2.14. Добавление новой группировки в отчет
В появившемся окне выбора поля группировки оставим поле ввода Поле
пустым, так как мы не хотим группировать записи в отчете. Такая группи-
ровка называется Детальные записи.
На закладке Выбранные поля перенесем мышью из списка доступных полей
поля, которые будут выводиться в отчет:
Номенклатура,
Склад,
КоличествоНачальныйОстаток,
КоличествоПриход,
КоличествоРасход,
КоличествоКонечныйОстаток.
л
Сначала продемонстрируем настройки отчета в целом. Дадим заголовок
отчету. Перейдем на закладку Другие настройки. В средней части окна
настроек выделим кнопку Отчет и введем остатки номенклатуры в строку
Заголовок (рис. 2.15).
ПРИМЕЧАНИЕ
Для установки значения параметра настроек нужно выделить двойным
щелчком поле Значение и, нажав кнопку выбора »•, выбрать из списка
значений нужный вариант. Флажок использования значения при этом
появится автоматически. Его можно также снять и поставить вручную.
Наборы дачн1- V ^вдзи наборов,.,. {• Вычисляемые. Ресурсы параметры > Макеть
С 2
4Й Отчет
Основной
8 »< к с
1_„.
' Имя ва| манта | Представление 1
л -< Л 12 я ЪГ.аЛгй*'. ЛИ» *1 с|"
Основной
Оформление
Рис. 2.15. Настройка заголовка отчета
Настройки: С0тчет5<Дета/1ьныезаписи>
**•*’•“'***•• 7 1<аГ^ - ......_ - вгн^ с.*
Парамет.. | Выбрани. , г ОтбЬр \ Сбргмрое... | ? Щлйвнс?,~ »
: Параметр . (Значение л -
О Стиль линии Нет линии
О Размещение легенды Нет
О Полосы измерительной диаграммы Нет полос
С; Расположение ресурсов в диаграмме Дето
О-: Выводить заголовок Авто
1*5 Заголовок
О - Выводить параметры Авто $ :
О; Выводить отбор Авто V
(~] • Авто позиция ресурсов После всех полей
»
Другие н...
й
Установим для параметра Макет оформления значение Море (стр. 393).
Важным элементом настроек является присвоение более коротких и понятных
для пользователя заголовков полей отчета. Это можно сделать на закладке
Наборы данных.
Мы видим, что так как свойство Автозаполнение включено (стр. 346), плат-
форма автоматически заполнила колонки Поле, Путь и Заголовок полей
текущего набора данных исходя из запроса. Поясним их назначение:
в колонке Поле отображается нередактируемое значение имени поля,
которое платформа автоматически сформировала из текста запроса.
Это внутреннее имя поля, использующееся только в тексте запроса;
в колонке Путь содержится строка, содержащая путь к данным, по кото-
рому к нему можно обратиться в других закладках конструктора схемы
компоновки данных. Оно может быть отредактировано. Имена полей,
описанные в этой колонке, появляются для разработчика на закладке
выбора полей в отчете, описания вычисляемых полей, полей группировки
и др., поэтому имеет смысл настроить их понятнее для себя;
и заголовок содержит название поля, под которым поле будет фигурировать
в настройках отчета в режиме 1 С:Предприятие и в шапке отчета.
Отредактируем заголовки полей, сделаем их более короткими и понятными.
Для этого нужно установить флажок слева от заголовка поля (рис. 2.16).
Наборы данный | 5 Й5язи наборе®;? « Вычлбга^айые;.;^) е; ’Рёсйжьй » Параметры € Макеты' ' *. Вложенньдада.
ЙО’ X Поля «
© Наборы данных }
I
* Настройки
Нзбор... I
I
1
I
Поле К.- Путь Заголовок ? г Ограничение полг. гиНиЛУ. 'У»" Ограничение рек .. Роль Вырб.. Выра... упоря... ?1 3 й-
-а< п.„ г.; У - X 1
а Н ; о Га § КоличествоКонечныйО стагок КоличествоРасход Количествен ачальныйОстагок КоличествоПриход КоличествоКонечныйО стагок @ Конечный остаток КоличествоРасход @ Расход КоличествоНачальныйО стагок @ Начальный остаток^ КоличествоПриход 0 □ ы □ □: конОст, ; й Количество ; .'1 5 ? боб О'НачОст, 1 к°ли,«ст«’ ' ———— □ □;О|О; ; ** ; »> • н-8 ; «5* ' ' &
- 1
Запрос: Конструктор запроса., й
г” Г ; 1у *) м г:“ Г"-‘о гу- ВЫБРАТЬ ОстаткиНоменклатурыОстаткйИОбороты.Номенклатура, ОстаткиНоменклатурыОстаткиИОбороты.Склад , ОстаткиНоменклатурыОстаткиИОбороты.КоличествоНачальныйОстаток, ОстаткиНоменклатурыОстаткиИОбороты.КоличествоКонечкыйОстаток, ОстаткиНоменклатурыОстаткйИОбороты.КоличествоПриход, Г &
г ОстаткиНоменклатурыОстаткйИОбороты.КоличествоРасход —4 II II
Автозаполнение @
Рис. 2.16. Установка заголовков полей
Запустим отчет на исполнение в режиме 1С:Предприятие. В открывшемся
окне отчета нажмем кнопку Выбрать вариант... (рис. 2.17). В окне вариантов
отчета мы видим теперь два варианта - Основной и только что созданный
нами вариант Оформление. Выделим его и нажмем кнопку Выбрать.
Нажмем кнопку Сформировать. Отчет примет следующий вид (рис. 2.18).
; Остетки но.,; (1Г Пр «приятие ] 4 <н •, О X
ИМВИИИП1ИИИИ1ЯИИИПИИИМ
Остатки номенклатуры
Вариант отчета- ^Оформление___________^Выбрать в^рианп„
С-хюрмыривап ) Настройка.. Все действия -1 "»
Остатки номенклатуры А|
Номенклатура Склад Начальный .Приход остаток Расход Конечный остаток
..Монитор ЬСО Рпзничнь й 41)00 2,000 2 СП'
Веб-камера Розничный 10,000 3,000 7,000
Микрофог Розничный 10,000 2.000 6,000 I
Материнская плата Основной 5,000 3,000 2,000
{Память Основной 5,000 3,000 2,000
<Жесткий диск Основной 3,000 3,000'
Итого 37,000 16,000 21,000
--г
г ,-Ц-ц ,, ^4^ >
Рис. 2.18. Результат отчета
Мы видим, что в отчет выведена группировка в виде простых детальных
записей. Отчет имеет заголовок, и все его элементы оформлены макетом
оформления Море.
Заметьте, что при прокручивании отчета вниз положение шапки отчета оста-
ется зафиксированным. Так происходит потому, что у табличного документа
в форме отчета, в который по умолчанию выводится отчет, автоматически
установлено свойство ФиксацияСверху.
Настройка отдельных группировок
Теперь продемонстрируем настройку отдельных элементов отчета. Настроим
элемент отчета Детальные записи. Для этого выделим режим настроек отчета
Детальные записи и на закладке Другие настройки дадим заголовок груп-
пировке — Список номенклатуры на складах, а также установим значения
параметров Расположение общих итогов по вертикали — Нет и Макет оформ-
ления — Яркий (стр. 393).
На закладке Сортировка отсортируем записи группировки в порядке убывания
конечного остатка номенклатуры. Для этого перенесем из списка доступных
полей поле КоличествоКонечныйОстаток и установим направление сорти-
ровки - По убыванию (рис. 2.20).
На закладке Условное оформление выделим цветом записи группировки
с конечным остатком меньше или равным единице. Для этого нажмем кнопку
Добавить, расположенную в правом верхнем углу окна настроек (рис. 2.21).
Сначала укажем Оформление для выделения полей. Нажмем кнопку выбора •••
в поле Оформление и установим красный цвет текста и желтый цвет фона.
Отчет <1г^еткиНоменклатуры0сноввая($хемаК|ЭНйРН0ВкиД4?нных
Наборы дани &
— - -—ЧА.
Связи наборов 5 ’ Вычисляя «ле ' Ресу™^
Пара-иетрн
Макеты ВлаНнные0и> ? Настройки [
1--------— ~т-------—“""
Имя вариа... ' Представл.-.
Основной
О'- ... ёяЩ.
Основной
Оформление
•Ш- & х
Даг?.'ьнь,а,
Настройки: Отч(
*.«*•? ллйьйт'*' - "-м?
Поля Г| уппир
^Детальные записиГ^
Выбранные па,. , Отбор ...
( Г ;. Параметр
|С?) Макет оформления““
[ |С - Количество записей
IС; Процент записей
•НО Тип макета
|| |О; Расположениеитогов
11 >О ;: Расположение полей группировок
11 О < Расположение группировок
I । О. Расположение реквизитов
I !СЗ, Расположение ресурсов
зСЗс1 Расположение общих итогов по вертикали
Н । О Тип заголовка полей
Нет
Сортировка Условное оФо™ Другие настр...
' Значение
Яр1 пй
10
10
Авто
Авто
Вместе
Начало
Вместе с владельцем
Горизонтально
Авто
Рис. 2.19. Редактирование настроек элемента отчета «Детальные записи»
Поля Группир™
I—-------------
Доступные поля
Ёыб энные по.. Отбоь
---- —,— ------,--------
‘ Поле
Сортировка Условное офо™
Другие настр.„
; Направление сори тавки
4»
По возрастанию
&
~5ГГ
Поибы т
да-.давоК0нечныйОстеттк
1Ь .убь^мнию
Номенклатура
Склад
е»
&
А
»
@ 1 в# <Авто>__ _____
12Н КоличествоКонечныйОстаток
Рис. 2.20. Настройка сортировки элемента отчета «Детальные записи»
КоличествоНачальныйОстаток
КоличествоПриход
КоличествоРасход
Поля группир
Выбранные по..
Оформление
Условие
' Офир»' тяемые поля Представление
. — • » . • Ч.
<*ТГ
< I
< I
о .
Затем укажем условие, при наступлении которого будет применяться оформ-
ление. Нажмем кнопку выбора в поле Условие и в появившемся окне
добавим новый элемент отбора (рис. 2.22). Для этого нажмем кнопку Добавить
и укажем в графе Левое значение поле КоличествоКонечныйОстаток, в графе
Вид сравнения - Меньше или равно, а в графе Правое значение — 1.
х
Полягруппда... 3 | :Выфанные:па„ I / I Условное офо... I Дрмгмеяеюпх^.
текста
< Оформляемые.поля . Представление
Фармление
Цвет фона. Цвет
I
Рис. 2.22. Настройка условного оформления элемента отчета «Детальные записи»
Затем зададим список оформляемых полей. Если мы хотим выбрать все поля
отчета, то можно оставить этот список пустым. Можно указать конкретные
поля, нажав кнопку выбора в поле Оформляемые поля. Для этого в появив-
шемся окне, нажимая кнопку Добавить, нужно выбрать поля, например,
Номенклатура и КоличествоКонечныйОстаток (рис. 2.23).
.СорПфвая;.^ | Условное офо... [ Другие, наетр;
С 'рм-тэни...
Условие
Оформляемые поля
Цвет Фона, Цвет текста ' КоличествоКонечныйОстаток Меньше
К
Поля -рулпир.\? у. > :Вь|фан»Ф!ё:па;..
I' ...,ок
стат
Отмена.. ] <
I Оформляемые поля
; ®: ет Номенклатура
Рис. 2.23. Настройка условного оформления элемента отчета «Детальные записи»
Затем зададим представление условного оформления как Маленький запас.
Это является хорошим тоном при создании стандартных настроек для поль-
зователя. В результате, открыв окно пользовательских настроек, вместо
непонятной строки «Конечный остаток меньше или равно 1» пользова-
тель увидит осмысленное выражение, которое задано в поле Представление.
В результате окно условного оформления должно принять вид (рис. 2.24).
Полядатирс., ч..^ Ссрпфсёка . Условное офо... | ДруиетстР;»
‘ Оформление
Условие
©Цвет Фона, Цвет текста . КолнчествоКонечныйОста.
Оформляемые поля ^.Представление
Номенклатура, Количе... -
Ц о
!;ё
Рис. 2.24. Настройка условного оформления элемента отчета «Детальные записи»
В заключение перейдем на закладку Выбранные поля и раскроем список полей
Автополя (стр. 352). Для этого выделим его, вызовем его контекстное меню
и выберем пункт Развернуть (рис. 2.25).
Полягрутир... | Выбранные по... |Отбср ' Сорпуовка Условное оФо.
^ругие.настр^.
крупные поля
{Поле
ЕСИ
; €> Выбранные поля
Склад
КоличествоКонечныйО стагок
Количествен ачальныйОстеток
КоличествоПриход
КоличествоРасход
СистемныеПоля
ПараметрыДанных
Новое поле
Новая группа
Новое авто поле
Изменить
Скопировать
Удалить
Нс. •янклет
&
X
&
Ф
Ф
А
4
3
Перемеет ить вверх
Перы вститьвниз
Свойства элемента пользовательских н
Установить заголовок..
Г
Сгруппировать поля
Разгр^пироЕать
И
Р&звернчгв
Рис. 2.25. Раскрытие списка полей «Автополя» группировки «Детальные записи»
Здесь мы видим список полей детальной группировки отчета. Так как началь-
ного остатка по номенклатуре у нас нет, уберем признак использования
у поля КоличествоНачальныйОстаток, или можно просто удалить его из списка
(рис. 2.26).
Все настройки, которые мы проделали (рис. 2.19-2.26), касались группировки
отчета Детальные записи.
Дип® настр
; Выбранные поля
/?
УслсеноеоФо
I '$
| $>
| <6
I
{ ®
I «5
5-
1 Поле
“ 'тРвЗ?'1 —... Ц
Поля групп Выбранные по. Отбор . Сортировка
Сэступныё поля
® <» пня
«“ Номенклатура
“> Склад
Я КоличествоНачальныйОстаток
оличествоПригод
КоличествоРасход
I КоличествоКонечныйОстагок
Рис. 2.26. Выбор полей для группировки «Детальные записи»
а
а
а
а
! я
э
Склад
КоличествоКонечныйОстагок
Количествен ачальныйОстаток
КоличествоПриход
КоличествоРасход
СистемныеПоля
ПараметрыДанных
Теперь для наглядности добавим в отчет еще одну группировку (внешне
похожую на таблицу) и настроим ее по-другому
Выделим корневой элемент Отчет и добавим в него группировку по полю
Склад. Выделим группировку Склад и добавим подчиненную ей группировку
Номенклатура.
Переместим группировку Склад вместе с вложенной в нее группировкой
Номенклатура в самый верх структуры отчета. Это можно сделать кнопкой
Вверх в командной панели настроек отчета или перетаскиванием мышью.
Перейдем к настройкам группировки Номенклатура. Для этого выделим режим
настроек этой группировки в средней части окна настроек.
На закладке Отбор установим отбор записей для группировки Номенкла-
тура с конечным остатком больше единицы. Для этого перенесем из списка
доступных полей поле КоличествоКонечныйОстагок. Установим Вид сравнения —
Больше, а Правое значение - 1. Условие отбора примет вид (рис. 2.27).
Рис. 2.27. Настройка отбора для группировки «Номенклатура»
ПРИМЕЧАНИЕ
Выделенные пиктограммы справа от элементов структуры отчета
(см. рис. 2.27) отражают наличие настроек - выбранных полей, отбора,
условного оформления, сортировки и т. п. конкретного элемента отчета.
В заключение выделим корневой элемент структуры отчета Отчет и на
закладке Другие настройки установим параметр Расположение полей группировок
в значение Отдельно и только в итогах (рис. 2.28). Это придаст группировке
Склад табличный вид.
-* - V. - »*о*-адп: . ч« ЕЙЬ
Выбрамны&. ! Рт^гр Сорт ос (а
17.5раме"ПЬ|
Усло&ноео..., _ Пользоеаге.. } Другие нас... {
Рис. 2.28. Настройка вывода полей группировок для отчета в целом
Запустим отчет на исполнение в режиме 1 С:Предприятие. Нажмем кнопку
Сформировать. Отчет примет следующий вид (рис. 2.29).
Остатки номенклатуры
Вариант отчета- Оформление
?- Выбрать е-ариает.
ги/ Фватъ бй Настройка... Все действия ( 7
Остатки номенклатуры 1 % !
Склад 'Номенклатура Начальный 1 Приход Расхвд ; Конечны*» 1
о^ахо» остаток
«7 2 Основной .1 _ ; , «дао У.ОвО 4.ИЮ
Отбор: Конечный ост эток больше‘"Г
(Материнская плата 5,000 3,000> 2,000
... - * (Память Отбор:1 онечный остаток Больше "Г' ^=и=™ -<•= о ,000 .; 2Х00Й 3,0001 2,С"0 47ДПв
!Веб-камера (Микрофон Г - ’• - — 10,000 10,000 3,000 2,000* 7,000 8,000
Монитор ЁСО 4.00С 2,рое 2,000
Итоге 37 Ш» 14Ж1 21Ш0
Список номенклатуры на складах
Номенклатура Склад Приход наЬход Конечный
остток
г [ г 1 ! Микрофон _ ‘Розничный Веб-камера .Розничный Монитор ЬСО _ Розничный МаТЕринскаяплата ^Основной Память )снозной 10,000 _ ~10Д)0Т_ ~'4,6ооГ_ 5(0 • 5(00. _2Д001 3. 00 ' з,6оо[“ ~ 3,000™ 3,000 7,000 _2..0Р° 2~66о~ 1Д00 1 1
1 Жесткий Диск, _ 'Основной Л__ '3-ос 3 3,000 ! г _
~ 1 —
- . —.'л. 1 9^
Итак, мы видим, что у каждого элемента структуры отчета теперь есть свое
оформление.
В верхней группировке записи сгруппированы по складам и номенкла-
туре. В результате отбора отражаются только записи с конечным остатком
номенклатуры больше единицы. Заметьте, что заголовок над группировкой,
так же как и макет оформления и список полей отчета, относится не к этой
конкретной группировке, а ко всему отчету в целом. Но поскольку для самой
группировки эти элементы оформления не установлены, она их наследует от
главного отчета.
Детальный список выводится без общих итогов, в порядке убывания конеч-
ного остатка номенклатуры. Записи с конечным остатком меньше или равным
единице выделены цветом. В списке отсутствует поле Начальный остаток.
Также список выводится со своим заголовком и макетом оформления.
Итак, на этом примере мы научились создавать новый вариант отчета. Затем
мы познакомились с индивидуальной настройкой каждого элемента струк-
туры отчета. Мы научились устанавливать для них:
сортировку,
отбор,
условное оформление,
заголовок, макет оформления и другие.
Таким образом, применяя различные варианты настройки отчета, можно
получить множество отчетных форм, использующих один и тот же набор
данных.
Пример 2
Дальнейшие возможности системы компоновки данных будем изучать
на примере отчета, который будет отражать информацию по собранным
и проданным системным блокам за указанный период (рис. 2.30).
Склад . Количестве Конечный И» ; Системным блок приход расход '.остаток ,Л/П 1 ...... 5. . .. .. .. „Л.,. . . Стоимость : Приход СТОИМОСТЬ , расход ПрибЫь общий , >1
'Основной |.2' .. . 2 17 500,00 20000,00 2 500,01 100,00
1 1 । Компьютер для дома 11 1; 9 000,00] 10 000,001 1 000,00 40.00=
1 2? Компьк"’ер для офига 11 1! 8 500,00; 10 000.00 1 500.00 60,00|
-17 5И.00 20 000 00 2 500 00 100,111’
Рис. 2.30. Требуемый вид отчета
Создадим новый объект конфигурации Отчет и назовем его ОтчетПоСи-
стемнымБлокам. Откроем конструктор схемы компоновки данных и добавим
новый набор данных - запрос. Откроем конструктор запроса. В качестве
источника данных для запроса выберем виртуальную таблицу регистра нако-
пления СобранныеСБ.ОстаткиИОбороты. В список полей перенесем поля
из этой таблицы:
КоличествоНачальныйОстаток,
КоличествоКонечныйОстагок,
КоличествоПриход,
КоличествоРасход,
СтоимостьПриход,
СтоимостьРасход,
СБ,
Склад.
Нажмем ОК и вернемся в конструктор схемы компоновки данных. Изменим
заголовки и пути полей на более понятные: Системный Блок (СБ), Начальный
остаток, Конечный остаток. Напомним, что заголовки будут отражаться в шапке
отчета и окне настроек пользователя, а пути - в настройках разработчика,
в выражениях вычисляемых полей, ресурсов и т. п.
Вычисляемые поля
В отчете мы хотим видеть прибыль от продажи собранных системных блоков,
то есть разницу между его продажной стоимостью (поле регистра Стои-
мостьРасход) и стоимостью комплектующих и услуг, израсходованных на
сборку компьютера (поле регистра СтоимостьПриход). Значит, для этого нам
понадобится создать вычисляемое поле (стр. 358). Перейдем на закладку
Вычисляемые поля и добавим его кнопкой Добавить. Дадим ему имя (Путь
к данным) - Прибыль, в колонку Выражение введем следующий текст
(листинг 2.1).
Листинг 2.1. Выражение для расчета вычисляемого поля «Прибыль»
Заголовок для отображения в отчете формируется по умолчанию, но его
можно изменить (рис. 2.31).
гчег От ..... _ ЛЕ IX
Наборы дан*«ь. Свтйинасореед,. Вычисляемые п... | Рьй « ’ амет й Макеты Вяомвжыб схва. Нас №
О X
(Путь к |данным Выражение Заголовок Ограничен ГТ. ,У... .. неДоСту.. Выражение представлен 1 р... • У... 1 Выражения упорядочиеа. Тип значения __ Доступные значения -'•з | Оформление { 1 11 Параметры,» ; я *
ГПр1*. И^гоимостьРасход - СтоимостьПриход ^Прибыль / 1 ! | || 81
— ]|
Рис. 2.31. Создание вычисляемого поля
Перейдем на закладку Ресурсы и определим поля ресурсов отчета (стр. 370).
Обратите внимание, что созданное ранее вычисляемое поле Прибыль тоже
добавилось в ресурсы отчета, так как по нему можно подсчитывать груп-
повые итоги (рис. 2.32).
Ресурсы < С Параметры
КоличествоРасход
КонечныйОстагок
“ НачальныйОстаток
Доступные поля
; Поле
Наборы данный Связи наоопов д.. вычисляемые г
Выражение
га
*=» НачальныйОстаток
Клличе„гвоПриход
839 КоличествоРасход
СтоимостьПри: од
“ СтоимостьРасход
--- —. —
ГН Прибыль
Макеты Вло./енные сие..,. Час ройки
Рассчитывать по
Ги Прибыль
•» СистемныйБлок
*« Склад
““ СтоимостьПриход
СтоимостьРасход
Сумма(КонечныйО стагок)
Сумма(Н ачальныйО стагок)
Сумма(КоличествоПриход)
I Сумма(КоличествоРасход)
Сумма(Стоимос .ьПри^од)
Сумма(СтоимостьРасход)
‘ Сумма[Прибыль)
- 4
I !
Рис. 2.32. Определение ресурсов отчета
Параметры. Период отчета
Теперь определим параметры отчета (стр. 376). Для этого перейдем на
закладку Параметры. Мы видим, что платформа уже создала два параметра:
НачалоПериода и КонецПериода. Эти параметры используются практически
в каждом отчете, так как пользователя интересуют данные о хозяйственной
деятельности за определенный период. Первым параметром в отчет переда-
ется дата начала периода расчета итогов, вторым - конец отчетного периода.
В результате отчет будет содержать только данные за указанный период. Мы
можем также добавить свой параметр, но в данном случае нас устраивает
список параметров, предложенный нам по умолчанию (рис. 2.33).
^|^т^ет.0тчетПоСистемн»>1мБясньам: Ос^сжнаиСкемаКм^оншкмДанных ....... .. . .. „ ГЭ: X
Набор, (Данных Связинабо, сед.... Вычисляемые п.. Ресц сь '} Параметры Макеты Вложенные схе„ Настройки
Рис. 2.33. Параметры компоновки данных
Поле Заголовок можно изменить, так как эти заголовки выводятся при запросе
параметров у пользователя. Мы оставим их по умолчанию, но изменим
колонку Тип. Дело в том, что если в отчет передается параметр, содер-
жащий значение типа Дата, то дата всегда содержит и время с точностью до
секунды. Однако пользователя, как правило, не интересуют данные в отчете
с такой точностью. И ему незачем указывать еще и время при вводе даты.
Поэтому в колонке Тип нажмем кнопку выбора - и в нижней части окна
редактирования типа данных установим состав даты в значение Дата для
обоих параметров (рис. 2.34).
Рис. 2.34. Редактирование состава даты
Но в таком случае, если пользователь задаст даты периода как 01.12.2011
и 11.12.2011, итоги регистра будут рассчитаны с начала дня 01.12.2011
00:00:00 по начало дня 11.12.2011 00:00:00. То есть данные за 11-е число,
отличные от начала дня, в отчет не попадут, а пользователь, конечно, подраз-
умевал этот день включить. Чтобы этого избежать, внесем в поле Выражение
для параметра КонецПериода следующий текст (листинг 2.2).
Листинг 2.2. Выражение для расчета параметра «КонецПериода»
Конец* 1ериода(аКонецПериода)',йень")
Это выражение, сформулированное на языке выражений системы компоновки
данных, содержит функцию КонецПериода (), возвращающую дату, соответ-
ствующую концу какого-либо периода, например дня.
ПРИМЕЧАНИЕ
Подробное описание языка выражений системы компоновки данных
содержится во встроенной справке системы, в разделе Справка ► Содержание
справки ► Встроенный язык ► Общие объекты ► Система компоновки данных ►
Язык выражений системы компоновки данных.
В результате окно параметров компоновки примет следующий вид
(рис. 2.35).
Отчет ОтчетПоСмстемнымБлокам Ос« овнаяСмемаКомпоновкмллат? ш _ □ X
I Наборы т. иь" Связииаъ <?вда Вычисляемые Поля *_Релрсы Параметры ! Макеты Вложенные с ас~эой
о а х ф ♦
Рис. 2.35. Параметры компоновки данных
Заметим, что у параметров снят флажок Ограничение доступности. Это значит,
что эти параметры будут видны в окне настроек пользователя. Также снят
флажок Запрещать незаполненные значения. В случае установки этого флажка
при использовании параметров в отчете (признак использования слева от
параметра) система проверяет обязательное заполнение параметра. Если
значение параметра не указано, то будет выдана ошибка. В нашем случае
флажок Запрещать незаполненные значения не установлен, поэтому отчет
будет формироваться без ошибки и с пустым значением параметра.
Рис. 2.36. Определение полей и группировок отчета
Определим структуру отчета. На закладке Настройки выделим корневой
элемент Отчет и добавим в него группировку по полю Склад. Выделим груп-
пировку Склад и добавим подчиненную ей группировку СистемныйБлок.
Затем на закладке Выбранные поля перенесем из списка доступных полей
поля (рис. 2.36):
НачальныйОстаток,
КоличествоПриход,
КоличествоРасход,
КонечныйОстаток,
СтоимостьПриход,
СтоимостьРасход,
Прибыль.
На закладке Другие настройки дадим заголовок отчету — Отчет по системным
блокам и установим Макет оформления (стр. 393) - Арктика.
Быстрые пользовательские настройки
В заключение мы должны предоставить пользователю возможность задавать
отчетный период перед формированием отчета. То есть параметры Начало
периода и Конец периода должны быть включены в состав пользователь-
ских настроек. Причем эти настройки должны находиться непосредственно
в отчетной форме, поскольку задавать отчетный период требуется практи-
чески всегда. На закладке Параметры установим для каждого из параметров
признак использования (флажок слева от параметра). Затем нажмем кнопку
Свойства элемента пользовательских настроек, расположенную в правом
нижнем углу окна настроек. Установим флажок Включать в пользовательские
настройки и оставим предложенное по умолчанию для свойства Режим редак-
тирования значение Быстрый доступ (рис. 2.37).
Рис. 2.37. Настройки отчета
Флажок Включать в пользовательские настройки означает, что эта настройка
будет доступна пользователю в отдельном окне (2) при нажатии кнопки
Настройка (то есть такая настройка, которой он может пользоваться, но не очень
часто). А режим редактирования, установленный в значение Быстрый доступ,
означает, что эта настройка будет быстрой пользовательской настройкой,
которая будет автоматически отображаться непосредственно в отчетной
форме (1). Это настройка, которая нужна пользователю постоянно, чуть ли не
при каждом запуске отчета, поэтому она всегда на виду (рис. 2.38).
Гтч&ГТС С
Отчет по системнь&и блокам
Вариант отчета 'Основной
_] ; Вызреть вариант,
Все действия ’ !
Рис. 2.38. Быстрые (1) и обычные (2) пользовательские настройки
Запустим отчет на исполнение в режиме 1С:Предприятие. В открывшейся
отчетной форме зададим период отчета с 01.12.2011 по 11.12.2011. Нажмем
кнопку Сформировать. Отчет примет следующий вид (рис. 2.39).
О' "ет по сметет-,, ъ-ч бг окам • Демонстрацирнная конфигурация "Си , (К Предприятие) ’• .-г .
□ <
Отчет по системным блокам
Вариант отчета: Основной
Выогкгь вариант I
С Формировать | Настройка..
В се действия”
Рис. 2.39. Результат отчета
Поскольку в базе есть документы по сборке и продаже системных блоков
за 11.12.2011, мы видим, что эти данные попали в отчет.
Системные поля
Немного усовершенствуем наш отчет. Уберем признак использования у поля
НачалычыйОстаток. Добавим в список выбранных полей отчета вычисля-
емое поле, сформированное платформой, показывающее процент прибыли
по каждому системному блоку от ее общей суммы. Для этого раскроем поле
Прибыль и перенесем поле ПроцентОбщий (рис. 2.40).
01 чет От чвет! 1 оинстемнымБяокам: Основная! - &™зКг «Данных
«-««'И ...
Настройки | I
л»
$
Основной
кДеаз
Выбранкм.
Пользсаат
*
ДсйОрНОи
С,«ггемныйБ> л».
! Имя вариан .' Продставле...
Отбор I Сортировка Устьг ное.
Ф й| Отчет
Склад
Наборы данный Ст ей наборов д.„ ймчибляемые г.. Ресурсы Параметр; Макеты | Е ложгнныеске.
’ *! * | Поле
• О Выбранные поля
&
Рис. 2.40. Добавление поля «% от общей прибыли» в отчет
Настройки: Отчет, СистемныйБлок
Параметры
Други* на..
Доступные поля
КоличествоРасход
КонечныйО статок
НачальныйОстаток
Прибыль
ПроцентВИерархии
ПроценгВИерархииВКолонке
ПроценгВИ ерархииВ Строке^
ПроценгВГруппе
ПроцентВГруппеВКолонкеИ л
ПроцентВГ руппеВСтрокеИли:
ПроценгВКолонкеИлиТ очке
ПроцентВСтрокеИлиСерии
.лмгг!
4 НачальныйОсгаток
$ КоличествоПриход
I КоличествоРасход
I КонечныйОстаток
СтоимостьПриход
4 СтоимостьРасход
9 Прибыл*
9Прибыль.ПроцентОбщий
СтоимостьПриход
СтоимостьРасход
СистемныеПоля
ПараметрыДанных
&
Ф
5
4
9
9
5
0
Выделим режим настроек группировки СистемныйБлок и добавим нумерацию
внутри нее. Для этого раскроем список Системные поля и перенесем поле
НомерПоПорядку так, чтобы поле было первым в списке (рис. 2.41).
• . * Ж - ВЙЗ&Й5ЙВЙЙИЙЙЙ ,МИвЯ»'.:л . — .
Отчет. От?"етПёС»«ст*^мнчмБ лакам: ОснавнахСкём^ лмпонов^иДа*йны!
Имя вариан...
Основной
ОсШаП
Наборы Данных * < Вдеыьляамые«
Прет' не Отчет
3
"3? Г" "4 Л «5‘ - . - •~ь—
иниону1 ., .V'^лонноерфор...
Рис. 2.41. Добавление поля «№ по порядку» в группировку «СистемныйБлок»
. Настройки:
I и лг группиро... 0] Выбранные поля
Доступные поли
а
$
$
»
9
&
КоличествоПриход
КоличествоРасход
КонечныйОстаток
НачальныйОстагок
Прибыль
СтоимостьПриход
СтоимостьРасход
СистемныеПоля
МШ0ММЬА. • ? .р
» НомерПоПорядкуВГруппирое^,
“> Уровень
»« УровеньВГруппировке 4
<Авто>
> Параметры':-: " 'Найты ; Вложенные сх&„ Настройки |
' Пеле
® В "бранные поля
ЯМ
Запустим отчет на исполнение в режиме 1 С:Предприятие. В открывшейся
отчетной форме зададим период отчета с 01.12.2011 по 11.12.2011. Нажмем
кнопку Сформировать. Отчет примет следующий вид (рис. 2.42).
Отчет по системным блокам
л [.. В'ьсбратн вариан....
Вариант отчета: [Основной
Обязательность использования параметров
Если отчетный период для пользователя не важен, то он может снять признак
использования параметров (флажок слева от параметра). В этом случае отчет
будет формироваться по всем записям регистра СобранныеСБ, находящихся
в базе данных.
При включенном признаке использования параметров также можно не зада-
вать их значения. В этом случае отчет будет формироваться без ошибки,
поскольку у параметров отчетного периода флажок Запрещать незаполненные
значения не установлен (см. рис. 2.35).
Если же, наоборот, отчетный период нужно вводить всегда, то у параметров
в поле Использование можно задать Всегда (рис. 2.43).
Рис. 2.43. Параметры отчета
В этом случае флажок использования параметра в пользовательских
настройках отсутствует, т.е. параметр используется всегда. Если дополни-
тельно к этому установить также флажок Запрещать незаполненные значения
(см. рис. 2.43), то при формировании отчета с пустым значением параметра
будет получена ошибка (рис. 2.44).
Рис. 2.44. Результат отчета
Таким образом, на примере этого отчета мы научились:
создавать вычисляемые поля,
работать с параметрами отчета,
использовать в отчете системные поля.
Также мы разработали для отчета удобный пользовательский интерфейс,
позволяющий вводить параметры отчета непосредственно в отчетной
форме. Позднее мы рассмотрим примеры, задающие в форме пользователь-
ских настроек другие настройки отчета - сортировку, отбор и т. д. Также мы
научимся программно задавать значения настроек и передавать их в отчет.
Пример 3. Связь наборов данных
Отчет, разработанный с помощью системы компоновки данных, может
использовать данные из нескольких (в нашем случае двух) наборов данных.
Эти наборы данных описываются каждый по отдельности, а затем в схеме
компоновки данных указывается, каким образом они связаны между собой.
Для демонстрации этой возможности системы компоновки данных разра-
ботаем отчет, отражающий информацию о последних ценах поступления
товаров, а также связанную с ней информацию о поставщиках, датах и
номерах документов, которые произвели движения в регистре сведений Цены
(рис. 2.45).
Номенклатура
Контрагент , Дата ~ Номер .Цена
Веб-камера
’ ООО Стандарт 11 01.20121420 00 000000005 I 1 000,00
Жес кий диск э
; ООО "Атлант" ОС 12.2011 12 22:39 '000000001 | 3 000,001
'Материнская плата
ООО "Атлант 05.12.2011 15:53:17 000000002 ; 2000,00
Микрофон
I ООО "Стандарт" .11.01.201214:20:00 000000005 1 700,00'
Монитор 1_С0 ” '!
Г ООО “Стандарт" 11.01.201211.10:00 0000Л000Л ! 10 000,00
Память
ООО “Атлант" 0512 201.15.53:17 000000002 г~~ 1 200,00
Рис. 2.45. Требуемый вид отчета
Для этого создадим набор данных, получающий информацию из документов
Приходная накладная, и свяжем его с исходным набором, получающим
данные из регистра сведений Цены. Затем мы выведем полученные данные
в табличный документ с помощью конструктора настроек.
Создадим новый объект конфигурации Отчет и назовем его ЦеныКомплек-
тующихОтПоставщиков. Откроем конструктор схемы компоновки данных
и добавим новый набор данных - запрос. Он будет назван по умолчанию
НаборДанных1. Для большей наглядности назовем его Цены. Чтобы ввести
новое имя набора данных, можно дважды щелкнуть по его названию.
ЦеныСрезПоследних.Цена
Откроем конструктор запроса. В качестве источника данных для запроса
выберем виртуальную таблицу регистра сведений Цены.СрезПоследних.
В список полей перенесем поля из этой таблицы (рис. 2.46):
Номенклатура,
Цена,
Регистратор.
Поля
ь
в ЦеныСрезПоследнихРегистратор
Рис. 2.46. Выбор полей для запроса
Поле Регистратор нам понадобится в качестве ссылки на документ Приход-
наяНакладная, который произвел движения в регистре сведений Цены,
чтобы установить связь со вторым набором данных. Нажмем ОК и вернемся
в конструктор схемы компоновки данных. Таким образом, в этом наборе
данных мы получим информацию о последних ценах поступления товаров.
Но нам нужна еще другая, связанная с ней более детальная информация
из документов Приходная накладная.
Выделим корневой элемент дерева наборов данных и добавим еще один набор
данных - запрос. Назовем его Поставщики. Откроем конструктор запроса.
В качестве источника данных для запроса выберем объектную таблицу доку-
мента ПриходнаяНакладная. В список полей перенесем поля из этой таблицы
(рис. 2.47):
Ссылка,
Номер,
Дата,
Контрагент.
Поля
Приход. аяНакдоднзяСоыж*
“ ПриходнаяНакладная Номер
“* ПриходнаяНакладная.Дата
“ ПриходнаяНакладная Контрагент
Рис. 2.47. Выбор полей для запроса
Поле Ссылка нам понадобится в качестве ссылки на регистр сведений Цены,
чтобы установить связь с первым набором данных. Нажмем ОК и вернемся
в конструктор схемы компоновки данных.
Если в схеме компоновки данных присутствуют несколько наборов данных,
то между ними требуется установить связь (стр. 325). На закладке Связи
наборов данных добавим новую строку. Связей в общем случае может быть
несколько, даже если набора данных только два. В поле Источник связи, то
есть в качестве родительского набора данных, укажем Цены, в поле Приемник
связи, то есть в качестве зависимого набора данных, укажем Поставщики.
В поле Выражение источник выберем из полей родительского набора поле
Регистратор, а в поле Выражение приемник — поле зависимого набора данных -
Ссылка (рис. 2.48).
Отчет Ц^ныКомппектуюш.ихОтПостав»цыкйБ. Ос* оенаяГхев*а'Помпонов»од11анньш ..., О X
1 Наборы данных Связи наборос... Вычисляемые. Р р:ы Па амегрь Макеты Вложенные схе.. Настройки
Рис. 2.48. Создание связи наборов данных
Все связи, созданные в схеме компоновки данных, считаются Левыми внеш-
ними соединениями, то есть в отчет будут включены записи из обоих наборов
данных, удовлетворяющих условию связи Регистратор = Ссылка (рис. 2.49).
Набор данных "Цены"
I Регист
[ЕЕВДа
Приходна .акт адная ООО '00С 01 от 05.12201112:22 39Д
Пр г дна я накладная 000000002 от 05.112.2011 15:53:17 1 д
Приходная накладная 00000000^ от 05.12.2011 15:53:17 |
Приходная накладная 000000004 от 11.01.201211:10:00 ।3
Приходная накладная 000000005 от 11.01.201214:20:66 •
Приходная накладная 6б00б0005 от 11.01.2012 14:20:00 } *
[Ссылка ~ I.
При одна я накладная 1110000001 от 05.12.2011 17:22 39^ !
Приходная накладная 000000002 от 05.12.2011 15 53 17 ’ V
Приходная накладная 000000003 от 0612.2011 14:04:13 ___
Приходная накладная 000000004 от 11.01.201211:10:00
Приходная накладная 000000005 от 11.01.2012 1 4:20:00
।
Монитор ЬСО
В ‘О- (амера
К 'Микрофон
] ^ята _
.05.12 2011 12:22:39
1512 2011 15:5317
06.12201114:04:13
;11.01.201211:10:66
| Номенклатура
5пес гкиГ диск
Материнская пл« га
г 'вмять
Цена
Г~ з боодо
Г" 2 006.00!
! ’~Ц 1 200.66*
Г 16060.66
; ~ 1~6оо,о6|
: ’ 700,00!
Набор данных "Поставщики1
11 011 201214:20.00
Номер Контрагент
'000000001 .ООО "Атлант*
006060062 ООО "Атлант" ”
000000003 ООО' Стандарт1
000000004 ООО "Стандарт"
000000005 ^‘Стандарт11
Рис. 2.49. Связь записей в наборах данных
Кроме того, у родительского набора данных Цены будут отражаться в отчете
все записи, независимо от того, найден ли соответствующий им документ
в наборе данных Поставщики или нет. Поэтому при определении связей
наборов данных требуется внимательно обдумать, какой из наборов данных
будет родительским, а какой - зависимым.
Для быстрого создания стандартных настроек воспользуемся конструктором
настроек, который вызывается нажатием кнопки Открыть конструктор настроек
на закладке Настройки схемы компоновки данных (рис. 2.50).
Рис. 2.50. Настройки схемы компоновки данных
Сначала выберем тип отчета Список, что соответствует элементу структуры
отчета Группировка, где информация выводится по строкам (рис. 2.51).
Рис. 2.51. Конструктор настроек. Шаг 1
Нажмем кнопку Далее. На следующем шаге определим поля, выводящиеся
в отчет. Список доступных полей включает поля из обоих наборов данных.
Мышью перетащим из него поля (рис. 2.52):
Номенклатура,
Контрагент,
Дата,
Номер,
Цена.
Рис. 2.52. Конструктор настроек. Шаг 2
Нажмем кнопку Далее. На следующем шаге определим поля для группировки
записей в списке. Мышью перетащим из списка доступных полей поле
Номенклатура (рис. 2.53).
Рис. 2.53. Конструктор настроек. Шаг 3
Нажмем кнопку Далее. На следующем шаге определим поля для сортировки
записей в отчете. Мышью перетащим из списка доступных полей поле Дата
(рис. 2.54).
Рис. 2.54. Конструктор настроек. Шаг 4
Нажмем ОК. В результате наших действий в окне настроек появилась груп-
пировка Номенклатура и вложенная в нее группировка Детальные записи,
определен список выбранных полей и задано поле сортировки (рис. 2.55).
Рис. 2.55. Настройки схемы компоновки данных
Аналогичный результат можно получить, самостоятельно создавая нужные
элементы настроек, но в данном случае проще и быстрее это сделать
с помощью конструктора настроек. Запустим отчет на исполнение в режиме
1 С:Предприятие. Нажмем кнопку Сформировать. Наш отчет примет следу-
ющий вид (рис. 2.56).
у 4 Цеп.. ОС-Предприятие) Т, М М+ М- _ П Х
Рис. 2.56. Результат отчета
Мы видим, что записи в отчете сгруппированы по полю Номенклатура, то есть
для каждой позиции номенклатуры выводится список с указанием поставщика,
даты и номера документа Приходная накладная, в котором было учтено ее посту-
пление. Цена номенклатуры заполняется из регистра сведений Цены. Внутри
каждой группы записи упорядочены по полю Дата. Таким образом, данные
выводятся в отчет с помощью группировки Номенклатура ► ДетальныеЗаписи,
представленной в табличном виде. Но это не таблица. Отличие структуры
настроек Группировки и Таблица было рассмотрено в первой главе (стр. 18).
Пример 4. Связь таблиц внутри набора данных
На этом примере мы познакомимся с работой системы компоновки данных
с помощью встроенного языка. Разработаем отчет, отражающий список
номенклатуры с остатками на складах, и реализуем его программный запуск
из списка номенклатуры (рис. 2.57).
Группа
Н-: Нкпчу: • Нм. с». С1‘Гг'Ц 1
Хошп йш.туюш.ь
Материнская плата Материалы Эсновнои 2 ДЮ-
Память материалы Основной я 2,000;
Жесткий диск Материалы 1
Монитор ЬСО М ггериаль Розничный 2,ооб!
Веб-камера Материалы Розничн. й г 7,000!
Микрофо!. Материалы Розничный 8,000
Мояиер^рхмя
I Мониторы Материал ь. I
ОЗУ Материалы
Основные детали Материалы
Товары для сборки
Грочие детали М ггриалы ]
Собранные конпыотг ы
Компьютер для офиса комплекты
Компьютер для дома Комплекты _ „ . !
Компьютер игровой Хомглекты ... 1
Услуги
Сборка компьютера У- л та
Диагностика компьютера (Услуга
Ремонт комъютера Услуга
Сопутствующие услуги Услуга
Вос те явление данных Услуга
Рис. 2.57. Требуемый вид отчета
Создадим новый объект конфигурации Отчет и назовем его СписокНомен-
клатуры. Откроем конструктор схемы компоновки данных и добавим новый
набор данных - запрос. Откроем конструктор запроса. В качестве источника
данных для запроса выберем объектную ссылочную таблицу Номенклатура
и виртуальную таблицу регистра накопления ОстаткиНоменклатуры.Остатки.
Чтобы исключить неоднозначность имен в запросе, переименуем таблицу
Номенклатура в спрНоменклатура. Для этого выделим ее в списке Таблицы
и вызовем ее контекстное меню (рис. 2.58).
Таблицы
ЦБ
Нбмеигл
Ф - у! Остатки
Добавить
: X Шалить
ереименоЕзтв таблицы.
Заменигьтаблицу...
Рис. 2.58. Переименование таблицы в запросе
В список полей перенесем поля из этих таблиц (рис. 2.59):
Ссылка,
и Родитель,
и ВидНоменклатуры,
« Склад,
п КоличествоОстаток.
,ив спрНоменклатура.Ройигель
спрНоменклатура.ВидНоменклатуры
к» ОстаткиНоменклатурыОстаткиСклад
& ОстаткиНоменклатурыОстаткиКоличествоОстаток
Рис. 2.59. Выбор полей для запроса
Связывание таблиц в запросе
Перейдем на закладку Связи. Так как в запросе теперь участвуют несколько
таблиц, требуется определить связь между ними. По умолчанию платформой
уже будет создана связь по полю Номенклатура. Но нам нужно снять флажок
Все у таблицы ОстаткиНоменклатуры.Остатки и установить его у таблицы спрНо-
менклатура. Тем самым мы задаем тип связи как Левое соединение, то есть
в результат запроса будут включены записи обеих таблиц, удовлетворяющих
условию связи по полю Номенклатура. Кроме того, у таблицы спрНоменкла-
тура, которая будет слева в тексте запроса, будут отражаться в отчете все
записи, независимо от того, найдено ли им соответствие в таблице справа
ОстаткиНоменклатуры.Остатки или нет. Это нужно потому, что в регистре
ОстаткиНоменклатуры отражаются записи только по материалам, а отчет выво-
дится по всем видам номенклатуры (рис. 2.60).
эагфюса" мя1Н1Ш1Ммж Й х
Таб/мныи лоля_^' Связи ;, Группировка Условия Дг» члнмтепкш ». 0бъеШ1ненияЛ1сеааонимь1 * Пор , о» Кй-йоновка данный Характеристики ; Пакет запросов « |
| © & & X Ь
8 ,---$- -— - - —---—--- - --——-- -----•---у> — у. -у-т- —-— ш- -—а—*-Х2л* ---* “Г-~-"" ----------7——--- — ------------------1 I |
№ Таблица! 3 Таблица 2 'В...-П..'Условие связи !;|
? I Т ' ОстаткиНоменклатурыРстатки ЕЙ спрНоменклагура У Г» ОстеткиНоменклатурыОстаткиНоменклатура ’ = ! «• спрНоменклатура.Ссылка ' !
' ЧI
’ ; ; И
I И
! 'зпсос Р К*эьг | ] Далее > ! ЙК Ц Отмена }. травка
. Т <^-ч , • - - »- -V . . . —< . . -р- — -г~- —.- ..ч - -!ЧЛ : ,-- » .- №“ Л'ат" с. .....
Рис. 2.60. Определение связи между таблицами
Перейдем на закладку Условия и на уровне запроса установим отбор, чтобы
наименования групп не попадали в отчет. Для этого раскроем таблицу
спрНоменклатура, перетащим мышью поле ЭтоГруппа в список условий,
установим флажок Произвольное и внесем в поле Условие следующий текст
(листинг 2.3).
Листинг 2.3. Условие запроса
сппНоменкла гур-.ЭтоГ руппа = ЛОЖЬ
Закладка Условия примет вид (рис. 2.61).
Рис. 2.61. Создание условия запроса
СОВЕТ
Отбор можно применять и в самом запросе, и в настройках отчета. То же
касается сортировки и группировки. Отбор лучше применять в запросе, если
записи, не удовлетворяющие условию запроса, наверняка не понадобятся
в отчете. Сортировку и группировку лучше применять уже в настройках
отчета, чтобы сделать его более гибким.
На закладке Объединения/Псевдонимы изменим имена у полей запроса
на более понятные (рис. 2.62).
Рис. 2.62. Установка псевдонимов полей запроса
СОВЕТ
Имена полей лучше изменять в запросе, так как в этом случае в схему
компоновки данных они перенесутся сразу в три колонки: Поле, Путь
и Заголовок, и не нужно будет лишний раз их изменять.
Нажмем ОК и вернемся в конструктор схемы компоновки данных. Текст
запроса, сформированный платформой, примет вид (листинг 2.4).
Листинг 2.4. Текст запроса
ВЫБРАТЬ
спрНомснклатура.Ссылка КАК Номенклатура,
спрНоменклатура.Родитель КАК Г рута,
спрНоменклатура.ВидНоменклатуры КАК Вид,
ОстаткиНоменклатурыСс^тки.Склад,
ОстаткиНоменклатурыОстатки.КоличествоОстаток КАК Остаток
ИЗ
Справочник,Номенклатура КАК спрНоменклатура
ЛЕВОЕ СОЕДИНЕНИЕ Регис|рН<:копления.ОсгаткиНо1иен1татур'...Остатки
КАК0с'< аткиНс: ^енклатурыОстатки
ПО ОстаткиНоменклатурыС статки Номенклатура = спрНоменклатура.Ссылка
ГДЕ
спрНоменкйатура.ЭтоГруппа = ЛОЖЬ
Для решения нашей задачи - вывода списка номенклатуры с остатками — мы
выбрали вариант соединения двух таблиц в запросе, чтобы продемонстриро-
вать эту возможность системы компоновки данных. Но эту же задачу можно
решить с использованием двух связанных наборов данных — данных из спра-
вочника Номенклатура и регистра накопления ОстаткиНоменклатуры.Остатки.
Второй вариант лучше использовать в том случае, если получение данных
одним запросом породит слишком сложный запрос, когда необходимо выво-
дить в отчет данные с расчетом итогов, без учета дублирующихся записей,
при выводе в результат данных из различных типов наборов данных
(например, из запроса и таблицы значений).
Определим структуру отчета. На закладке Настройки выделим корневой
элемент Отчет и добавим в него группировку по полю Группа. Выделим
группировку Группа и добавим подчиненную ей группировку, не указывая
группировочное поле, — Детальные записи. Затем на закладке Выбранные поля
перенесем из списка доступных полей поля (рис. 2.63):
Номенклатура,
Вид,
Склад,
Остаток.
4
Рис. 2.63. Определение полей и группировок отчета
На закладке Другие настройки установим Макет оформления (стр. 393) — Яркий.
Запустим отчет на исполнение в режиме 1 С: Предприятие. Нажмем кнопку
Сформировать. Наш отчет примет следующий вид (рис. 2.64).
ч». -в- .Я- > 'ЛИ
Список 40 енклатуры
Вариант отчета: «Основной Л Выбрать вариа! т. I;
Г г » Сформировать | Настройка. Все действия * I г/ }
। Годва • кмшивда । Йдд Склад , . * ...и.-. • Остатот
ц Г 1“ * =1 Комплектующие • - -V-
Материнская плата Материалы 'Основной 2,000
Память Матеоиаль .Основной 2,000
Жесткий диск I Материалы > •-
Монитор ЮО Материалы ’о: ничный 2,000
Веб-камера ' Материалы Ресничный 7,00^
Микас фон 'Материалы Ро: ничный 6,000'
Мояре^ирхи
Мониторы Материалы !
ОЗУ Материалы |
Основные детали «Материалы |
Товары для сборки I
Прочее детали Материалы 1
Е С*наранйМе компыпте
1 Компьютер для офиса (Комплекты [
Компьютер для дома Комплекты
1 1 Компьютер игровой Комплекты I
Г 3 Услут 'Г' * ' М0ММММ1 ж
Сборка компьютера .Услуга |
Диагностика компьютера 1 □ ! 1
Ремонт компьютера (Услуга
Сопутствующие услуги «Услуга | !
Восстановление данных «'Услуга |
»
г 1
Рис. 2.64. Результат отчета
Программный запуск отчета
Теперь реализуем вызов нашего отчета из формы списка справочника
Номенклатура. Для этого создадим основную форму списка справочника
и отредактируем ее. Создадим команду Печать и соответствующую ей кнопку
формы, по нажатию которой содержимое отчета СписокНоменклатуры будет
выводиться в табличный документ и показываться пользователю. В обработ-
чике команды напишем следующий код (листинг 2.5).
Листинг 2.5. Обработчик команды «Печать»
Отчет формируется в серверной внеконтекстной функции ВывестиСпи-
сокНоменклатуры(). Затем заполненный данными табличный документ
возвращается на клиента и показывается пользователю (листинг 2.6).
Листинг 2.6. Функция «ВывестиСписокНоменклатуры()»
&НаСервереБезКонтекста
Функция ВывестиСписокНоменклатуры()
II В. качестве схемы компоновки данных используем макет отчета "Список Номенклатуры".
СхемаКомпоновкиДанных =
Отчеты.СписокНоменклатуры.ПолучитьМакет(”ОсновнаяСхемаКомпоновкиДанныхи);
II Получим настройки по умолчанию.
Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
II Сформируем макет компоновки данных.
Компоновц|икМакета = Новый Компоноя‘цикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщмкМакета.Выполнить(СхемаКомпоновкиДанных, Настройки);
II Выполним компоновку данных.
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);
II Выведем результат компоновки в табличный документ,
ДокументРезультат = Новый ТабличныйДокумент;
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
Возврат ДокументРезультат;
КонецФункции
Из комментариев в тексте обработчика видно, что здесь программно реализу-
ются все этапы компоновки данных, которые были описаны в первой главе.
Запустим «1С:Предприятие». Откроем справочник Номенклатура и нажмем
кнопку Печать. На экране появится новый табличный документ с данными
отчета (рис. 2.65).
В данном случае результат отчета выводится в новый табличный документ.
Это сделано, чтобы продемонстрировать изнутри процесс формирования
отчета.
Но можно просто программно открыть форму отчета и при этом передать
в нее параметр СформироватьПриОткрытии, установленный в значение
Истина, чтобы отчет выводился сразу без нажатия кнопки Сформировать.
Для демонстрации этой возможности создадим в форме списка справоч-
ника Номенклатура команду Отчет и соответствующую ей кнопку формы, по
нажатию которой будет открываться форма отчета СписокНоменклатуры и при
этом будет сразу же формироваться результат отчета. В обработчике команды
напишем код (листинг 2.7).
Номенклатура
{^Создать С? I Найти... [ ^Печап^ Все действия - ; ?
Наименование । । А К.ОД Я
• Гл 1 ' - 004.00001
е и Мояц 4^4 ^3. *-« Т ПСПрадп. 4 л* и.'-’ —. М м* м- _ о м Г00( 00018
гобр Услу| □ Груина Номенкла а Вид Сила МН Остаток — — й 000000008 .000000002
Материнская плета Материны Основной 2,000
Память Матери ‘пы ОСНО1 ной 2,00"
Жесткий диск Материалы
Монит зр ЬСО материалы РС гНИЧНЬИ 2,000
Веа-памера Материи ы Ро: ьичный | 7,600
Микрофон Матери ‘пы Розничный 0,000
*3 Моя иерархия
Мониторы Материалы 1_ _ * 1
ОЗУ Материалы С
Основные детали Материалы „ ‘
Товар1'1 для сборки —
Прочие детали Материалы
Собранны*- компом теры
Компьютер для офиса Комплекты
Компьютер для дома Комплекты
1 Компьютер игровой 1омплекты
в Услуги
Сборка компьютера Услуга
Диагностика змпьютера Услуга __ _1 1
Ремонт компьютера Услуга
Сопутсте /юш^е услуги ’Услуга _ 1
Восстановление данных Услга
• 1
• » 1 ▼
Рис. 2.65. Вывод отчета из формы списка справочника «Номенклатура»
Листинг 2.7. Обработчик команды «Отчет»
&НаКлиенте
Процедура Отчет(Команда)
ПараметрыФормы = Новый Структура("СформироватьПриОткрытии", Истина);
ОткрытьФорму("Отчет.СписокНоменклатуры.Форма", ПараметрыФормы);
КонецПроцедуры
Запустим «1С:Предприятие». Откроем справочник Номенклатура и нажмем
кнопку Отчет. На экране появится наш отчет (рис. 2.66).
Результат отчета будет тот же, но поскольку в последнем случае открывается
форма отчета, то пользователю предоставляется стандартный сервис — выбор
варианта отчета, открытие формы пользовательских настроек, работа
с расшифровкой и т. п.
Однако в этом случае (см. листинг 2.7) результат отчета стандартно выводится
в реквизит формы отчета типа Табличный Доку мент. Если же требуется
выводить результат отчета в другие форматы - таблицу значений, дерево
значений и т.п., то нужно использовать первый вариант (см. листинг 2.6).
Номенклатура
»
Все действия-» I Ф
'Код
? топота
а
I:
1+3 Е13 Услу|
—
-.аим >ьанг “
© М0ЯЙ(м»1й1иД
{+3®й Собр^Р
Список номенклатуры
Вариант отчета: {Основной
,'оор^щ „ (ЗЦ Настройка...
□ « 000000018
’' * 000000008
К 000000002
Рис. 2.66. Вывод отчета из формы списка справочника «Номенклатура»
Г
г 1
г- .. 1 г 1
1 1 1 г I
Все действия » { Ц
Группа ’М... 1 : -
НомеякяатУт» л)'- ак
и "<Йг у I
Материнская плата {Материалы Основной 2,000;
Память '.Материалы Основной 2,000;
Жесткий диск Материалы > I
Мони' ор ЬСО 'Материалы Розничный 2,000
Веб- камере Материалы Розничный 7,000:
Мгжоофон Материалы "ОЗН 1ЧНЫЙ ВДХ
Мия иер? > Ия
ГЛтнитО’Ы Материалы
ОЗУ Материалы
Основные детали (Материалы 1 1
Товары для сборки ! { > !
Прочие детали Материалы 1
оранные комплоте п »
Компьютер для офис? Комплекты {
Компьютер для дома Комплекты 1 ! г
Компьютер игровой Комплекты 1
* = < — -' - - •
Сборка компьютера Услуга
Диагностика компьютера {Услуга __ 1 . '
Ремонт компьютера ! Услуга 1 >
Сопутствующие услуги Услуга
Восстановление данных_ _ Услуга
Таким образом, на этом примере мы научились:
объединять в запросе несколько таблиц и устанавливать связь между ними;
создавать условия отбора, псевдонимы полей на уровне запроса;
запускать и программно формировать отчет из формы списка справочника.
Пример 5. Набор данных - объединение
Набор данных - объединение предназначен для разработки отчета, содер-
жащего объединенную информацию из различных наборов данных. Такой
набор содержит два или более подчиненных набора данных, но информация
в них не связывается, а объединяется.
В третьем примере (стр. 58) данной главы объяснялось, что при связывании
наборов данных в схеме компоновки используется Левое соединение. То есть
в отчете будут показаны все записи из левого набора данных, описанного
в выражении связи, а из правого набора будут показаны только те записи,
которые соответствуют условию связывания. Если же требуется вывести
в отчет все записи из обоих наборов данных, используется набор данных -
объединение.
Для примера создадим отчет, объединяющий информацию о поступлении
и продаже номенклатуры. В нем мы сгруппируем полученные данные
по позициям номенклатуры и выведем их в табличный документ с помощью
конструктора настроек (рис. 2.67).
Номенклатура Поступило Продано Сумма Сумма поступления продажи ;
Веб-камера 10,000; 3,000 10 000,00 ; 4 500,00!
Восстановление данных — 1.000, ; 5 000,00!
Диагностика компьютера 1 1 • I 3,000 1 2000ДО;
Жесткий диск ; здоо! 9 000,00' !
Компьютер для дома • ( 1,000; ! 10000,00;
Компьютер для офиса 1,000; ! 10 000,00!
Компьютер игровой 4--.—— 1,000; | 13 000,00'
Материнская плата ; 5,000; 10 000,00' !
Микрофон 10,000- 2,000; 7 000,00; 2 000,00;
Монитор ЬСО I 4.000? 2,000; 34 000,00; 22 000,00!
Память : 5,ооо) 6 000,00; :
Ремонт компьютера г-- т - 2,000! ' 6 000,00;
Сопутствующее услуги 4,000! ; гооо.оп!
Итого 37,00п ,, ?О,ОПП 7БСЮ0ДО 76 5ЕЮ.0П
Рис. 2.67. Требуемый вид отчета
Создадим новый объект конфигурации Отчет и назовем его АнализПосту-
пленияПродаж. Откроем конструктор схемы компоновки данных и добавим
новый набор данных - объединение (рис. 2.68).
X'1 ’тчет ?* новнаяСхем тКомпонснкиДамрых . ~
Наборы данных р Связи набсрог э ячи -ля. мы Ресурсы Г зра/зтрь. ) Макеты Вложенные схе.
I
Тй Добавить набор данных - запрос
-тй Добавить набор данных - объект
! Добавить набор данньк абьедй
н 1
Рис. 2.68. Добавление набора данных - объединение
В схеме компоновки данных будет создан набор данных типа Объединение
с именем НаборДанных1. Выделим его в дереве наборов данных и, вызвав его
контекстное меню или нажав кнопку Добавить, добавим в него новый набор
данных - запрос (рис. 2.69).
Назовем его Поступление. Чтобы ввести новое имя набора данных, можно
дважды щелкнуть по его названию. Откроем конструктор запроса. В качестве
источника данных для запроса выберем табличную часть ПереченьНоменкла-
туры таблицы документа ПриходнаяНакладная. В список полей перенесем
поля из табличной части этого документа (рис. 2.70):
Номенклатура,
Количество,
и Сумма.
Поля
Прижег. >1 > Т> л-а ~1 гд
ПрииоднаяНакладнаяПереченьНоменклатурыКоличество
ПриноднаяНакладнаяПереченьНоменклатурыСумма
Рис. 2.70. Выбор полей для запроса
На закладке Объединения/Псевдонимы изменим имя у поля Количество
на Поступило, Сумма на СуммаПоступления (рис. 2.71).
Рис. 2.71. Изменение имен полей в конструкторе запроса
Нажмем ОК и вернемся в конструктор схемы компоновки данных. Затем
выделим родительский набор данных НаборДанных1 в дереве наборов данных
и добавим в него еще один набор данных - запрос. Назовем его Расход.
Откроем конструктор запроса. В качестве источника данных для запроса
выберем табличную часть ПереченьНоменклатуры таблицы документа Расход-
наяНакладная. В список полей перенесем поля из табличной части этого
документа (рис. 2.72):
Номенклатура,
Количество,
Сумма.
Поадэ
Ья
’дн дел / • ньН "'дел те •
ю РасхсднаяНакладнаяПереченьНоменклаггуры Количество
“ РасхсйнаяНакладнаяПереченьНоменклэтурыСумма
Рис. 2.72. Выбор полей для запроса
На закладке Объединения/Псевдонимы изменим имя у поля Количество
на Продано, Сумма на СуммаПродажи. Нажмем ОК и вернемся в конструктор
схемы компоновки данных.
На закладке Ресурсы схемы компоновки данных, в списке Доступные поля
расположены все поля из объединенного набора данных отчета. Нажмем
кнопку Ей, чтобы конструктор выбрал все доступные ресурсы, по которым
можно вычислять итоги (рис. 2.73).
Рис. 2.73. Выбор ресурсов для отчета
Для быстрого создания стандартных настроек воспользуемся конструктором
настроек. Для этого нажмем кнопку * в командной панели схемы компоновки
на закладке Настройки. Сначала выберем тип отчета Список, что соответ-
ствует элементу структуры отчета Группировка, где информация выводится по
строкам. Нажмем кнопку Далее. На следующем шаге определим поля, выво-
дящиеся в отчет. Список доступных полей включает поля из объединенного
набора данных. Нажмем кнопку ?>>-! и выберем из него все поля (рис. 2.74).
Рис. 2.74. Конструктор настроек. Шаг 2
Нажмем кнопку Далее. На следующем шаге определим поля для группировки
записей в списке. Мышью перетащим из списка доступных полей поле
Номенклатура (рис. 2.75).
т - -*•
Группировки
{Склад
]НмяЕнкаатя>л Выберите поля по которым будет производиться группираБда данный. Поля группировок
дСмтад отображаются в отчете.
Д™т
Д ОгтугччНР поля
к Кдг-г
Поступило
Продано
Ц енаП осту п ления
ЦенаПродажи
«'
газ
*
9
9
а
[Поле.
! 1« .!
Гип группировки
5-
! I» ;
I ,
1
~-------._ ---------------—- -—. ; . — ---------------— --
< Назад |С~Далее> ’ I ОК* . *{{ Отмена Ц > правк<
Л<5***-
Рис. 2.75. Конструктор настроек. Шаг 3
Нажмем кнопку Далее. Следующий шаг пропустим, так как сортировка
в данном случае нам не важна.
Нажмем ОК. В результате наших действий в окне настроек появилась груп-
пировка Номенклатура и определен список выбранных полей (рис. 2.76).
Отчет ^лмзОос1 иолеиияРродаж Основ ЩйГй^йКомпотчж! 1а»«адк
Наборы данных Связи наборов....
ВЫ‘ рлявмый..^; , Ресурсы Чт, Параметры
«
>
1’^ X ®
Имя Варна
. гПредставл,
| Основной
Номенклатура
। \
г
и
Настройки: Тгг^-У; Отчет
Выбранные по.
Цосп."мые поля
Отбор
Сортировка [ Условное ото
- — Г-."-»’- аЛ-и.-Ал-.-. 4 .
С Прльзрвате.'ТБ.:
Другие пестро...
Е2Й
Поле
С? Выбранные поля
Поступило
Предано
СуммаП вступления
СуммаПродажи
СистемныеПоля
П@Д
ИЙ
9 Поступило
Продано
1 С'ммаПоступлания
|1 СуммаПродажи
1
I
Г
I
О
г
У
т*з
Рис. 2.76. Настройки схемы компоновки данных
Запустим отчет на исполнение в режиме 1С:Предприятие. Нажмем кнопку
Сформировать. Наш отчет примет следующий вид (рис. 2.77).
Мы видим, что записи в отчете сгруппированы по полю Номенклатура, и для
каждой позиции номенклатуры выводятся суммарные значения количества
и суммы ее поступления и продажи. Эти данные попадают в отчет путем
объединения информации из документов Приходная накладная и Расходная
накладная.
Д АнализПоступленияПродаж
I Вариант отчета: I Основной
Быбре- вариант .7^)
Г.Фо м- .ювать 55 Настройка..
Все действия’ .
|Номенклатура Поступило Продано Омма Сумма
поступления продажи
Рис. 2.77. Результат отчета
1Веб-камера 1 10,000 зроо- 10 000.00 4 500,00
[Восстановление данных 1.00П г ( 5 000,00
Диагностика компьютера 3,000 1 - . X 2 000,00
[Жесткий диск 1 - - . ь 3,000 9 000,00 !
Компьютер для дома 1 < оог 1 10 000.00
Компьютер для офиса 7 1,000’~ 10 000,0'
Компьютер игровой 1,000 1 13 000,00
Материнская плата I 5,000 I 10 000.01
Микрофон . ’ 10,000 2,000; 7 000,00 2 000,00
Монитор ЬСО .1 4,000 2.000 ^4 000,00’ 22 000,001
Память г 5.000 } 6 000.00' . ]
[Ремонт компьютера 1 2,000 1 6 000,0
(Сопутствующие /слуги г 4,000 1 2 000,00
Итого 37.000 20,000 76 ОООДО 76 500 ДО
В заключение продемонстрируем отличие набора данных - объединение
(на рисунке в центре) от связи этих же наборов данных в схеме компоновки
(на рисунке слева и справа). Для наглядности мы вывели в отчет детальные
записи и поочередно расположили слева в выражении связи наборы данных
Поступление и Расход (рис. 2.78).
Поступление левое
Детальные записи
Объединение
Детальные записи
Номенклатура
Поступило .Продено Сумме
Сумма
, Жест к*й диск
Матертсжеи плате
Память
мкямтфССО
МонктфССО
Веб-камера
©еб-*вмера
'Итого
эрос
5/ХЮ-
5РОО
’ 2.000
2,000
5.000
юроо
5.000.
37ДО0"
лоступДвиия продажи
2/ХЮ
2,000
3.000
2р00
3.000
7 ДЮ
второ*
юоооро"
БОООрО
04 000РО 22 ОООрО
20 ОООРО
5 ОООрО
г оооро
зоооро
76000.00
22 ОООрО
’ 4 500,00'
2 оооро;
4 500РС'
28500ДО
: Группировка по номенклатуре
[Номенклатура
^ЬксстмиЙдисж
Матаркжая плата
I КМКТЬ
МамтсркСР
могепфиср
Веб-камер»
,М*рофон
ЛЭеВ-камера
^Диагностике компьютера
д Компьютер для офиса
комторбС©
Поступило . Продано
3.000,
5рдо
5.000
2.000
2,000
5р00
юрод
брод]
Сумма
Сумме
.поступления продажи
Номенклатура
Поступило Продано Сумма
Сумма
₽об-*амера
.Жесткий Дне*
,Матфи*ска« плате
ЬМфОфсн
момтори®
Лвмггь
Итог<>
ЮрОО'
Зр00[
5.000
3.000
поступления продажи
2роо
2.000
юоооро
зоооро
юоооро
тоооро
34О0О/Ю
4 500р0
2 ОООрО
22 оооро
БОООрО
76000ДО 205ООДО
Рваонт >м<ъ«еггере
Солутстеуюцив услуги
[Восстмов лт« денных_
Ремонт ксмгьютера
.рйвгкостме компьютера
^Соггутстауют^е услуга
ЫмгтфК©
МжрОфСН
.Ко«шотср итротой
Итого
37 Щ)
1р00‘
1.000
1,000
1р00
1,000
1000
2.000
1ррО
1.000
1р00
2.000
1р00
ЗрОО
2.000
1р00
20000
6 000,00.
юоооро’
600000
моборо
даоооро
5000РО
7 бодро.
" 5000,00
Расход левый
Детальные записи
Номенклатура
Поступило Прпдаио Сумма
Сумма
1ооорс8
ЮОООрс
юоооро
500Р9
10 000.30
зоооро
1 ОООрО’
5 ОООрО
зоооро-
добро-
1000ДС
12 ОООрО
4 500РО
2о6брд
тздоорд^.
7БОООД1 7650СДО
.Диагностика компьютер»
; Компьютер дл а офмев
Мда^орСсО '
Дмвгмостжа комъптсра
.Солутствуюиив услуги
Вооствмоепвн«| данных
Рейсмт компьютера
'Диагностика ммьютвра
[Сопутствую»/*© услуги
МйеЛфСсо’
Мерофон
кемгъютер игровой
Итого
4р00
а/хл
юроо/
ЮрОО*
24ДО0-
♦.ООО
1.000
1.6дГ
1.000
1рдо
1.000
2роо
1рдО
1р00<
1рю
2.000
т.оод'
3,000
2род
1.000
года
посту гл «ия продажи
1 ОООрО'
Г”" юоооро.
34 000,00 ’ юоооро'
“ 500рО.
" “ юоооро
34 ОООрО
'юоооро
7 бодро
51 (ПОДО
зоооро
1 бодро.
5’одорО'
3 000,00
500рс
1 ОООрО,
" 12 ОООРО'
4 500.00-
гоодрэ-
<3000,00
76 500ДО
Группировка по номенклатуре
: Группировка по номенклатуре
Ноые матура
Поступило Продано Сумма
Сумма
^Эоб-квмвра
.Восстаю» пенне данкл.
Диатостке компьютера
|ЖесткиЙ диск
Компьютер для дома
Комгъютф для офисе
дддоо.
’-МОО1'
3.000;
поступления с одажи
---.-имХЮХЮ----44ЙМ*>-
------—
-------—ггвоорё-
.2ЙЙД&-Ч—____*•
22.^,.__^ддооор^-
Номенклатура
Поступило Пг одвно Сумма
Сумма
----------Гр®'
'ремонт компьютера
'Сопутстауки/ю услуга
_5роо<
2р00
.-аре©**
4Р00'
-ЮСОСПТТ'
—7 ©ворс"
досоли
.1аоау»т-
Ц000ДО-.
“'Яюбсо
-эмоорб'
вооо.оо-
2000 00,
—-ВвО-камере
—-Восстановлен»*» даты
“тДналюстика компьютере
—{Компьютер для доме
'“^Компьютер для офисе
-“•Коыльютф игровой
——МмфОфОН
.м44онмгор1.Сб
-Рчык»11 комггаотвре
——Сопутствую*»*» ус лу га
Итого
10.000
юроо-
4.000
24 дю:
3.000
троо
з.одо
трею
1рОО
1р00
2род
2,ддо
2.000
4.000
года
_ поступ ли продажи
1« ОООрО 4500рС,
БОООрО
7-' 2000,00
‘ 10 000.00
®" 10000,00
1 зоооро;
7000,00 200дрС'
Э4000РО 22СООДО
* БОООрО
2000р0
51ОООДО 76500,00
игого 37000 года- тесоодо те&юдо
Рис. 2.78. Результат отчета с использованием объединения
и связывания наборов данных
Пример 6. Автоматическое формирование
отчета
Теперь на основе полученных знаний усовершенствуем отчет ОтчетПоСистем-
нымБлокам так, чтобы при открытии отчета задавались значения параметров
по умолчанию и передавались в отчет. Также было бы удобно, чтобы отчет
формировался автоматически, без нажатия кнопки Сформировать.
Для реализации этих возможностей создадим основную форму отчета
ОтчетПоСистемнымБлокам. Создадим обработчик события формы ПриСоз-
данииНаСервере и заполним его следующим образом (листинг 2.8).
Листинг 2.8. Обработчик события формы «ПриСозданииНаСервере»
&НаСервере
Процедура ПриСозданииНаСервере(Отказ. СтандартйаяОбработка)
Параметры.СформироватьПриОткрытии = Истина;
КонецПроцедуры
В обработчике события параметр СформироватьПриОткрытии устанавливается
в значение Истина. Таким образом, отчет будет формироваться сразу при
открытии формы отчета.
Теперь программно установим значения параметров НачалоПериода
и КонецПериода и передадим их в отчет.
Для этого сначала представим последовательность событий, которые возни-
кают в модуле формы отчета и в модуле объекта отчета при формировании
отчета при его открытии (рис. 2.79).
Сначала у формы отчета вызывается событие ПриСозданииНаСервере.
В нем мы задаем необходимость формирования отчета сразу же при его
открытии. Затем происходят четыре события, поставляемые расширением
управляемой формы для отчета.
Сначала выполняется загрузка настроек варианта отчета (основного
или выбранного пользователем при последнем формировании отчета)
в компоновщик настроек. При этом вызываются события ПередЗа-
грузкойВариантаНаСервере и ПриЗагрузкеВариантаНаСервере.
Очевидно, нам нужно создать обработчик события ПередЗагрузкойВа-
риантаНаСервере, чтобы в нем изменить параметры настроек перед их
загрузкой в компоновщик (листинг 2.9).
Модуль объекта
~1
I
Модуль формы отчета
П ри компоновке результата
Рис. 2.79. Последовательность событий при формировании отчета при открытии
Листинг 2.9. Обработчик события «ПередЗагрузкойВариантаНаСервере»
&НаСервере
Процедура ।1ередЗагрузкойБ^риантаНаСервере(Настройки)
Настройки.ПараметрыВывода.УсланрвитьЗначениеПараметра(”Заголовок’',
"Продажа системных блоков’*);
Настройки ПараметрыДанных.УстановитьЗначениеПараметраСНачаюПериода", '20111201*);
Настройки Пара^етрьфнных.Установить ^ачениеПараметраС’КонецПериода", ‘20111231');
КонецПроцедуры
В параметре Настройки в обработчик передаются настройки варианта отчета,
имеющие тип НастройкиКомпоновкиДанных. В данном обработчике
методом УстановитьЗначениеПараметраО изменен заголовок отчета,
а также установлены значения параметров начала и конца отчетного периода.
Однако если настройки являются пользовательскими (в нашем случае - это
параметры отчетного периода) и пользователь хоть раз задавал их значения
в форме отчета, то устанавливать их в этом обработчике бесполезно.
Это происходит потому, что после загрузки настроек варианта отчета
восстанавливаются пользовательские настройки, сделанные пользова-
телем при последнем формировании отчета и автоматически сохраненные
платформой. Пользовательские настройки накладываются на настройки
варианта и загружаются в компоновщик настроек. При этом вызываются
события ПередЗагрузкойПользовательскихНастроекНаСервере
и ПриЗагрузкеПользовательскихНастроекНаСервере.
Так как в схеме компоновки данных мы указали параметры НачалоПе-
риода и КонецПериода в составе быстрых пользовательских настроек
(стр. 53), то нам нужно создать обработчик события ПередЗагруз-
койПользовательскихНастроекНаСервере, чтобы в нем изменить
параметры пользовательских настроек перед их загрузкой в компоновщик
(листинг 2.10).
Листинг 2.10. Обработчик события
«ПередЗагрузкойПользовательскихНастроекНаСервере»
&НаСервере
Процедура ПепедЗагрузкоиПогьзова1елЕСкихНастроекНяСервере(Настройки)
Настройки.3лементы[0].3начение = '20111ЖТ;
Настройки.3лементы[0] .Использование = Истина;
Настройки.Элементы[1].Значение = ’2011123Г;
Настройки.ЭлементыД: Использование = Истина;
КонецПроцедуры
В параметре Настройки в обработчик передаются настройки
варианта отчета, имеющие тип ПользовательскиеНастройкиКомпо-
новкиДанных. Так как параметра всего два, то можно обращаться к ним по
индексу (0, 1) в коллекции элементов пользовательских настроек. Мы уста-
навливаем значения параметров начала и конца отчетного периода и задаем
для них признак использования. Эти настройки загружаются в компоновщик
настроек, и отчет формируется с заданными параметрами.
Дальше платформа автоматически вызывает метод С компоновать Ре-
зультате), и происходит событие отчета ПриКомпоновкеРезультата. Отчет
компонуется и выводится пользователю.
Запустим «1С:Предприятие» и откроем наш отчет (рис. 2.80).
Как мы видим, отчет формируется сразу же при его открытии, и параметрам
Начало периода и Конец периода по умолчанию присвоены значения - начало
и конец месяца. Дальше пользователь может произвольно их менять и пере-
формировывать отчет, пользуясь кнопкой Сформировать.
дт^тыдетёМН ‘ «бму«м- ОМг^ЭДфац'т^пе».!** «НА !р “и®- . ЙЙПя^цтриятий
Отчет по системным блокам
Вариант отчета: (Основной
& - оват 1 Настройка...
,*< 411 Начат» периода
'**) ни Конец периода
Ьькат :и г . <плг-а-.-.
' Г.^
' 31.12.2011
1Р. Й^ЙИ1Р
. ЭЕМог '
В
Все действия •» I
4
Продажа системных блоков
Параметры: Начало периода 01.12.2011
| Конец периода: 31.12.2011
!
:клад Количество Количество Конечным Стоимость 'томность Прибыль Ж
Не : Системный бяок приход (аскол тс гагой приход юпход мбщий
п/н .... ... _ . . .’
Основной _ 2 2 И 17 500Д6 „ ; 20 000,00 2 500,00 100,00
| 1| Компьютер для дома ; 1< 1, Л 9 000,00 1000^,00 100,00 40,00
< 2! Компьютер дл, .>фиса 1' 1? 6500 00 10 000,00: 1500,00 60,09
’0Л>!'Х 2 ’ 2 Ок 1/500 00 2000066 2500,00 100,00
г;
Рис. 2.80. Открытие отчетной формы
Пример 7
На примере этого отчета мы продемонстрируем использование в схеме
компоновки данных информации из двух (нескольких) наборов данных,
а также передачу параметров в объектную (ссылочную) таблицу запроса.
Отчет должен отражать информацию о сборке системных блоков за период
с детализацией информации по номеру, дате и мастеру сборки (рис. 2.81).
Системный блек Количество Стоимость Мастер Дата ,Номер
Компьютер для офиса 1 8500,00
Г 1 < 8 580,00' Соколов ДвдрОЙ 2
11 8 500,00 0612.2011 500000001 )
Компьютер для дома 1 9 000,00
1~П 1 9000,08 Ильин Сергей
1 9 000,00! 11.12.2011 000000002 ;
Компьютер игровой 1 10 500,00 1
1 10 500,00 Соколов Андрей
1 10 500 00 Г11.01.2012 000000003 >
Итого 3 "^"28 000,00 ... 'Г. _ '
Рис. 2.81. Требуемый вид отчета
Создадим новый объект конфигурации Отчет и назовем его СборкаСистем-
ныхБлоков. Откроем конструктор схемы компоновки данных и добавим
новый набор данных - запрос. Он будет назван по умолчанию НаборДанных1.
Откроем конструктор запроса. В качестве источника данных для запроса
выберем объектную таблицу регистра накопления СобранныеСБ. В список
полей перенесем поля из этой таблицы:
СБ,
Количество,
и Стоимость,
и Мастер,
и Регистратор.
Поле Регистратор нам понадобится в качестве ссылки на документ СборкаКом-
пыотера, который произвел движения в регистре накопления СобранныеСБ,
чтобы установить связь со вторым набором данных. Перейдем на закладку
Условия, раскроем таблицу СобранныеСБ и перетащим мышью поле ВидДви-
жения в список условий. Оставим предложенное условие по умолчанию. Это
условие нам нужно, чтобы в отчете отражались данные из регистра с видом
движения Приход (рис. 2.82).
Рис. 2.82. Создание условия запроса
На закладке Объединения/Псевдонимы изменим имя у поля СБ на Систем-
ныйБлок. Нажмем ОК и вернемся в конструктор схемы компоновки данных.
Таким образом, в этом наборе данных мы получим информацию о собранных
системных блоках, их количестве, стоимости, мастере, выполнившем сборку.
Но нам нужна еще другая, связанная с ней более детальная информация
из документов по сборке системных блоков. Есть несколько путей осущест-
вления этой задачи, но мы будем получать эти данные из связанного набора
данных.
Добавим еще один набор данных - запрос. Он будет назван НаборДанных2.
Чтобы добавление стало доступным, нужно выделить корневой элемент
дерева наборов данных (рис. 2.83).
Отчет Сборт.аСмс.емныхБлоков: Осио»(ачСхеыигКомпоновкиЛ<...ных « „ ОХ
им*®* — _ . _ . — - — _ .
Наборы данных Связи наборе Вычисляемые. Ресурсы Параметры Макеты Блдженчье сх.. Настройки |
Рис. 2.83. Добавление нескольких наборов данных
В качестве источника данных для запроса выберем объектную таблицу доку-
мента СборкаКомпыотера. В список полей перенесем поля из этой таблицы:
Дата,
и Номер,
Ссылка.
Поле Ссылка нам понадобится в качестве ссылки на регистр накопления
СобранныеСБ, чтобы установить связь с первым набором данных. Нажмем
ОК и вернемся в конструктор схемы компоновки данных.
С точки зрения эффективности исполнения отчета лучше получать в дочернем
наборе сразу только те записи, которые удовлетворяют условию связи наборов
данных. Для этого нужно указать в запросе дочернего набора параметр связи
и использовать его в схеме компоновки при описании связи (см. рис. 2.84).
Иначе в дочернем наборе будет получено много лишних записей, которые
затем будут откидываться как не удовлетворяющие условию связи.
В текст запроса добавим условие с параметром Ссылка, в который будет
помещено значение связи набора данных - источника. В результате набор
данных - приемник НаборДанных2 будет получать только те документы
СборкаКомпыотера, которые произвели движения в регистре накопления
СобранныеСБ (листинг 2.11).
Листинг 2.11. Текст запроса для получения набора данных «НаборДанных2»
ВЫБРАТЬ
СборкаКомпьютераДата,
СборкаКомпьютера.Номер,
СборкаКомпьютера.Ссылка
ИЗ
Документ. СборкаКомпьютера КАК СборкаКомпыотера
ГДЕ
СборкаКомпыотера.Ссылка В Жсылка,
Можно было создать это условие интерактивно, в конструкторе запроса,
аналогично тому, как это сделано для первого набора данных (см. рис. 2.82),
но здесь продемонстрирована возможность сделать это вручную в тексте
запроса.
Для большей наглядности назовем первый набор данных РегистрСБ, второй —
ДокументСБ. Чтобы ввести новое имя набора данных, можно дважды
щелкнуть мышью по его названию. Если в схеме компоновки данных присут-
ствуют несколько наборов данных, то между ними требуется установить связь
(стр. 325).
На закладке Связи наборов данных добавим новую строку. В поле Источник
связи, то есть в качестве родительского набора данных, укажем РегистрСБ,
в поле Приемник связи, то есть в качестве зависимого набора данных, укажем
ДокументСБ. В поле Выражение источник выберем из полей родительского
набора поле Регистратор, а в поле Выражение приемник — поле зависимого
набора данных - Ссылка. В поле Параметр выберем из списка параметров
параметр Ссылка родительского набора данных, в котором будет храниться
значение связи (рис. 2.84).
Яаборылаыш | Связи набора- I, Вычисляемые Ре ‘рсы я Параметры Макед» лс енные «эй : € Настройки
а &, х .... 4 . 1
Рис. 2.84. Создание связи наборов данных
Все связи, созданные в схеме компоновки данных, считаются Левыми внеш-
ними соединениями, то есть в отчет будут включены записи из обоих наборов
данных, удовлетворяющих условию связи Регистратор = Ссылка. Кроме
того, у родительского набора данных РегистрСБ будут отражаться в отчете
все записи, независимо от того, найден ли соответствующий им документ
в наборе данных ДокументСБ или нет. Поэтому при определении связей
наборов данных требуется внимательно обдумать вопрос, какой из наборов
данных будет родительским, а какой - зависимым.
Передача параметров в запрос набора данных
Перейдем на закладку Ресурсы и определим доступные поля ресурсов отчета
(стр. 370).
Рассчитывать па
} Доступные поля
: Выражение
Поле
““ Стоимость
Сумма(Стоимость1
[ Наборы данных -! ^-.Связинаборо..., ~> > ВычйСапяеМы&..\.'л | Ресурсы р Параметры ,Макеты.;,;: г Вложенные сх. ; - Настройки. ;
Рис. 2.85. Определение ресурсов отчета
лвв Количество
*=“ Мас.ер
Номер
*“ Регистратор
.оа СистемныйБлок
“ Ссылка
; Стоимость
1У
На закладке Параметры (стр. 376) мы видим параметры компоновки данных,
созданные платформой (рис. 2.86).
© Отчет Сборка^стемныхБлок&в: ОсноенайСхемаКомпоновкиДанных , .......... 7 ь .
Наборы Дан» 4 СеЖи наборов дан.., /. Внчиг птемые пол/ , г Ресурсы Параметры 1 Г Макеты 3. кксеннэ» "яемы
.- О. МА» -• •кл4»чй<Ла* . тймчмг» 4^ А.' А • Ам Ж^ЭДМгй. ЫН » АасХ О I »~Хч, ^—4. г-^22-Н~- V—I ЛГУ^ Т>»- .'Д— йсздЧчйс
‘ НаСТРОЙКИ: -
Имя
Заголовок
ВидДвижения ' Вид движения
Ссылка
* Ссылка
тип Д...! Д.., ' Значение
I ^м^лмм^м МММ-^Э^-М ^^-СМИ^ЧУ 1^<Х.и-«|Ч1Ч. - >вк-'ач "" • - 4» •-*.«-*? -4. ЧЧ1 ч^^г-о "ч7'Ч| -о^г-,»<-~ г^-чч.ч^«чг^чгч-чг4-
Системные перечисления... ' Г") ’ Приход
Т ...... - --------Г----г™! " -- -----
Документе» ылка.СборкаК . ', [_) ; Документ.СборкаКомпыотера.
' Еыра... ' Пара.„ г
к*"1' .^.
О..,.13....’ Нсгюль... р
□ ;Авто
□ ^Авто
Г
Г^|
Г ₽б.-.л
«7
Рис. 2.86. Параметры компоновки данных, созданные платформой
Параметру ВидДвижения по умолчанию установлен тип СистемныеПе-
речисления.ВидДвиженияНакопления, присвоено значение Приход,
и установлена его недоступность для пользователя. Также недоступен пара-
метр Ссылка, который служит для получения значения связи наборов данных,
используемых в схеме компоновки данных отчета.
Это нас устраивает, но мы не видим здесь автоматически созданных пара-
метров начала и конца периода, так как в обоих наборах данных мы
использовали объектные, а не виртуальные таблицы. В этом случае мы
должны явно задать эти параметры в запросе родительского набора данных.
Откроем конструктор запроса набора Регистров и перейдем на закладку
Условия. Раскроем таблицу СобранныеСБ и перетащим в список условий
поле Период. Отметим, что условие является произвольным, и внесем в поле
Условие следующий текст (листинг 2.12).
Листинг 2.12. Условие запроса для параметра «НачалоПериода»
Аналогично добавим еще одно условие (листинг 2.13).
Листинг 2.13. Условие запроса для параметра «КонецПериода»
Закладка Условия примет вид (рис. 2.87).
Каднст лкт 5.’ запроса
Пакет вап...
Поля
Номер’ П..* Условие
1: Г )' “ СобранныеСБ.ВидДвижения =
2 /СТ\СобранныеСБ. Период >= &НачалоПериода
СобранныеСБ.Период <= &КонецПериода
• - - г XI •>. т-ртг'п'вг’-гн’п 'ют Й» - “ИХ'. _ .-с т-~
Таблицы и , * Группиро. кс ‘ Условия ( Дополните.,. Объединен., •’ . Порядок Компоновк , I Характери..
тмена
Рис. 2.87. Использование параметров в условиях запроса
ВидДвижения
Нажмем ОК. Зададим настройки параметров так же, как и во втором примере
(см. рис. 2.33-2.35). На закладке Параметры для параметров НачалоПериода
и КонецПериода в колонке Тип нажмем кнопку выбора и в нижней части
окна редактирования типа данных установим Состав даты в значение Дата.
Для параметра КонецПериода зададим значение колонки Выражение, чтобы
данные за последний день отчета были включены в расчет (листинг 2.14).
Листинг 2.14. Выражение для расчета параметра «КонецПериода»
КэнецПериода(&КонецПериода "День")
Снимем флажок Ограничение доступности у этих параметров, так как они будут
задаваться пользователем при формировании отчета. А также установим для
них свойство Использование в значение Всегда. Так как параметры переда-
ются в запрос всегда, то установка обязательного использования параметров
позволит сформировать отчет без ошибки, даже если значения параме-
тров не указаны. В результате параметры компоновки данных примут вид
(рис. 2.88).
< б-гчйг С<аО«стемнь -Ж и. кввг Ня»®
Наборы данных Свяжнабсровдан... 1 Вычисляемые поля »
* Ресурсы | { Параметры ;Макеты . Вг«жеыные схемы Настрой^. •
р- — —«—— 1 Имя < Заголовок Тип _ Д..»| Д- Значение Бы ажение Па.. В../О.М 3... Испол -5 •ч
В ид Двш гения Вид движения Системные переч... : О 1 Приход О ,Аето |
• { ’ ; Ссылка Ссылка ДокуменгСсылка... -5'^.1 ’ О ! Документ.... Дет-1
| НачалоПериода , Начало периода Дата ^^1/0 О Всегда\
1 КонецПериода Конец периода 1 1 1м. - - * Дета _ Гб! Ь _5~ Г -. • КонецПериода(&КонецПериода,"День"} | • им' 1
Рис. 2.88. Параметры компоновки данных
Определим структуру отчета. На закладке Настройки выделим корневой
элемент Отчет и добавим в него группировку по полю СистемныйБлок. Затем
добавим вложенную в нее группировку Мастер. Выделим группировку Мастер
и добавим вложенную в нее группировку без указания группировочного поля
ДетальныеЗаписи. Затем на закладке Выбранные поля перенесем из списка
доступных полей поля (рис. 2.89):
и Количество,
и Стоимость,
Дата,
и Номер.
Рис. 2.89. Определение полей и группировок отчета
На закладке Сортировка зададим порядок сортировки записей в отчете.
Для этого перенесем мышью из списка доступных полей поля Дата и Номер.
Тем самым мы установили, что внутри группировки детальные записи будут
сортироваться по дате, а в пределах одной даты - по номеру документа. Поля
группировок автоматически упорядочиваются по группировочному полю.
Нажмем кнопку Свойства элемента пользовательских настроек, расположенную
вверху, в командной панели окна настроек, и включим настройку Порядок
в состав пользовательских настроек отчета (рис. 2.90).
*' ПжэметрьМ^ М*‘сть Длгжал . ые.< уемы
Настройки [ I
Гимяефианга:: Предстаеле!. ]
Наборы данных: V Свяа^ <абош дап ... Ч, Вычисляемые Поля & Зесчйсь*
9
9
Мастер
Номер
Регистратор
СистемныйБлок
Ссылка
Количество
Стоимость
&
№
(3 Условное оформление |
СГруппировки !
ы Системнь*
0й33 Масте! ______________
? ОЁыбранные поля
СОтбор
(^Порядок
Представление
Режим редактирования
О.| [Быстрый доступ
'^5 -Быстрыйдоступ
О,} (Быстрыйдоступ
О [быстрый д 1ступ
Параметр Л < Выб- «иные
Отбор
’ Направлены сортировк <
Доступные поля
Поле
И «» Номер
По возрастанию
ОК
Ст ; { Справка
<Ъ^*- пгиХ™ «ТТ "*
I11 Г|"||ГТ|^и—
... . . лэдл ---’г’*~
Сортировка I И товноео Пользрвате,- Другие над,.,
Рис. 2.90. Выбор полей сортировки записей отчета
5
I
।«
I и
•Т1 <
& I
? 5
I
Усовершенствуем внешний вид отчета. На закладке Наборы данных выделим
набор данных Документов и в колонке Оформление зададим формат поля
Дата, чтобы дата отображалась без времени. Вызовем диалог Формат поля
и в строку Формат введем выражение (листинг 2.15). Для этого можно также
воспользоваться конструктором.
Листинг 2.15. Формат поля «Дата»
дф^б.мм-.уууу
На закладке Параметры включим параметры Начало периода и Конец периода
в состав быстрых пользовательских настроек. То есть эти настройки будут
находиться непосредственно в отчетной форме. Для этого выделим каждый
из параметров и нажмем кнопку Свойства элемента пользовательских настроек,
расположенную в правом нижнем углу окна настроек. Установим флажок
Включать в пользовательские настройки и оставим предложенное по умол-
чанию для свойства Режим редактирования значение Быстрый доступ.
На закладке Другие настройки установим заголовок отчета Сборка Системных
Блоков, а макет оформления (стр. 393) отчета - Арктика.
А также продемонстрируем возможность управлять расположением ресурсов.
Стандартной позицией ресурсов является позиция - После всех полей.
Мы установим параметр Авто позиция ресурсов (стр. 453) в значение
Не использовать и включим эту настройку в состав обычных пользователь-
ских настроек, доступных в форме Настройка (рис. 2.91).
Параметры
Сортир е ка Условное о.
Псльзоваге. Другие наст...
Авто
Сборка системных блоков
Авто
Авто
Не испог звать
Выбранные
Отбор
Р
□ , Вь водить заголовок
Заголовок
О: Выводить параметры
С?' Выводить отбор
Автэ позиция ресурсов
Рис. 2.91. Настройка позиции ресурсов
При этом значении параметра поля ресурсов будут располагаться в порядке
расположения в отчете - сначала поля группировок, потом в том порядке,
в котором они расположены на закладке Выбранные поля настроек отчета
(см. рис. 2.89).
Запустим «1С:Предприятие» и сформируем отчет за период 01.12.2011-
31.12.2011 (рис. 2.92).
СП Начало периода
Конец периода
[ЯП Сортировка
'орка системных блоков Демонстрационная ко 1С:Предп иятие)
Нас*рзйки отчета "Сборка системных блоков" - .ем... (1С:П. е прият в) Д
Настройки отчета "Сборка системных блоков
Сборка системных бл<
«т~~'
Сборка системных блоков
Вариант отчета: Основной
’ Настройка Значение
{Ту! Начало пеон ла 0112 3011
Конец периода 31.12.2011
Сортировка Дата. Номер
Й ' Авто позиция ресурсов _ Не использовать
Завершить редан, «мровани* Отмена Все действия*
Параметры: НачалоПериода 01.12.2011
Конецпериода; 31.12.2011
Системный блок Количество Стоимость
Мастер
ч Дата Номер
Компьютер для дома 1 9 000,00
Ильин Сергэг -1 1 9000,00
| 1 9 000.00 11.12.2011 Г000000002 '
Компьютер для офиса 1 8 500,00
| Соколов Андрей 1 . 1 8500,00
1 8 500,00 06 1 2.2011 ООООС^О1
Итого 2 17 500 00
Программная установка параметров отчета
Теперь разработаем специальную отчетную форму для автоматического
запуска отчета и инициализации параметров при открытии формы.
Для реализации этих возможностей создадим основную форму отчета
СборкаСистемныхБлоков. Создадим обработчик события формы ПриСозда-
нииНаСервере и заполним его следующим образом (листинг 2.16).
Листинг 2.16. Обработчик события формы «ПриСозданииНаСервере»
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Параметры.СформироватьПриОткрытии = Истина;
КонецПроцедуры
В обработчике события параметр СформироватьПриОткрытии устанавливается
в значение Истина. Таким образом, отчет будет формироваться сразу при
открытии формы отчета.
Теперь программно установим значения параметров НачалоПериода
и КонецПериода и передадим их в отчет.
Так как в схеме компоновки данных мы указали параметры НачалоПериода
и КонецПериода в составе быстрых пользовательских настроек, то нам нужно
создать обработчик события формы ПередЗагрузкойПользовательских-
НастроекНаСервере, чтобы в нем изменить параметры пользовательских
настроек перед их загрузкой в компоновщик (листинг 2.17).
Листинг 2.17. Обработчик события
«ПередЗагрузкойПользовательскихНастроекНаСервере»
&НаСервере
Процедура ПередЗагрузкойПользовательскихНастроекНаСервере(Настройки)
Настройки.Элементы[0]. Значение = НачалоМесяца(’201112Ю’);
Настройки.Элементы[1].Значение = КонецНедели('20120110');
ПорядокНомер = Настройки.Элементы[2].Элементы[1];
ПорядокНомер.Ислользование = Ложь;
Если Настройки.Элёменты[2].Элементы.Количество() <= 2 Тогда
ЭлементПорядка = Настройки.Элементы[2].Элементы.
Добавить(Тил(’'ЭлементПорядкаКомлоновкиДанных"));
ЭлементПорядка.Поле = Новый ПолеКомпоновкиДанных("Стоимость");
ЭлементПорядка.Использование = Истина;
КонецЕсли;
КонецПроцедуры
В параметре Настройки в обработчик передаются настройки варианта отчета,
имеющие тип ПользовательскиеНастройкиКомпоновкиДанных.
Сначала мы устанавливаем значения параметров начала и конца отчетного
периода (с индексами 0,1 в коллекции элементов пользовательских настроек),
причем можно не задавать для них признак использования, поскольку пара-
метры используются всегда. Затем отключаем использование в сортировке
(с индексом 2 в коллекции элементов пользовательских настроек) поля Номер.
Его индекс в коллекции настроек сортировки равен 1. После этого добавляем
поле Стоимость в коллекцию настроек сортировки.
В случае, если пользовательские настройки отчета еще ни разу не сохранялись,
их нужно задавать в обработчике события ПередЗагрузкойВариан-
таНаСервере (листинг 2.18).
Листинг 2.18. Обработчик события «ПередЗагрузкойВариантаНаСервере»
&НаСервере
Процедура ПередЗагрузкойВариантаНаСервере(Настройки)
Настройки.ПараметрыДанных.УстановитьЗначениеПараметра('’НачалоПериода”,
НачалоМесяца('20111210‘));
Настройки.ПараметрыДанных.УстановитьЗначениеПараметра(,,КонецПериода,,)
КонецНедели(’20120110’));
КонецПроцедуры
В результате настройки, программно установленные при открытии формы
отчета, загружаются в компоновщик настроек, и отчет формируется с задан-
ными параметрами.
Запустим «1С:Предприятие» и откроем наш отчет (рис. 2.93).
Он будет сформирован автоматически со значениями настроек, заданными по
умолчанию при открытии формы.
Таким образом, на примере этого отчета мы научились:
использовать в схеме компоновки несколько наборов данных и задавать
связь между ними,
передавать параметры в объектные таблицы на уровне запроса,
отображать в форме настройки сортировки отчета,
автоматически запускать отчет при открытии формы,
задавать значения настроек по умолчанию при открытии формы
и программно передавать их в отчет.
Гборка системныхблока. ( Предприятие?
м м+ м-
г Сформировать || ^Настройка...
Сборка системных блоков
Вариант отчета: (Основной
Убрать Вариан-
Все действия’ ,
Начало Пе* иода
' Конец периода 15.01.2012
Сортировка Дата, Стоимость
Сборка системных блоков
I
Параметры: Начало периода: 01.12.2011
Конец периода: 15.01.2012
Системный блок Мастер Количество а Стоимость
к. ... Дата Номер
Компьютер для офиса 1 8 500,00
Р Соколов Андрам " 1 _ Л 8500,00 «и “ ;
1 8500,0 06 1 2.2011 000000001
Компьютер для дома 1 _ 9 000,00 _ л 4
Ильин Сергей { 1 9000,00
1 ”* 9000,00 11.12.2011 000000002
Компьютер игровой 1 7 Ю 500,00
Соколов Андрей 40 500,00 1
1 10 500ДО 11.01.2012 001100003 "]
Итого
3
78000 00
Рис. 2.93. Открытие отчетной формы
Пример 8
Рассмотрим пример отчета, который будет отражать информацию
по продажам номенклатуры за указанный период (рис. 2.94).
Контрагент Количество Стоимость
Номенклатура —4
Период
ОСО "Автоматике 11 500,00
Диатнч 'тика компью1 а .. 2 1 590,00
5 декабря 2011 г. 1 1 000.00'
11 декабря 2011 г. 1 500Л0
компьютер для дома 1 10 000.00
11 д=кабр 2011 г. 1; 10 (ЙОД1
ООО 'Система" • । . -. 1 10 000,00
Компьютер для офиса 1 10 000Л0
9 декабря 2011 г. 1 10 000,00
ООО "Стиль 10 000,00
Монитор ЬСО ’ 1 10 000,00
6 декабря 2011 г. ,, _ 1. 10 000,00
Итого - - 31 500.00
Рис. 2.94. Требуемый вид отчета
Для этого нам потребуется извлечь данные из оборотного регистра Продажи.
Создадим новый объект конфигурации Отчет и назовем его ПродажиНомен-
клатуры. Откроем конструктор схемы компоновки данных и добавим новый
набор данных - запрос. Откроем конструктор запроса.
Извлечение данных по периодам
В качестве источника данных для запроса выберем виртуальную таблицу
регистра накопления Продажи.Обороты. Вызовем диалог параметров вирту-
альной таблицы. Для этого в списке Таблицы нужно нажать кнопку Параметры
виртуальной таблицы (рис. 2.95).
Рис. 2.95. Вызов диалога параметров виртуальной таблицы
В открывшемся окне параметров зададим значение параметра Периодичность -
День (рис. 2.96).
Рис. 2.96. Установка параметра «Периодичность»
В список полей перенесем поля из таблицы Продажи.Обороты:
Период,
Номенклатура,
Контрагент,
КоличествоОборот,
СтоимостьОборот.
На закладке Объединения/Псевдонимы изменим имя у поля КоличествоОборот
на Остаток и СтоимостьОборот на Стоимость (рис. 2.97).
К» к. труктор зап пса *
Таблицы и Группировка Условия
Доложите - ' Объединен.. 1
Л 1!П - V-
Порвд! Комг нсек,.~ Характеру
П^кет зал - ;
Имя
Запрос!
Безду..
Лмя поля
Эапэос!
Период
Номенклатура
1_ Контрагент
/ Количество
4 Стоимость
4-
“ ПродажиОбороты Период
ПродажиОборотыНоменклатура
к. ПродажиОбороты. Контраг >нт
А ПродажиОбороты К ычес Оборот
ПродажьОборзгы СтоимостьОборот
к (опрос
ОК Отмена | Справка ;
Рис. 2.97. Установка псевдонимов полей запроса
Нажмем ОК и вернемся в конструктор схемы компоновки данных. Обра-
тите внимание, что в тексте запроса указана периодичность выбираемых
данных - День (листинг 2.19).
Листинг 2.19. Задание периодичности виртуальной таблицы
ИЗ РегистрНшо» 1левмя.Продажи,Обороты(,, День,) КАК ПродажиОбороты
Благодаря этому мы можем указать в полях запроса поле Период.
Перейдем на закладку Ресурсы и определим доступные поля ресурсов отчета
(стр. 370).
Рис. 2.98. Определение ресурсов отчета
ОтчетПродажмНсмеиклатуры: 0*г*мданаяС„^.>*а1:^омпо^пвкйДанных м О X
Наб: ргг данных Связи наборов д. Вычисляемые по. Ресурсы Параметры Макеты Вложенные схемы Настройки
Для ресурса Количество в колонке Рассчитывать по нажмем кнопку выбора •••
и укажем поле Номенклатура и НоменклатураИерархия (рис. 2.99).
Рис. 2.99. Выбор полей группировки для расчета итогов
Это сделано для того, чтобы итоги по количеству выводились для конкретной
номенклатуры и ее иерархических группировок, так как не имеет смысла
складывать количество услуг с количеством комплектующих.
На закладке Параметры (стр. 376) будем действовать так же, как и в преды-
дущих примерах (см. рис. 2.33-2.35). Для параметров НачалоПериода
и КонецПериода в колонке Тип нажмем кнопку выбора - и в нижней части
окна редактирования типа данных установим Состав даты в значение Дата.
Для параметра КонецПериода зададим значение колонки Выражение, чтобы
данные за последний день отчета были включены в расчет (листинг 2.20).
Листинг 2.20. Выражение для расчета параметра «КонецПериода»
КонецПериода(&КонецПериода, "День")
В результате параметры компоновки данных примут вид (рис. 2.100).
Рис. 2.100. Параметры компоновки данных
Определим структуру отчета. На закладке Настройки выделим корневой
элемент Отчет и добавим в него группировку по полю Контрагент. Затем
добавим вложенную в нее группировку Номенклатура. Выделим груп-
пировку Номенклатура и добавим вложенную в нее группировку Период.
Затем на закладке Выбранные поля перенесем из списка доступных полей
поля Количество, Стоимость (рис. 2.101).
Рис. 2.101. Определение полей и группировок отчета
Теперь усовершенствуем немного внешний вид отчета. На закладке Другие
настройки дадим заголовок отчету - Продажи товаров и услуг.
На закладке Наборы данных в списке полей набора данных в колонке Оформ-
ление зададим формат поля Количество (рис. 2.102).
Рис. 2.102. Формат поля «Количество»
Для этого можно воспользоваться конструктором (рис. 2.103).
Рис. 2.103. Выбор формата для поля «Количество»
Аналогично зададим формат поля Период (рис. 2.104).
Рис. 2.104. Формат поля «Период»
Для этого можно воспользоваться конструктором (рис. 2.105).
ййстряг - в. I Форматной < троки
Рис. 2.105. Выбор формата для поля «Период»
В заключение предоставим пользователю возможность задавать отчетный
период перед формированием отчета. Включим параметры Начало периода
и Конец периода в состав быстрых пользовательских настроек. То есть эти
настройки будут находиться непосредственно в отчетной форме. На закладке
Параметры выделим каждый из параметров и нажмем кнопку Свойства
элемента пользовательских настроек, расположенную в правом нижнем углу
окна настроек. Установим флажок Включать в пользовательские настройки
и оставим предложенное по умолчанию для свойства Режим редактирования
значение Быстрый доступ (рис. 2.106).
НЬборыданнык ч Связи наборов... . Вычипяяе»*ы».«. * Ресурсы Параметры . Макеты !*- ^лсякённыб й®.~- И Настройки !
«ЛЛ^_ г—А. . - « >~Л~— «. —> »-|Г Г~ •' ' «- - ‘ - .-. -. >- -, - _ । 4..
Рис. 2.106. Настройки отчета
Запустим отчет на исполнение в режиме 1 С:Предприятие. В открывшейся
отчетной форме зададим период отчета с 01.12.2011 по 15.12.2011. Нажмем
кнопку Сформировать. Отчет примет следующий вид (рис. 2.107).
•й
.-Ж.-.Ш М’
Продажи номенклагур ы
В а >иант отчета: [Основной_
. &: Фсрмц» -ат* । Зед Настройка...
| Выбр; "ъ вариант.., (
Все действия-И $
*Т
?’ иж®-
| Продажи товаров и услуг
•.
I Параметры: Начало периода: 01.12.2011
Конецпериода: 15.12.2011
53
?о
Контрагент Количество Стоимость
Номенклатура э
Период 1
ООО “Автоматике? 11 500,00:
Диатоетмке 'омпьютера 2Т 1 500,00
5 декабря 2011 г. г и , 1 000,00;
11 декабря 2011 г 1; 500,00-
Компьютер для дома 1| 10000,00
11 декабря 2011 г. 1! 10000,00
(ООО "Система" . ' I 10000,00
I Компьютер для офиса 1; 10000,00
9 декабря 2011 г. .1|_ 10001,00
[ООО "стиль" 10000,00
! Монитор ЬСО 1 1П 000,00
6 декабря 2011 г. 1 10 000,00
0,ОГО Р 31 500.СС
-А
Мы убедились, что формат представления даты и количества соответствует
желаемому, а итоги по количеству подсчитываются отдельно для каждого
вида номенклатуры.
Интерактивное оформление отчета
Теперь предоставим пользователю возможность задавать отбор и условное
оформление отчета. Для этого вернемся в конфигуратор и сначала создадим
эти настройки в схеме компоновки данных отчета. Откроем закладку
Настройки.
На закладке Отбор установим отбор записей отчета по определенному виду
номенклатуры. Для этого в списке доступных полей раскроем поле Номен-
клатура и выберем поле Вид Номенклатуры. Остальные параметры отбора
оставим по умолчанию - Вид сравнения - Равно, а Правое значение - Пере-
числение. ВидыНоменклатуры.ПустаяСсылка. Условие отбора примет
вид (рис. 2.108).
Рис. 2.108. Настройка отбора записей отчета
Включим настройку отбора в состав быстрых пользовательских настроек.
Для этого нажмем кнопку Свойства элемента пользовательских настроек,
расположенную в правом нижнем углу окна настроек, и установим флажок
Включать в пользовательские настройки (рис. 2.109).
Рис. 2.109. Включение настройки в состав пользовательских настроек отчета
На закладке Условное оформление выделим цветом записи отчета со стои-
мостью продаж меньше 3000 руб. Подробно процесс создания условного
оформления описан в первом примере (см. рис. 2.21-2.24). Перечислим
кратко наши действия.
Нажмем кнопку Добавить справа на командной панели окна. Выберем Оформ-
ление для выделения полей. В нашем случае - это красный цвет текста.
Зададим Отбор - условие для выделения полей (рис. 2.110).
Рис. 2.110. Настройка условного оформления отчета
Зададим список оформляемых полей, в нашем случае — поле Стоимость, то
есть укажем, какие поля требуется выделить. Обозначим Представление
условного оформления как Мелкий заказ. Именно это представление будет
выведено пользователю в окне настроек отчета. В результате окно услов-
ного оформления должно принять вид (рис. 2.111).
Пайамефы ,! Ь Вьфанйыё И.... < ь Отбор г Сортировка ; Условное оф... | г ДЭдльзедод *.''! ’ Другие наст...*
' Оформление
Мелкий заказ
! Стоимость
Оф®рмляемыепояя: Е&еподвдеяие
; Уел»®
3.' - 41
Старость Меньше "3 000"
Включать в пользовательские настройки;
Представление
Режим редактирования
Рис. 2.111. Настройка условного оформления отчета
[Быстрый доступ
, |, Отмена 11. Справка
Включим настройку условного оформления в состав быстрых пользователь-
ских настроек. Для этого нажмем кнопку Свойства элемента пользовательских
настроек, расположенную в правом нижнем углу окна настроек, и установим
флажок Включать в пользовательские настройки (см. рис. 2.111).
Запустим отчет на исполнение в режиме 1 С:Предприятие. В открывшейся
отчетной форме зададим период отчета с 01.12.2011 по 15.12.2011.
Мы видим, что в форме отчета, под настройками отчетного периода, доба-
вились настройки отбора и условного оформления, которые пользователь
может включить или выключить. В настройке отбора пользователь может
указать критерий отбора записей в отчет, в нашем случае выбрать вид
номенклатуры, или выключить использование отбора. Выберем вид номен-
клатуры - Комплекты. После этого нажмем кнопку Сформировать. Отчет
примет следующий вид (рис. 2.112).
V--’’* •' , Прода. ДрГ'рсДпр ггь*’
:Й- -Э* ' 1$ • •
Вариант отчета [Основной
Выбэатььап внт
Все действия » ; Ш
Настройка...
1@ ш ‘1 Начало периода 01.12.2011
|0 ; Конец периода 15.12.2011
Че еч ютчра.Вт. нс Равно
И5 5 Мелкий заказ Услуги
Материалы
Продажи товаров и услуг Икянинм
< 1 1 г Параметры: Начало периода: 01.12.2011 Конецпериода: 15.12.2011 Отбор: Номенклатура. Вид номенклатуры Равно "Комплекты" 1Я
Контрагсн <лличество Стоимость Номенклатур. Период 5 . ,
ООО “Автоматика" 10 000,00
1? Компьютер для лома 1 1 10 000,00
11 декабря 2011 г. ; 1( 10 000.00
н Тр, О0< ''Система' • Ь _ [ 10000.00
Клмпьюте? для офиса ; 1 10 000,00
1 1 9 декабря 2011 г. : 1- 10 000,00 с™.
Л|
Рис. 2.112. Результат отчета
В результате мы видим, что отчет сформирован с учетом введенных нами
настроек. Правда, из-за отбора не видно записей с условным оформлением.
Отключим отбор и увидим следующий результат (рис. 2.113).
] ! Вобрал вариант
_.де Сфгрми ч адп 5 Настройка...
Все действия
Равно
1
к
I Монитор ЬСО
6 декабря 2011 г.
Продажи номе, клатуры
Вариант отчета: I Основной
I 0 ’ Начало периода
I
Ц11 Конец периода
&О НоменклатураВ...
Мелкий заказ
' 01.12.2011
15.12.2011
Комплект; ।
' 7. г
Продажи товаров и услуг
Параметры: Начало периода: 01.12.2011
Конец периода: 15.12.2011
Контрагент
Номенклатура
Количество Стоимость
3 I
Л
Период .. ... ... . - г ?? .1
ООО "Автоматика-'
Диагностика компьютера 2
5 декабря 2011 г. 1: { 1000.00;
11 декабря 2011 г. 11 50С.ОО^
Компьютер для дома г; ЛЗТЗйВ.боГ
11 декабря 2011 г. 1* 10 000,00;
ООО "Система" 10 000 00:
Компьютер для офиса 10000,00
9 декабря 2011 г. 1 ‘ 10 000,001
ООО "Стиль" -0 000,00
10 000,00
10 000,00:
31 500 00
Нажмем кнопку Настройка. Перед нами появится окно пользовательских
настроек отчета, содержащее параметры отчетного периода, настройку отбора
и условного оформления (рис. 2.114).
В нашем случае все эти настройки являются быстрыми, то есть располага-
ются непосредственно в отчетной форме. Так произошло потому, что в схеме
компоновки данных мы установили для них свойство Режим редактирования
в значение Быстрый доступ (см. рис. 2.109, 2.111). Но если пользователь
не считает их жизненно важными и не собирается задавать их перед каждым
формированием отчета, то он может изменить состав настроек, выполнив
команду Все действия ► Изменить состав настроек.
>На тййкихкчёта ' год^4Номенклагур)ы,,-Демакгтраи«^.., г » предприятие
Настройки отчета "Продажи ном клсиуры"
. .Настройка
@ Начале пер .ода
@ Конец периода
5 ,Емд сравнения . | Значение
. 01.12.2011
15.12.2011
Номенкла раВндноменклатуры Равно
Комплекты
заказ
I I
Здоедошть о«ц_к-т Отмена . Ясе действия -г; у,
Завершить редактирование
Отмена
Установить стандартные настройки
Изменить состав настроек.. '
‘”"у Изменить Форму...
(Я? Справка
И
Рис. 2.114. Окно пользовательских настроек отчета в режиме «1С:Предприятие»
В открывшемся окне Состав настроек пользователь может указать, какие
настройки будут редактироваться в форме отчета (правый список), то есть
будут быстрыми, а какие будут доступны по команде Настройка (левый
список). Кнопками Добавить, Удалить или двойным щелчком мыши можно
перенести настройки из левого списка в правый и наоборот. В данном
случае удалим из списка быстрых настроек настройку отбора (рис. 2.115).
Рис. 2.115. Редактирование состава настроек в режиме «1 С:Предприятие»
В результате мы не увидим настройки отбора в отчетной форме, но она будет
доступна в окне полных пользовательских настроек по команде Настройка.
Мы убедились, что пользовательский интерфейс по настройке и форми-
рованию отчета вполне удобен. Однако настройки отбора и условного
оформления заданы жестко. Пользователь может лишь включить/выключить
признак их использования или выбрать для отбора отчета вид номенклатуры.
Этого, как правило, вполне достаточно для неопытных пользователей.
Но для более подготовленных пользователей мы можем предоставить более
полную свободу в использовании настроек, то есть возможность, например,
самостоятельно задавать настройки отчета: отбор, порядок, условное оформ-
ление и пр.
Вернемся в конфигуратор. На закладке Настройки схемы компоновки данных
содержатся полные настройки отчета, которые задает разработчик. Часть
из них может быть предоставлена пользователю для создания произвольного
отбора, условного оформления отчета и пр. Для этого нажмем кнопку Свой-
ства элемента пользовательских настроек, расположенную вверху командной
панели окна настроек (рис. 2.116). В появившемся окне мы можем редак-
тировать состав пользовательских настроек отчета. Установим признак
использования для настроек Отбор и Условное оформление и установим для
них свойство Режим редактирования в значение Обычный.
© Контрагент
© С?1ааз Номенклатура
Период
* х
,----— —.——
! Имя варианта , Представлен.. |
Представление
ОТ
О.] [Быстрый доступ
О., Обычный
П ; Быстрый доступ
Отчет
. Ччный
Сост.«* пользонатеЛ-скмх нмст ек отчет л
Настройки: <0
О Выбранные поля
Параметры.
’ * • ~ -------------------------
Вложенные схемы _| Настройки [
Наборы данных Связи наборов данных 5 Выч! зляемые поля
_ресурсы Параметры Макеты
ОК I
• » а.=* _₽
Режим редактирования
Ц. > ыстрый доступ
гиенаст
Рис. 2.116. Состав настроек отчета
СФормле
3: Цвет тек* ОЛорядск___________
Условное оформление
Г~{ Группировки
Таким образом, мы включили настройки отбора и условного оформления
в состав пользовательских настроек и предоставили пользователю возмож-
ность задавать их в отдельном окне, вызываемом кнопкой Настройка.
Запустим отчет на исполнение в режиме 1 С:Предприятие и откроем окно поль-
зовательских настроек отчета. Мы видим, что здесь находятся две настройки
отбора и две настройки условного оформления. Отметим их различие
на примере настроек условного оформления.
Настройку Мелкий заказ мы заранее создали в конфигураторе. А сейчас
мы предоставили пользователю возможность создавать любое количество
собственных условий для условного оформления аналогично тому, как мы
это делали в конфигураторе.
В строке Условное оформление нажмем кнопку выбора и зададим условие,
при котором записи отчета с количеством продаж больше 1 будут выделяться
желтым цветом фона (рис. 2.117).
'чстчета ’Прсд липа .н.истур^ Демонстрационная .. Я :П I едприягяр) X
Настройки отчета "Продажи номенклатуры"
. Настрои* а Значение
Р1 [$Г] НачалоПериода ^01.12.2011
@ Конецпериода ! 15.12.2011
□ НоменклэтураВид номенклатуры Равно , Комплекты
® Мелкий заказ
Условное оформление
---- —' ЙйГ ь.-йго сформлечи! - юное йцнг тая кин Н Предприятие
□ЙШМ Редактировгоие условного оформления
Все действия
> Оформление Условие
УЖ ЦветФона .Кожчество Больше, "Г
ЗФор чЛяеммеполя
<Вгеполя>
Рис. 2.117. Настройка условного оформления отчета в режиме «1 С: Предприятие»
Нажмем ОК, Завершить редактирование и переформируем отчет (рис. 2.118).
Мы видим, что в отчете применены обе настройки условного оформления.
Причем одна из них расположена непосредственно в отчетной форме,
а вторая доступна в окне пользовательских настроек по команде Настройка.
Вызвав окно настроек, мы можем очистить настройку отбора или условного
оформления, нажав кнопку очистки , или создать ее по другому критерию,
нажав кнопку выбора в строке Отбор или Условное оформление. Таким
образом, пользователь сможет, при наличии определенной квалификации,
задавать многие настройки по своему желанию. Если же такого желания или
соответствующих знаний у него нет, лучше задавать эти настройки жестко,
а пользователю останется только включать или выключать их использование.
Продажи номенклатуры
Вариант отчета {Основной
?:СфСфМНР®ватъ:'* Настройка...
Ч& '•’«=* '
И ]”' Начала периода
|@ !]Тн Конец периода
. гийВДр;^^../Ш
Ьыб1 ва| I
01.122011
15.122011
Все действия - | ?.
I
— — 1
Продажи товаров и услуг
1т' I 1 [ Параметры: Начало периода: 01.12.2011 Конец периода: 15.12.2011 !
Контрагент Номенклатура Период Количеств о Стоимость 3 - ” --1^1/ 1 1 1
СОО "Автоматика" 11 500,00 |
Диагностика компьютера 2 5Х,103 3
Ну Й декабря 1 г. "' 1 * аддо 1
( 1 11 декабря 2011 г. 1 509,00 / ( 1
19 Компьютер для дома 1 10000,00
11 11 декабря 2011 г. юооодо; <
ы ООО Система" 10000,00
1Т __ Компьютер для офиса_ 9 декабря 2011 г. Г.— 1 10 000,00 ] 10 000ДО
1—4 Те ООО Стиль" 10 000,00 |
Монитор 1лХ> 1 юооодо:
11 6 декабря 2011 г. 1 10 000,00
Итого .. _ ь, . . 31 500,00 I
1
ь
Рис. 2.118. Результат отчета
При закрытии окна отчета настройки, сделанные пользователем, запомина-
ются и становятся настройками по умолчанию для текущего пользователя.
В заключение поясним, что те настройки, которые мы создавали в конфи-
гураторе (отбор, условное оформление и т.п.), можно сделать и в режиме
1 С:Предприятие по команде Все действия ► Изменить вариант... (рис. 2.119).
иь ^чри11н '’йснрвной' отчет31 ‘Продаж ьомтл^урн.1- Ьемонстрационнадконфигураиия "Система компоновки д . ЙЕЛредприятие) X
Вариант "Оснсенои" отчета "Продажи номенклатуры"
Добавить-] X { < # 1
Все действия-
I
'.А..
ПЯ1*» • Гит Пользе... 1 Группи
Текущий элемент имеет собственный отбор [для Фильтрации записей, выводимый в элементе)
Выбрать Все действия
Добавить новый элемент I Сгруппировать условия ; X I Ф # 1
Все действия
Доступные поля
Контрагент
Номенклатура
Период
Стоимость
Параметры
Поде
&. -с--1—
; 6 Отбор
' Вид сравнены
! Значение
ом^я г 1.ЙИД «нклат
МММ т ’Т"
Равно
ДМ
©
4 1
I I
1
Завершить редактирование Отмена I Вседействия» {
— Тй
При этом пользователю открывается окно настроек отчета, очень похожее на
закладку Настройки в схеме компоновки данных. Различие состоит в том, что
настройки, сделанные в конфигураторе, называются стандартными настрой-
ками и будут сохранены в самой схеме компоновки данных, то есть будут
являться частью конфигурации. Это означает, что любой пользователь конфи-
гурации будет видеть отчет именно в таком виде, как мы его настроили
в конфигураторе.
Все то же самое можно настроить и в режиме 1 С:Предприятие, но эта
настройка уже не будет являться частью конфигурации и будет доступна
только одному конкретному пользователю конкретной информационной
базы (если в конфигурации не разработан какой-либо механизм для обмена
настройками между различными пользователями).
Возможность изменения варианта отчета в режиме 1 С:Предприятие пред-
назначена не для рядового пользователя (для него - быстрые настройки
и пользовательские настройки), а для разработчика, осуществляющего
внедрение, администратора или для очень опытного пользователя.
Настройки, сделанные в режиме 1С:Предприятие, естественно перекры-
вают стандартные настройки. И если пользователь настолько все перестроил
в отчете, что его не узнать, то всегда можно вернуться к стандартным
настройкам по команде Все действия ► Установить стандартные настройки.
СОВЕТ
Для повышения удобства работы с отчетом рекомендуем также устанавли-
вать значения настроек по умолчанию и автоматически формировать отчет
при открытии формы, как это показано в шестом примере на стр. 78.
Таким образом, на примере этого отчета мы научились:
м задавать периодичность для виртуальной таблицы в запросе,
м устанавливать поля группировок для расчета ресурсов отчета,
в определять формат для представления полей в отчете,
м отображать пользовательские настройки в форме настроек отчета и само-
стоятельно определять состав быстрых пользовательских настроек.
Пример 9. Свободная структура таблицы отчета
В данном примере мы рассмотрим вывод данных в таблицу. Также мы
покажем, как сделать отчет максимально универсальным, чтобы позволить
пользователю в режиме 1 С:Предприятие, не обращаясь к полным настройкам
отчета (не выполняя Все действия ► Изменить вариант...), изменять его струк-
туру и внешний вид. Например, поменять местами строки и колонки таблицы
или изменить данные, выводящиеся в ячейках таблицы.
Создадим отчет, отражающий информацию о работе мастеров по сборке
системных блоков в виде таблицы (рис. 2.120).
Мастер '
(Ильин Сергей
„околов Андрей
Итого
{Компьютер для дома . Компьютер для офиса Компьютер игровой Итого
личе 'во / Стоимость Количество Стоимость Количество 'Стоимость Количество -Стоимость
|_____Ц _79000'0°!______Т~~ I ^^1|^90И),И);
~ТТ~ 6 500Д0; П 10500ДО'' 2! 19 000,00'
<5г— “• -- | ?<Г- •- ** - -яю - - <
1 9 000,00 1, 0500.00 10 500,00 3 28 000 00
Рис. 2.120. Требуемый вид отчета
Создадим новый объект конфигурации Отчет и назовем его РаботаМастеров.
Откроем конструктор схемы компоновки данных и добавим новый набор
данных - запрос. Откроем конструктор запроса. В качестве источника данных
для запроса выберем объектную таблицу регистра накопления СобранныеСБ.
В список полей перенесем поля из этой таблицы:
в СБ,
в Мастер,
в Количество,
в Стоимость.
Перейдем на закладку Условия, раскроем таблицу СобранныеСБ и перетащим
мышью поле ВидДвижения в список условий. Оставим предложенное условие
по умолчанию. Это условие нам нужно, чтобы в отчете отражались данные
из регистра с видом движения Приход (рис. 2.121).
Рис. 2.121. Создание условия запроса
Нажмем ОК и вернемся в конструктор схемы компоновки данных. Чтобы
вывести данные отчета в виде таблицы, нам нужно определить ресурсы
отчета, так как данные в таблице группируются по строкам и столбцам, а
на их пересечении? в ячейках таблицы, находятся групповые итоги, то есть
ресурсы (стр. 370).
На закладке Ресурсы перенесем из доступных полей все возможные ресурсы
Количество и Стоимость (рис. 2.122).
[ Набб^ыданных { .Сёядине&урь.у" ^.Вычисляемый... | Ресурсы ’
11 Доступны, поля
I » Мастер
| *“ СБ _
! «“ Стоимость
“ Количество
Стоимость
рлйенныь асгссйки
Ра. ЧРывать по
'Выражение
Сумма(Количество]
СчммаГСтоимость]
' г
' &
&
Рис. 2.122. Определение ресурсов для отчета
Для быстрого создания стандартных настроек воспользуемся конструктором
настроек: нажмем кнопку в командной панели схемы компоновки на
закладке Настройки. На первом шаге выберем тип отчета Таблица (рис. 2.123).
’ыг- вест) ьк.«чй” »и да«р»х.
1
<
Тип отчета:
) Список. Данмме по всем измерениям отчета выводятся списком
в
5 4г'
| в •’
с.
-и.* ...
!Т аслица. Данные выводятся по измерениям расположенным как по
таки по верт^али.................... ..................
Г
?
Диаграмма. Данные выводятся в виде диаграммы
Отмена
Рис. 2.123. Конструктор настроек. Шаг 1
Нажмем кнопку Далее. На следующем шаге определим поля, выводящиеся
в отчет. Перенесем из списка доступных полей все поля (рис. 2.124).
Кй^
Пол.
* Выберите поля (которые (Зудут отображаться в отчете.
До-:п>пные поля
1
[Поле
г
I
№
. и. 1Я1 С.' Л 11 Л 1л . . Ы
$
СБ
Количество
I
< !
Я Стоимость
СБ
Количество
Стоимость
СистемныеПоля
ПараметрыД энных
Отмена I« Спрдо-- . | *
Нажмем кнопку Далее. На следующем шаге определим поля для группировки
строк и столбцов таблицы. Мышью перетащим из списка доступных полей
в поля Строки поле Мастер, а в поля Колонки — поле СБ (рис. 2.125).
Ыберите поля по которым бдоетпрйизвсдатьсяграппирвк.а таблиц, ьтрт « и кольнок
отчета Поля группировок отрбражаются ь от ете
I Дост;лные поля
“ Мастер
Ф
в
I ъ
Л Количество
Стоимость
Поле
Гг
® I
©!
Г ш группировки.
’ Без иерархи
Таблицы
[Поле
<ЙЛ
Г<</!
Тип гийпировки. ; ф
' ’Г Дйяеа> Т. ОК ТП,Отмена Справка ;
Рис. 2.125. Конструктор настроек. Шаг 3
Нажмем кнопку Далее. Четвертый шаг пропустим, так как сортировка
в данном случае нам не важна.
Нажмем ОК. В результате наших действий в окне настроек появилась
таблица, в строках которой находится группировка Мастер, в колонках -
группировка СБ, а также определен список выбранных полей (рис. 2.126).
Рис. 2.126. Настройки схемы компоновки данных
Выполним отчет в режиме 1 С:Предприятие (рис. 2.127).
Работа мастеров - Дет.операционная конфигурация "Система
(1 (/Предприятие) * ^н1.
М М’ М , - О X
Работ© - ©стерон
Вариант отчета: 'Основной
•» Сформировать | л Настройка...
Мастер
9 000,00
9 000,00
Компьютер для дома
Количество Стоимость
.Ильин Сергей
[Соколов Андрей
Итого
1 ? 8 500,00«
1 3 500,00
Рис. 2.127. Результат отчета
Компьютер длг офиса Компьютер игровой
Количество Стоимость Количество Стоимость
Итого
1 10 500,00
1. 10 500,00
Все действия • | ?
Количество Стоимость
9 000,00
2 <9 000,00
3 2С 000 30
Отчет выводится в таблицу, в строках которой данные сгруппированы
по полю Мастер, а в колонках - по полю СБ (системный блок). Сделаем
наш отчет более гибким, чтобы он выводился в таблицу со свободной струк-
турой.
Для этого в схеме компоновки данных на закладке Настройки снимем признак
использования у всех полей отчета. Затем выделим в структуре элементов
отчета элемент Таблица и нажмем кнопку Свойства элемента пользователь-
ских настроек, расположенную вверху, в командной панели окна настроек.
В появившемся окне мы можем редактировать состав пользовательских
настроек таблицы. Установим признак использования для настроек Выбранные
поля, Группировки строк и Группировки колонок и оставим для них по умолчанию
свойство Режим редактирования в значении Быстрый доступ (рис. 2.128).
Рис. 2.128. Состав пользовательских настроек
Таким образом, мы предоставили пользователю возможность самостоятельно
определять состав выбранных полей, группировок строк и колонок таблицы
непосредственно в отчетной форме перед формированием отчета.
Откроем отчет в режиме 1С:Предприятие. Зададим новую структуру отчета
перед его формированием.
Нажмем кнопку выбора в строке Выбранные поля и выберем из доступных
полей поле Стоимость. Нажмем кнопку выбора в строке Строки и добавим
в строки таблицы группировку по полям СБ и Количество. Нажмем кнопку
выбора в строке Колонки и добавим в колонки таблицы группировку по полю
Мастер. Нажмем Сформировать. Отчет примет следующий вид (рис. 2.129).
Рис. 2.129. Результат отчета
Как мы видим, ресурсы можно не только выводить в ячейках таблицы (Стои-
мость), но и группировать по ним данные (Количество). Изменим порядок
полей группировки в строках таблицы - Количество, СБ, а в список полей
отчета добавим поле Количество. Сформируем отчет. Он примет следующий
вид (рис. 2.130).
Рис. 2.130. Изменение структуры отчета
Итак, с помощью конструктора настроек мы вывели данные отчета в виде
таблицы и предоставили пользователю возможность самостоятельно опреде-
лять структуру отчета в соответствии со стоящими перед ним задачами.
Пример 10
На примере этого отчета мы продемонстрируем возможность получения
данных из нескольких наборов, связанных по периодам. Допустим, требу-
ется выдать в отчет данные по остаткам товаров на складах по месяцам
и выдать объем продаж по каждому товару за каждый месяц (рис. 2.131).
Нома. х>«йда.; Т"*’’ -Продан» Начальный Конечный [
Начало Периода , • 'остаток остаток !
Цеб-1 1 ЗДО ! 7.000
{ Январь.2012 3,00- 7.000!
•Жесткий диск и*
I Декабрь.2011 г 1 1 1,000
' Январь.2012 I 1,000! |
Материнская плата ' I 2,000
< Декабрь.2011 Г < з,ооо;
| Январь.2012 I | 3.000 2,000?
'Мкрофон 2.00 0,000
| Январь 2012 2,001 8,000!
Монитор ЬСО 2,00 2,000
! Декабрь гО"! 1,00! ! 1,0001
| Январь.2012 1,00| 1.000 2.000!
Память I I 2,000
| Декабрь 2011 ' I ; । з,ооо|
I Январь.2012 ( I I 3000 2,000
Итого . '""ж 7 .ОС 21 ДЮ
Рис. 2.131. Требуемый вид отчета
Создадим новый объект конфигурации Отчет и назовем его ОстаткиИПрода-
жиТоваров. Для реализации такого отчета создадим два набора данных:
набор данных с остатками товаров по периодам,
набор данных с продажами товаров за период.
Откроем конструктор схемы компоновки данных и добавим новый набор
данных - запрос. Назовем его Остатки. Откроем конструктор запроса. Для
того чтобы получить остатки товаров по периодам, воспользуемся вирту-
альной таблицей регистра накопления ОстаткиНоменклатуры.ОстаткиИОбороты.
Выберем эту таблицу в качестве источника данных для запроса.
Вызовем диалог параметров виртуальной таблицы. Для этого в списке таблицы
нужно нажать кнопку Параметры виртуальной таблицы. В открывшемся окне
параметров зададим значение параметра Периодичность - Месяц (рис. 2.132).
Рис. 2.132. Параметры виртуальной таблицы
В список полей перенесем поля из таблицы ОстаткиНоменклатуры.Остат-
киИОбороты:
Период,
Номенклатура,
КоличествоНачальныйОстаток,
з КоличествоКонечныйОстаток.
Нажмем ОК и вернемся в конструктор схемы компоновки данных. Платформа
автоматически сформирует следующий запрос (листинг 2.21).
Листинг 2.21. Текст запроса набора данных «Остатки»
ВЫБРАТЬ
ОстаткиНоменклатурыОстаткмИОборотьгПериод,
ОстаткиНомен!шатурь|ОстаткиИОбороть1.Количест^
ИЗ
РегистрНакопления.Остаткм1-|оиенклатуы.ОстаткиИОбороты() ,;Жсяцу,)
КАК ОстаткиНоменклатупыОстаткшОб роты
Добавим еще один набор данных - запрос. Назовем его Продажи. Откроем
конструктор запроса. Продажи за период можно получить при помощи вирту-
альной таблицы регистра накопления Продажи.Обороты. Выберем эту таблицу
в качестве источника данных для запроса.
Вызовем диалог параметров виртуальной таблицы. В открывшемся окне
параметров зададим значение параметров НачалоПериода и КонецПериода
(рис. 2.133).
Параметры в^род ним
ХА
а
€= ок . ?
НачалоПериода
КонецПериода
Периодичность
Условие
Рис. 2.133. Параметры виртуальной таблицы
В список полей перенесем поля из таблицы ОстаткиНоменклатуры.Остат-
киИОбороты:
з Номенклатура,
в КоличествоОборот.
Нажмем ОК и вернемся в конструктор схемы компоновки данных. Платформа
автоматически сформирует следующий запрос (листинг 2.22).
Листинг 2.22. Текст запроса набора данных «Продажи»
ВЫБРАТЬ
ИЗ
РегистрНаколления Поодажи.Обороты(
&НачалоПериодаПродаж. всКоьецПерисдэПродаж ,) КАК ПродажиОбороты
Связь наборов данных по периодам
Однако в данном случае нам недостаточно текста запроса наборов данных,
сформированного конструктором запроса. Так как система компоновки
данных позволяет выполнять связь между наборами данных только по их
полям, нам нужно обеспечить в обоих наборах данных поля начала и конца
периода. Для этого вручную изменим запросы наборов данных следующим
образом (листинги 2.23, 2.24).
Листинг 2.23. Текст запроса набора данных «Остатки»
ВЫБРАТЬ
Ос гаткиНомелклатурь(ОстаткиИОбороть Период КАК НачалоПериод?
КОНН (ПЕРИОДА(Оста1киНоменклатурьТ)статкиг.Обороты Период, МЕСЯЦ КАК КонецПериода
ОстаткиИоменклатурнОстаткиИОбороты.Номенклатура,
ОстаткиНшенклатурыСетаткиИОборо гь5.КоличеС1 воНачальныйОста «окКАК НачальныйОстаток
Оста, ж юменклатур<.|ОстатчиИСборо1 ы. Кс личестеоКонечнниОста гок КАК КонечныиОстаток
ИЗ
РегистрНак* чтения Остаткиг19менклетуры.Ос1аткиИОбороты(5Месяц. )
КАК ОстаткиНоменклатурыОстаткиИОбороты
ИВМкЯВИМВ1МЯ1
Листинг 2.24. Текст запроса набора данных «Продажи»
ВЫБРАТЬ.
&НачалоПериодаПродаж КАК НачалоГ 1ерисда
&Конец‘ ериодаПродаж КАК КонецПериода,
ЛродажиОборот । Номенклатура
ПродажиОбороты.КоличествоОборот КАК Количество
{ВЫБРАТЬ
НачалоГЪриоца
КонецПериода
Номенклатура^
Количество)
ИЗ
РегистрНаколления.Лрсдажи.Обороты(&НачалоГ1ериодаПродаж, &КонецПериодаПродаж,,
{(Контрагент).*, ^Номенклатура) *}) КАК ПродажиОбороты
В наборе данных Продажи снимем признак Автозаполнение (стр. 346), так как
список полей мы формируем в запросе в секции {ВЫБРАТЬ...} (рис. 2.134).
Поля
!Поле
Наборы данных
Путь
! Аетозаголовок
^4 Сйг««а О, аткнИП.ляажмТшаровО'.‘оз^аМлгемаКоьотцовкнДанных
—’ Г —— ’ и -г! .4V»-. - г> — г-^-^-яЧГи' ‘ I» Ьг*ч -ч^-- " 1 I « А1 «г»лмй ЙУЬ' и> ‘ м»—« »•»
Наборыданных [ Связи коборовдаг, Вычисляемые поля. Ресурсы Параметры ’ Макеты Бло„ гнные схемы л. Настройки ' .
Выражения ! Набор данных
упорядочи. '
> Параметр
Ограничение поля ; Роль
п..." у.„;г..:У.. ’
Г 1
Ограничение рек... ’
1 - ”
'П„, У... Г... :ю
Выражёни... ! Проверка иерархии:
«Я Количество О: Количество 1 о * 'с 1 ; да .1 ч 9 3 3 ’Ч О »
=» КонецПериода > и» Контрагент , КонецПериода С.] Конецпериода Контрагент 'О * о СЗ * ! } н 5 1 I г
! ’ г... _ ч.. .... . ! «» НачалоПериода .□ Контрагент НачалоПериода б; "}~
1 ‘ =» Номенклатура 1 ; С.1 Началопериода Номенклатура 'О Номенклатура а СЗ . Измерение □ 1
- 1 г„, Л-
К Конструктор запроса...
Запрос:
ВЫБРАТЬ
КНачалоПериодвПрьлаз: КАК НачалоПериода,
&КС'НепПертждвПрадаж КАК Конецпериода,
ПродажиОбороты.Номенклатура,
ПродажиОбороты.КоличествоОборот КАК Количество
{ВЫБРАТЬ
НачалоПериода,
КонецПериода,
Номенклатура.*
Рис. 2.134. Описание набора данных «Продажи»
Теперь нам нужно обеспечить связь наборов данных Остатки и Продажи
по номенклатуре и полям периодов. На закладке Связи наборов данных
добавим новую строку. В поле Источник связи, то есть в качестве роди-
тельского набора данных, укажем Остатки, в поле Приемник связи, то есть
в качестве зависимого набора данных, укажем Продажи.
Для указания связи по номенклатуре в полях Выражение источник и Выра-
жение приемник выберем поле Номенклатура.
Продублируем строку еще два раза. Для указания связи по полям-периодам
в полях Выражение источник и Выражение приемник выберем поле Нача-
лоПериода/КонецПериода. В поле Параметр выберем из списка параметров
параметр НачалоПериодаПродаж/КонецПериодаПродаж зависимого набора
данных, в котором будет храниться значение связи (рис. 2.135).
Т йгчег ОетаткиИПрода. нТбыаров;.. . , , . .
Наборыданных | Связи наборов дан... ; | Вычисляемые тюля } . Ресурсы .}1 Параметры ‘ Макеты 4 р В лохёнщесхемы ;!. Настройки |
X
I Источник связи ; Прием и связи ! Пыр<»жение источник | Выражение приемник । ара: вир Список п ., Уело II е ,1 ।Начален.. |0..,»
1 Остатки Продажи Номенклатура Номенклатура 1
; Остатки ' Продажи НачалоПериода НачалоПериода НачалоПериодаПродаж ^6 1 ®]
1 Остатки Продажи ! КонецПерисда ’ КонецПерисда 1... 1
1 1 I ! ! 1 | ! 1 1 1 : 1 !
Из описания связей видно, что для записей набора данных Остатки будут
получаться записи набора данных Продажи для нужного периода и нужных
товаров. При этом значения полей НачалоПериода и КонецПериода набора
данных Остатки будут использоваться в качестве значений параметров вирту-
альной таблицы Продажи.Обороты.
Перейдем на закладку Ресурсы и определим доступные поля ресурсов отчета
(стр. 370).
> Йыйисг!й№йе [ Ресурсы
.. Поле
Доступные поля
Пар® (Лры ’дМЬкеГы/р |д
» КонецПеоиода
» КоючныйОстаток
“ НачалоПериода
“® НачальныйОстаток
“ Номенклатура
' Выражен®,
’ Сумм^Колмчество)
’ Сумма(КонечныйОсгаток)
О^мма(Начальный0сгеток)
Рис. 2.136. Определение ресурсов отчета
Рэдхчигыеё?* по.
_>.! ! ““ Количество
,»Д' 400 КонечныйОсгаток
331 НачальньйОстаток
На закладке Параметры (стр. 376) мы видим параметры компоновки данных,
созданные платформой (см. рис. 2.137). У параметров НачалоПериодаПродаж
и КонецПериодаПродаж установлен флажок Ограничение доступности, так как
они служат для получения значения связи наборов данных, используемых
в схеме компоновки данных отчета.
Зададим настройки параметров, как и в предыдущих примерах. Для параме-
тров НачалоПериода и КонецПериода в колонке Тип нажмем кнопку выбора
и в нижней части окна редактирования типа данных установим Состав даты
в значение Дата. Для параметра КонецПериода зададим значение колонки
Выражение, чтобы данные за последний день отчета были включены в расчет
(листинг 2.25).
Листинг 2-25. Выражение для расчета параметра «КонецПериода» В
В результате параметры компоновки данных примут вид (рис. 2.137).
Рис. 2.137. Параметры компоновки данных
Определим структуру отчета. На закладке Настройки выделим корневой
элемент Отчет и добавим в него группировку по полю Номенклатура. Затем
добавим вложенную в нее группировку по полю НачалоПериода. На закладке
Выбранные поля перенесем из списка доступных полей поля (рис. 2.138):
ЗИВ ь»
! Доступные поля
Поле
.1
е
Выбранные поля
пастройки [ I:'
Ресурсы - ' Параметры Макеты./ Вло»®нуые:с«
Э ПараметриДанных.
НачалоПериода
Номенклатура
Количество
КонечныйОстаток
НачальныйОстаток
СистемныеПоля
Номенклатура
НачалоПериода
Количество,
а НачальныйОстаток,
а КонечныйОстаток.
* Ыг. ЛЬЯ .и с ч -Ы- ч
Р 1бсРЬ1 ценны'/ Ёвязьгнабсров.. Вычисляемые
Имя ’эда.. ; Представл...
Основной
О
$
&
3
Рис. 2.138. Определение полей и группировок отчета
пользсеа
Другие на
Настройки- Отчёт Отчет
Параметры |?Д Выбранны... ; Отбор Сортировка , Нсл|вноя
$ НачальныйОстаток
& КонечныйОстаток
♦
'Ж-
Усовершенствуем внешний вид отчета. Для поля Количество установим заго-
ловок Продано. Для этого нужно вызвать контекстное меню выбранного поля
и выполнить команду Установить заголовок (см. рис. 2.138).
На закладке Наборы данных выделим набор данных Остатки и в колонке
Оформление зададим формат поля НачалоПериода. Вызовем диалог Формат
поля и в строку Формат введем выражение (листинг 2.26). Для этого также
можно воспользоваться конструктором.
Листинг 2.26. Формат поля «НачалоПериода»
ДФ=ММММ уууу
И обязательно нужно указать роли полей (стр. 365) НачальныйОстаток
и КонечныйОстаток, чтобы остатки по номенклатуре считались правильно.
В данном случае, так как свойство Автозаполнение включено (стр. 346),
платформа установила эти роли автоматически. Вызовем диалог роли этих
полей и удостоверимся, что для полей НачальныйОстаток и КонечныйОстаток
указано, что эти поля является полями остатка (рис. 2.139).
Рис. 2.139. Роли полей остатка
На закладке Параметры включим параметры НачалоПериода и Конецпериода
в состав быстрых пользовательских настроек.
Запустим «1С:Предприятие» и сформируем отчет за период 01.12.2011-
31.01.2012 (рис. 2.140).
Рис. 2.140. Результат отчета
Функциональные опции
Теперь рассмотрим, как влияют функциональные опции на вывод отчета.
При включении/выключении функциональных опций автоматически изме-
няется состав выводимых в отчет группировок, полей, отборов, сортировки
и т.п.
В демонстрационной конфигурации, прилагающейся к книге на компакт-
диске, реализована функциональная опция ДанныеОПродажах, значение
которой хранится в константе ПоказыватьДанныеОПродажах булевого типа
(рис. 2.141).
Рис. 2.141. Функциональная опция «ДанныеОПродажах»
В состав функциональной опции входят измерение Контрагент и ресурс Коли-
чество регистра накопления Продажи (рис. 2.142).
ДГ Фчнкцийнальная опция ДанныеОПродажак
Основные
‘ Подсистемы
5 Состав
| & I Регистры сведений:
| 'в '-д Регистры накопления
Ф ОЙЙ ОстаткиНоменкяатуры
'-*1 ОУ СобранныеСБ
е ОУ Продажи
'Э Измерения
ОО Номенклатура
ЙО Контрагент
& Ресурсы
Й 4 количество
О 4 Стоимость
В кодящие в Функциональную опцию объекты:
1ч? Регистры накопления
Д Продажи
& и. Измерения
X" О Контрагент
| & & Ресурсы
\ 4 Количество
{Действия |
<Назед
Й- X '
Закрыть | | Справка 1
- “
мвммчжзтячжмимжя***
* Р
Рис. 2.142. Состав функциональной опции «ДанныеОПродажах»
Посмотрим, как изменится результат отчетов, получающих данные
из регистра Продажи в зависимости от значения функциональной опции
ДанныеОПродажах. Напомним, что если константа ПоказыватьДанныеОПро-
дажах имеет значение Истина, то функциональная опция включена. Если
константа имеет значение Ложь, то функциональная опция выключена.
На рисунке 2.143 приводится результат выполнения отчета Остатки и продажи
товаров при включенной (слева) и выключенной (справа) функциональной
опции ДанныеОПродажах.
Показывать данные о продажах I
.н счкрмть Й Все действия* I I
Показывать данные о прсдаже^^^ |
Рис. 2.143. Результат отчета
।
♦
V
I Остатки и продажи товаров
Вариант отчета: [Основной Выбрвть вариант. Л]
. Ст₽О| №'4№ви ». л}* Настройка.. Вседействия » 1 ’
Началопериода ~~7 ——~ ~~ 1 1 1
;Р , ТГ] Конец периода 1 1 1
|НьйН» Ж? Начале периода' Начальной Конечный остаток . :остаток 4
г'е&келгжг 7,000
1 Январь 2012 ; тдоо
Жесткий-диск . т /
11' Декабрь 20'1 1,000
Январь.2012 1,000;
йй еринская плата ............. ’ 2,000
Декабрь 2011 Январь.2012 ЗД00 3.000 2,000
Микрофон . .. ; , идол
1 Январь.2012 Л.000
Монитор 1_С0 - 1 2,000
т Де ебрь2011 1Д00
1 Январь.2012 13000 2,000
Р] Память ; 2,000
1 Декабрь.2011 [ ЗД00
1 Январь.2012 3,000: 2,000
Итого „ ’ КГЛ~".. . ЛЗ 21 дю
г
'м * ' ' " - - - 1
Мы видим, что при выключенной функциональной опции поле Количество
(в отчете оно называется Продано) не показывается, так как ресурс Коли-
чество регистра накопления Продажи входит в состав функциональной опции
ДанныеОПродажах.
Теперь поэкспериментируем, как будут отражаться настройки отбора,
условного оформления, сортировки в зависимости от значения этой функци-
ональной опции.
В режиме 1 С:Предприятие изменим вариант отчета (Все действия ► Изменить
вариант...) и зададим следующее условное оформление для группировки
Начало периода (рис. 2.144).
вариант В^^анк‘стШга вци..С«Я1Г ... Й^:Пре;дйрСят«^.
Вариант "Вариант" отчета "Остатки и продажи товаров"
Добавить * I >
Структура отчета
| е Отчет
& Номенклатура
Все действия
[Ё5 Пар..
П&иЯ
| Добавить I X
Завершить редактирование' Отмена Все действия
1! Оформление
Цвет фона
1 Цветтеадта
Рис. 2.144. Настройка условного оформления
. Доп
1 @ Текуший элемент имеет собственное условное оформление [для оформления записей, выводимых в элементе)
Все действия
Н
Условие ' Оформляемые поля
Коли-чствг Ролы<>е илйрзвнп ”3" <Дсе г.оля>
Йнечныйоййек ьольи® "Б"
На рисунке 2.145 приводится результат выполнения отчета Остатки и продажи
товаров при включенной (слева) и выключенной (справа) функциональной
опции ДанныеОПродажах.
'Номенклатуре .Продано Начальный Конечный
^Начало периода ;остаток .„остаток . ,
Номенклатура Начало периода Начальный истаток Конечный остаток
[Веб-камера I 7,000
I Январь 2012 I 7,000)
'Жесткий диск
I Декабрь.2011 1,000,
! Январь.2012 1,000
ГЛ ггеюинская плата + — 2,000
Ле :абрь.2О11 , 3,0001
Январь .2012 ! 3,000 2,000
Микрофон 1 8,000
Январь .2012 8,000
Монитор 1_С(5 2,000
Декабрь 2011 1.000! 2.000
Январь.2012 1,000
Память 1 2,000
Декабрь.2011 ; 3,000;
Январь.2012 ! 3,000 2,000;
Итого . | _ 21.У00
% ИЯ Й1 ЩЗ
! Жесткий диск ' .. 1 ’ >
' Декабрь 2011 \ 1,000:
! Январь.2012 ! \ 1,ббО;
[Материнская плата Г 1 2.000
! Декабрь.2011 \ I 1 3,000
; Январь.2012 ! [Микрофон ; Январь.2012 ; [ 3,0001 2,001 1 ! 2,0001 ! 8Д00, 6,000!
'Монитор ЬСО 1 1 Декабрь.2011 ; 2.00, . ; 1.00. ! ; ’ „ _ 2,000” Г ~ Д,ооо;
! Январь.2012 Ъ®?) [Память { • • 1 2,00? !
; Декабрь.2011 ; 3,000;
! Январь.2012 3,000: 2,000; 21,000
.1 [тег— .. .;... | I 1№ .. КЗ
Рис. 2.145. Результат отчета
Мы видим, что при включенной функциональной опции условное оформ-
ление отчета содержит два элемента - розовым цветом фона выделяются
записи, в которых количество продаж больше или равно 3 и синим цветом
текста выделяются записи, в которых конечный остаток больше 5.
При выключенной функциональной опции первый элемент условного оформ-
ления, содержащий условие с полем Количество, в отчете не показывается,
так как ресурс Количество регистра накопления Продажи входит в состав
функциональной опции ДанныеОПродажах.
Изменим вариант отчета - отключим настройки условного оформления
и зададим следующий отбор для отчета в целом (рис. 2.146).
Рис. 2.146. Настройка отбора
На рису Iке 2.147 приводится результат выполнения отчета Остатки и продажи
товаров при включенной (слева) и выключенной (справа) функциональной
опции ДанныеОПродажах.
| Отбор: Коне1 Коли1 I 1ный остаток Равно "2“ И (ество Равно "1 ”
Номенклатура Начало периода Монитор 1_Св -Продано Начальный остаток 1,00 . 1,000 Конечный остаток 5 ™"~~~2,б66
Январь. 2012 1 1,00! 1000 2,000'
Итого —... _ л.-4-й- *> 4.00 1.000 . 2,000
| Отбор: Конечный остаток Равно ,,2”
Номенклатура Начало периода Начальный остаток Конечный з остаток
Материнская плате 3,000 2000
[ Январь 2012 3,000 2,000-
Монитор ЬСО 1 1000 2001
| Январь.2012 1,000 2,000'
Память 3000 2,000
Январь 2012 3000 2,000
Итого /да - 6,000
Рис. 2.147. Результат отчета
Мы видим, что при включенной функциональной опции отбор в отчете
накладывается по двум условиям, содержащим поля КонечныйОстаток и Коли-
чество. При выключенной функциональной опции второй элемент отбора,
содержащий условие с полем Количество, в отчете игнорируется, так как
ресурс Количество регистра накопления Продажи входит в состав функцио-
нальной опции ДанныеОПродажах.
Изменим вариант отчета - отключим настройки отбора и зададим следующую
сортировку записей в отчете (рис. 2.148).
Ва?нанг"Ва 1анг"утчете,‘0.стеткмипр ажи товаре " Демстлэ сдионная он . тцх иь "Сюте„. рСЦр^апруятие) .,Х
Вариант “Вариант** отчета “Остатки и продажи товаров1
Добавить - (3| I X 1 Ф 1 цй 1/8
Структура отчета
© Номенклатура
Началопериода
I
I
21 пар.
№ Поль..
-орт..
Все действия
2Г Доп
Текущий элемент имеет собственную сортировку (для упорядочивания записей, выводимых в элементе)
Выбрать
Все действия - ) Добавить новь,й элемент порядка
Все действия
Доступные поля
Конец периода
Начало периода
Номенклатура
Количество
: Поле
. Л Количество
Конечный остаток
Н ра пение сортировки
По возрастанию
По возрастанию
|Конччный остаток
Начальный остаток
Завершить редактирование Отмена В се д ействия т I ф
С* 3
А' |
* I
Рис. 2.148. Настройка сортировки
На рисунке 2.149 приводится результат выполнения отчета Остатки и продажи
товаров при включенной (слева) и выключенной (справа) функциональной
опции ДанныеОПродажах.
Номенклатура Продано Начальный Конечный
Начало периода остаток остаток
Жесткий диск
' Январь.2012 1,000
I Декабрь.2011 1,000
Материнская плата 1 2,00С
| Январь 2012 “г ЗДОО' 2,000'
* Декабрь. "011 1 1 3.0001
Замять 2,600
Яньарь 2012 3,000 2,000
Д* габрь '011 1 3,000
Монитор ЬСв 2,00 2,000
Декабрь.2011 1,00 _ 1,000
Январь 2012 1,00 1,000 2,000
Микрофон 2,00 8,000'
Январь.2012 2,00 8,000
Реб камерь 3,00 7,000
! Январь 2012 3,00 7,000
Итыо 7.00 21,0Ь
Номенклатура Начальный Конечный
Начало периода остаток остаток
Жесткий диск . __ 4
Январь .2012 1,000
Декабрь .2011 1,000
Материнская плата 2,000
Январь.2012 3,000 2,000
Декабрь.201*1 3,006
Монит эр ЬСО 2,000
Д кабрь 2011 1Д00
| Январь 2012 1,000 2000
Память 2.000
Г~ Январь.2012 3.000 2.000
I Декабрь.2011 3,000
Ве -камера . .. 7,000
Январь 2012 7,000
Микрофон — В.000
Январь.2012 1 8,000
{Итого 21 ДЮ
Рис. 2.149. Результат отчета
Мы видим, что при включенной функциональной опции записи в отчете
отсортированы в порядке возрастания полей Количество и КонечныйОстаток.
При выключенной функциональной опции сортировка по полю Количе-
ство в отчете игнорируется, так как ресурс Количество регистра накопления
Продажи входит в состав функциональной опции ДанныеОПродажах.
И так далее по аналогии вычисляемые поля, пользовательские поля, пара-
метры, группировки, содержащие поля, связанные с выключенными
функциональными опциями, считаются недоступными полями системы
компоновки данных и игнорируются в отчете.
Для примера продемонстрируем, как влияет значение функциональной опции
ДанныеОПродажах на результат отчетов Продажи номенклатуры и Отчет по
продажам, целиком получающих данные из регистра накопления Продажи.
Понятно, что если бы в состав функциональной опции входил весь регистр
целиком, то мы бы ничего не увидели в результате выполнения этих отчетов.
Но в нашем случае в состав функциональной опции входит измерение Контр-
агент и ресурс Количество регистра накопления Продажи.
На рисунке 2.150 приводится результат выполнения отчета Продажи номенкла-
туры при включенной (слева) и выключенной (справа) функциональной опции
ДанныеОПродажах.
л м* М-
с «ьь вариант
Все действия' ' Ц
Продажи товаров и услуг
I
Количество Стоимость
ООО "Автоматика’
’З
I I.
Ч
11500,00
1 еоо'со;
7 доело
1 Параметры Начало периода: 01.12.2011
Конецпериода: 15.12.2011
Контрагент
Номенклатура
Период
I Продажи номенклатуры
I Вариант отчета (Основной_ _
# С- '«'Мнро&г.т. [ Пй’Настройка
01122011
15122011
' ® ' Начало периода
' «С (л! Конец периода
вД. Й?* Мелкий заказ
10 000,
10 000,00
10000.01
Ю П00.И
11)1 10,00
10000,00
1 _ 10000,00
10 000,00
31 500,00
Рис. 2.150. Результат отчета
Диагностика компьютера _|_
{ 5 декабря 2011 г
[ де. 5ря 2011 г
Компьютер для дома
( 11 декабря 2011 г
ОцО‘Система1
Компьютер для офисе
I _ 9 декабря 2011 г
• ОС "Стиль"
Монитор 1.С0
! 6 декабря 2011 г.
Итог"
*
Мы видим, что при выключенной функциональной опции группировка
по полю Контрагент в отчете не выполняется и колонка Количество в отчете
не показывается, так как измерение Контрагент и ресурс Количество регистра
накопления Продажи входят в состав функциональной опции ДанныеОПро-
дажах. Также условное оформление, содержащее условие с полем Количество,
в отчете игнорируется.
На рисунке 2.151 приводится результат выполнения отчета Отчет по продажам
при включенной (слева) и выключенной (справа) функциональной опции
ДанныеОПродажах.
> Показывать данные о продажах
Лвмеат»»:я:закрыл, Все действия .
т1ГЬлагагь
Показывать данные о г^одежТ )
Отчет по г^юдажам
Вариант отчете: ' Основной
.$* €формм^*«»тъ Нестройна...
•Й ^Период __ ______
—-------------
{ । Перамвтръс Период: 01.12.2011 - 31.12.2011
Прошлый месяц
Все действия'-
Ионграгемг ,
Период мя« -
Стоимость Стоимость.' стоимость.
я »адий
группировке
Д®ка^ь
I___05422011 " 7____
г 1112 2СП1 ”
;; Мснй5рь.2М1 , - , =~_.: •. .. .
; 09.12.2011.7 ™
*- цекайрь.2011
д.. —. л ...к..
| 06.12 2Ц11
„ТоОО.СО;
10 500.00} _ 91.301
10 000 ,00 100,ЮС
10 000,001 160,№ ...
10 ооддо ~ ~ Г.100,00'
31/75-
31,75»
‘Цй*
31 75!
36ДЙ
Рис. 2.151. Результат отчета
Мы видим, что при выключенной функциональной опции группировка
по полю Контрагент в отчете не выполняется, так как измерение Контр-
агент регистра накопления Продажи входит в состав функциональной опции
ДанныеОПродажах.
Таким образом, на примере этого отчета мы научились:
получать информацию из нескольких наборов данных, связанных
по периодам,
указывать роль поля в схеме компоновки данных,
задавать заголовок поля в настройках схемы компоновки данных,
я влиять на вывод отчета с помощью функциональных опций.
Пример 11
В платформе «1С:Предприятие» есть специальный объект - План видов
характеристик, с помощью которого можно создавать механизмы для того,
чтобы пользователь имел возможность создавать и описывать произвольные
характеристики для каких-либо объектов информационной базы. Например,
для описания свойств номенклатуры пользователь может создать такие виды
характеристик, как Цвет, Качество и т. п., и задать их значения.
Система компоновки данных позволяет использовать эти характеристики
при разработке отчетов (стр. 276). То есть пользователь может отобразить
поля характеристик в отчете, установить по ним отбор, условное оформ-
ление и т. д. Для извлечения характеристик из базы данных в языке запросов
разработано специальное расширение, применяющееся только в системе
компоновки данных.
В демонстрационной конфигурации, прилагающейся к книге на компакт-
диске, реализована возможность добавления дополнительных свойств
к элементам справочника Контрагенты, таких как Категория и Регион. В каче-
стве источника характеристик используется план видов характеристик
ВидыХарактеристик, а значения характеристик находятся в регистре сведений
ДополнительныеХарактеристики.
Характеристики объектов конфигурации можно описывать и хранить в свой-
стве Характеристики этих объектов, а можно описывать в каждом конкретном
отчете. Первый способ наиболее универсален (он показан в следующем
примере на стр. 142), но в данном разделе мы покажем второй способ.
При этом если характеристики описаны в конкретном отчете, то именно они
используются системой компоновки данных.
Создадим отчет, отражающий информацию о продажах контрагентам,
и отразим в отчете эти характеристики контрагентов. Затем мы выведем
полученные данные в диаграмму с помощью конструктора настроек
(рис. 2.152).
Создадим новый объект конфигурации Отчет и назовем его ПродажиКонтр-
агентам. Откроем конструктор схемы компоновки данных и добавим новый
набор данных - запрос. Откроем конструктор запроса. В качестве источ-
ника данных для запроса выберем виртуальную таблицу регистра сведений
Продажи.Обороты. В список полей перенесем поля из этой таблицы:
Контрагент,
СтоимостьОборот.
ООО
"Авгомагика'',Ко
ролев
ООО "Атлант",
ООО
' 'Система' 'Л1 оскв
а
ООО "Стандарт",
ООО
м "Стиль",Санкт-
Петербург
Рис. 2.152. Требуемый вид отчета
Характеристики в отчете
Перейдем на закладку Характеристики. Нажмем кнопку Добавить и приступим
к описанию полей характеристик. В поле Тип введем СправочникСсыл-
ка.Контрагенты - это тип данных, для которого описываются характе-
ристики. Затем опишем источник списка характеристик. В нашем случае
им является план видов характеристик ВидыХарактеристик. Поэтому в поле
Источник видов выберем Таблица, а в поле Виды характеристик укажем
ПланВидовХарактеристик.ВидыХарактеристик. Далее следует описать назна-
чение полей источника, «поставляющего» виды характеристик. В поле Поле
ключа выберем Ссылка, в поле Поле имени - Наименование, а в поле Поле типа
значения - ТипЗначения (рис. 2.153).
' I «с н укгор запроса *
Гругпировка Условия
Дополните. Сйъединеп
Порядок |I- • мпбновк
Пакет зап
Таблицы й
(Источник
ВИДОВ
Виды характеристик
Поле ключа Поле имени П зле типа значения
-------------..—----------------------—,
Исто... ! — Значения характеристик ’А
СправочникСсылка. Контрагенты ; Таблица ПланВидовХарактеристик.ВидьКарактеристик
Ссылка
Наименование ТипЗначения
знач... • „ ; ' •_ п ’ Г~ {I
Поле обь,. < Поле виде Поле зна. ‘ I
-л-. * )
Табл... : РегистрСведений.Дополните/ъгые...; < I
! Объект I ВидХара... I
Значение
Запрос |
< Назад | Далее >
Д . Справка
I
Рис. 2.153. Описание источника видов характеристик
Теперь опишем источник значений характеристик. В нашем случае им
является регистр сведений ДополнительныеХарактеристики. Поэтому в поле
Источник значений выберем — Таблица, а в поле Значения характеристик укажем
РегистрСведений-ДополнительныеХарактеристики. Далее следует описать назна-
чение полей источника, «поставляющего» значения характеристик. В поле
Поле объекта выберем измерение регистра Объект, в поле Поле вида — изме-
рение регистра ВидХарактеристики, а в поле Поле значения — ресурс регистра
ЗначениеХарактеристики (рис. 2.154).
1
•“V
Таблицы и
Г
*
Тип
Исто.
Значения характеристик
Псч е значе 1ця
. Поле.Полет...
Таблица | РегистрСведений.ДополнительныеХарактеристики
‘ ВидХарактеристики ' ЗначениеХарактеристики,/
! Объект
Характери... ( « Пакет зап... Т
Л&ловия 0 Дрпояйнвйил.-. $ Т., Объединен;
значении I' „
' Поле .объекта Поле вида
, -ей, > « '
Констг [ .к.т<ч> зап| сж-э
видов ?'
По,
Табл..., ПланВцдовХарактери.
> Сс... . Наи... . ТипЗн
Виды хАр.аК’еоисткл /Источник
. .о;
«за?
Рис. 2.154. Описание источника значений характеристик
Нажмем ОК. В результате текст запроса, сформированный платформой,
примет вид (листинг 2.27).
Листинг 2.27. Текст запроса
ВЫБРАТЬ
ЛродажиОборсггнЖонтрагент,
ПродажиОбороты.СтоимостьОботт
ИЗ
РегистрНакопления. Прода;хи.Обороты КАК I
{ХАР^ИЙМЙ
ВИ1ЙХАРАКТЕЙСТИК ПлачВедовХара1аеристик1оды^рактерист^
ПСЙдаЮЧАСшлка
ПОЛ ЕИМЕНК ШйШз^ние
ШвЙШИМЖ
ЗНМНИЯХАРМ1Ж
ПОЛЕВИДА ВидХарактеристики
ПОЛЕЗНАЧЕНИ^ ЗначениеХарактеристики}.
После ключевого слова ХАРАКТЕРИСТИКИ здесь следует секция, в которой
для системы компоновки данных и описываются те характеристики, которые
будут использованы в нашем отчете.
Вывод данных в диаграмму
Для решения нашей задачи наиболее подходит вывод результата отчета
в виде круговой диаграммы (стр. 370), чтобы наглядно продемонстрировать
долю каждого контрагента в объеме продаж. Продемонстрируем эту возмож-
ность. Но сначала нам нужно определить ресурсы отчета (стр. 370).
На закладке Ресурсы перетащим мышью из доступных полей поле
СтоимостьОборот (рис. 2.155).
Ресурсы Парй^рыг л Макеты '' Вложенные с;<
< Настройки 1
ЗгЙ Д'.Т'Т..1*Ц1 - гСТР.
Поле
1 «» СтоимостьОборот
} Доступные поля
1:- - . — С-
I ®“ Контрагент
' Выражение
Сумма[СтоимостьО борот)
Рис. 2.155. Определение ресурсов для отчета
Рассчитывать по.
Для быстрого создания стандартных настроек воспользуемся конструктором
настроек. Для этого нажмем кнопку в командной панели схемы компо-
новки на закладке Настройки. На первом шаге выберем тип отчета Диаграмма
(рис. 2.156).
‘ Йаетяоек
к
Т ип отчета:
О Список. Данные по всем измерениям отчета выводятся списком.
(^[Диаграмма. Данные выводятся в вице диаграммы.
; г:
•^Таблица. Данные выводятся по измерениям расположенным как по горизонтали,
так и по вертикали.
: ( Далее > ; |
Рис. 2.156. Конструктор настроек. Шаг 1
ОК .. । , Отмена 11 Справка ! *.
Нажмем кнопку Далее. На следующем шаге определим поля, выводя-
щиеся в отчет. Мышью перетащим из списка доступных полей ресурс
СтоимостьОборот (рис. 2.157).
Рис. 2.157. Конструктор настроек. Шаг 2
Нажмем кнопку Далее. На следующем шаге определим поля для группировки
серий и точек диаграммы. Логически Диаграмма является совокупностью
Точек, Серий и значений серий в точке. В качестве значений выступают
ресурсы отчета, в качестве точек - объекты, для которых мы получаем
значения характеристик, в качестве серий - характеристики, значения
которых нас интересуют. Для круговой диаграммы, которую мы хотим
вывести в отчет, достаточно определить серии. Мышью перетащим из списка
доступных полей в поля Серии поле Контрагент (рис. 2.158).
Рис. 2.158. Конструктор настроек. Шаг 3
Нажмем кнопку Далее. Четвертый шаг пропустим, так как сортировка
в данном случае нам не важна. Нажмем кнопку Далее. На следующем
шаге определим тип диаграммы. Выберем круговую объемную диаграмму
(рис. 2.159).
Рис. 2.159. Конструктор настроек. Шаг 5
Нажмем ОК. В результате наших действий в окне настроек появилась
диаграмма, в сериях которой находится группировка Контрагент, определен
список выбранных полей (рис. 2.160).
Рис. 2.160. Настройки схемы компоновки данных
Откроем и выполним отчет в режиме 1С:Предприятие (рис. 2.161).
Рис. 2.161. Результат отчета
Теперь мы видим графическое представление объемов продаж по контр-
агентам. Серии - наименования контрагентов отражаются справа.
При наведении мыши на определенный сектор диаграммы отображается
всплывающая подсказка с наименованием контрагента и значением ресурса.
Однако пока мы не отразили в отчете дополнительные свойства контрагентов.
Дело в том, что в процессе настройки отчета в режиме Конфигуратор мы не
видим полей дополнительных характеристик контрагентов - Регион и Кате-
гория. Применить их мы сможем только после запуска отчета из режима
1С:Предприятие. Это связано с тем, что сначала должен быть выполнен
запрос, извлекающий характеристики из базы данных.
Выполним команду Все действия ► Изменить вариант... В открывшемся окне
полных настроек варианта отчета на закладке Поля раскроем поле Контр-
агент в списке доступных полей. Здесь мы увидим две наши дополнительные
характеристики - Регион и Категория. Перенесем в список полей поле Регион
(рис. 2.162).
Важная ’^Осювнйй?1 енгам" *Чмонстцо»ц тит ‘ягоМм .^аш- “| &," я утсНйьк ^ТЙПред^^ие)^^
7
Л
В риант ‘'Основной’’ отчета "Продажи контагентам"
Добавить ’ ! 1 X | §й ВЭ
Структура гчета
Все действия
г
Й Поль.»
3 Депол
«V; Текущий элемент имеет собственные настройки выбранных полей (для детьльн >й настройки элемента)
Р ©Ы. Диаграмма
Точки
© Серии
©шз Контрагент
)
Выбрать
Все действия
^Добавить новое поле , Сгруппировать поля | X • ♦ Все действий
Дотупнькполя
Контрагент
НМ
К»
/№В
Версия данных
Категория
Код
Наименование
Пометка удаления
Предопределенный
Регйо!
Родитель
Зто группа
г:
_
‘Поле
.2
* & Выбранные поля
й ' Л Стоимость Оборот
!<Л
.« К о1-тр.агент.Р^гион
и в
и $
з &
!
!
.'Завершить Отмена ) Еседействия * ?
Г
2
Рис. 2.162. Диалог настроек варианта отчета
Нажмем Завершить редактирование и сформируем отчет (рис. 2.163).
ООО "Атлант11
ООО
ш "Система1‘,М оскв
ООО
Д| "Аэтомагика",Ко
ролев
Гыбр? .ь вари= "
В се действия »;
ООО
О "Стиль'Ханкт-
Петербург
Продажи контрагентам
----------——
Вариант отчета [С'сновнои
> Сфсрми )ов<ль Настройка
|«ь ’з гПр^атйй;крнтрагёнт^ Демотстраи 1рнна, 0С:П 'едтфит^ив)
Рис. 2.163. Результат отчета
Мы видим, что характеристика контрагента Регион теперь отражается рядом
с его наименованием. Заметьте, что характеристика отражается не для всех
контрагентов, а только для тех, у кого есть соответствующая запись в реги-
стре сведений Дополнительные характеристики. Так происходит потому,
что в запросе (см. рис. 2.154) мы описали именно такой способ хранения
значений характеристик (рис. 2.164).
Дополнительные характеристики Создать ; & X I Найти... | Все действия » :
[Объект 'Вид характеристики ‘ . .<=~еГОрй> I Значение характеристики Г осгоянный партнер Ж- у
ООО "Автоматика" Регион Королев
[йё? ООО "Система" ; Категория Зарубежный партнер
ООО "Система" Регион ГМосква
I р00 "Стиль" Категория Постоянный партнер
ООО "Стиль" Регион ' Санкт-Петербург
[ , . _ *
Рис. 2.164. Значения характеристик контрагентов
Однако настройки, сделанные в режиме 1 С:Предприятие, не сохраняются
в настройках по умолчанию схемы компоновки данных. Поэтому, чтобы
в дальнейшем использовать характеристики контрагентов в нашем отчете,
нужно сохранить их.
Сохраним сделанные изменения в новом варианте отчета. При закрытии
отчета запрос о сохранении варианта появится автоматически, или можно
выполнить команду Все действия ► Сохранить вариант... (рис. 2.165).
ах'й1 а риант ргчета-Де.. 1 .-отнятие <
Сохранение варианта отчета
Ранее сохраненные варианты
Рис. 2.165. Сохранение варианта отчета
В дальнейшем вариант отчета Характеристики будет формироваться с учетом
характеристик контрагентов. Следует понимать, что этот вариант отчета будет
доступен только конкретному пользователю, создавшему новый вариант.
Итак, мы получили графическое представление объемов продаж по контр-
агентам в виде круговой диаграммы. А также мы вывели в отчет
характеристику контрагентов Регион.
Пример 12
Создадим отчет, который будет отражать объем продаж по контрагентам
с детализацией данных за указанный период (рис. 2.166).
Контрагент Период. месяц Пей*день™ Стоимосп Стоймаст >. Ъ д группировке СТОИМОСТЬ.% общий
ев 'вова *1 со ”Ап ' митинг** 11 500,06 38.5'. . _ 30,51
Декабрь.2011 11 500,00 109,00 36,51
05.12.2011 1 000,00! 8,70 3,171
11.12.2011 10 500,00 91,30 33,331
ЛИЧММВДИ1 ООО "ХЗис-ена” 18600,00 ад
Декабрь. 2011 10 000,00 100,80 .31,75;
09.12.2011 10 000,00 100,00 31,75'
(0000000071 ОООХтИЛЬ" 10000,00 31,75 31,75;
I Декабрь.2011 10 000.00 100,06 31,75
06.122011 10 000,00 100,00 31,75;
| Итога 31 ЗСО.ОО 100 00 100.00 |
Рис. 2.166. Требуемый вид отчета
Для этого нам потребуется извлечь данные из оборотного регистра Продажи.
Создадим новый объект конфигурации Отчет и назовем его ОтчетПоПро-
дажам. Откроем конструктор схемы компоновки данных и добавим новый
набор данных - запрос. Откроем конструктор запроса. В качестве источ-
ника данных для запроса выберем виртуальную таблицу регистра накопления
Продажи.Обороты. Вызовем диалог параметров виртуальной таблицы.
Для этого в списке таблицы нужно нажать кнопку Параметры виртуальной
таблицы.
Детализация в выбранном периоде
В открывшемся окне параметров зададим значение параметра Периодич-
ность -Авто (рис. 2.167).
Рис. 2.167. Установка параметра «Периодичность»
В список полей перенесем поля из таблицы Продажи.Обороты:
ПериодДень,
н ПериодМесяц,
н Контрагент,
КоличествоОборот,
СтоимостьОборот.
На закладке Объединения/Псевдонимы изменим имя у полей Количест-
воОборот, СтоимостьОборот на Количество, Стоимость. Нажмем ОК и вернемся
в конструктор схемы компоновки данных. Мы видим, что на основании
запроса платформа заполнила доступные поля набора данных и для полей,
являющихся измерениями регистра, задала вид роли Измерение, а для полей,
связанных с детализацией по периодам, - вид роли Период. Напомним,
это обусловлено тем, что свойство Автозаполнение (стр. 346) включено
(рис. 2.168).
Вг исляекьк поля
.! ? П
ь 1 ’ Ме тгы
Поля @ Ш & м
•Поле (Путь Ограничение поля ! Роль рВыражек...! Проверка иерархии
5 ; Аэтозаголовок Л...' г 'граничение рек. . п*..?у.Лг...Й. ? г ! Выражения * Набор данных 1'п.раметр л. 0... ..
=»; ПерисдДень / 3 1 ; ПериодДень ;О Период, день □ □ □ ГПериод.1, Доп' ..л .
и»- ПериодМесяц ПериодМесяц 1 Период., месяц □ □ □ □ # | Период, 2, Доп / I
к «и»; Контрагент (Контрагент АсгсНй г _
Контрагент I 1
«и-Номенклатура 1 Номенклатура О Номенклатура х / П Й # П з?
Н «®> Стоимость • I I Стоимость Стоимость □ О □ \ \ Й Й. ’Ж 1 ; ;
Н Количество 1 ' Г ! Количество {й Количество о □ □ □ ’ЙГ м. г ! । *
У : .... - тг'Тг 5
; Запрос: Конструктор запроса...
РегистрНакопления.Продажи.Обороты(
Наборы данных
Г
Авто, ) КАК ПродажиОбороты
Наборы данных , СЕЯ^наооровд.
ВЫБРАТЬ
ПродажиОбороты.ПериодДень,
ПродажиОбороты.ПериодМесяц,
ПродажиОбороты.Контрагент,
ПродажиОбороты.КоличествоОборот КАК Количество
ПродажиОбороты.СтоимостьОборот КАК Стоимость
Рис. 2.168. Автозаполнение доступных полей набора данных и их свойств
Рассмотрим свойства Роли (стр. 365) у поля ПериодМесяц (рис. 2.169).
Здесь установлено, что поле является периодом. Его порядковый номер - 2,
так как самое «младшее» поле, в нашем случае ПериодДень, имеет поряд-
ковый номер 1, его родительский период - 2 и т.д. Тип периода может быть
Основным и Дополнительным. Установка типа периода в значение Допол-
нительный говорит о том, что поле не должно обязательно использоваться
в компоновке, если в отчете использованы его дочерние периоды. Иначе при
использовании в отчете дочернего поля в группировке должен присутство-
вать и его родительский период.
Рис. 2.169. Окно свойств роли поля-периода
В колонке Оформление зададим формат поля ПериодДень, чтобы дата отобра-
жалась без времени (рис. 2.170).
I Значение
А
О
□
Текст
О
□
| Параметр
. = - "и-ибл. • п
□ | Авгоотстдп
[ Горизонтальное положение
~~ ~ л!
О’> Вертикальное положение
□ Размещение
О; Ориентация текста
0; Формат________
О' Выделять отрицательные
Отметка незаполненного
Минимальная ширина
Максимальная ширина
Минимальная высота
Максимальная высота
Прижать влево
Прижать вверк
Забивать
Ложь
Ложь
Рис. 2.170. Формат поля «ПериодДень»
Для этого можно воспользоваться конструктором, а можно это сделать
вручную, отредактировав строку Формат. Для поля ПериодМесяц введем выра-
жение (листинг 2.28).
Листинг 2.28. Формат поля «ПериодМесяц»
Выражения для представления полей
Система компоновки данных позволяет определять выражения для пред-
ставления полей в отчете (стр. 356). Например, мы хотим отображать код
контрагента в скобках слева от его наименования. Для поля Контрагент
в колонку Выражение представления введем следующий текст (листинг 2.29).
Листинг 2.29. Выражение для представления в отчете поля «Контрагент»
(‘^Контрагент Ход*'’) "+Контрагент.Нал^»новслние
В результате выражение представления для поля Контрагент примет вид
(рис. 2.171).
Поле Путь Ограничен»- е п ля Роль
| Автэиаголоьок П... У...
I I < и. I ск |
Ограничение рек...
Ч .. г. 14. ьЬи-С 118;-4л- и. -ЧхнЗЧА.<*’» а., м,,,
«»! ПериодДень ; ПериодДень 1 :О О □ □ Период, 1, Доп
л 1 с Период, день ‘ > ;
«•; ПериодМесяц ; ; ПериодМесяц : : б б О П I Период, 2, Доп
» ; ;Г~] Период, месяц ; : V * » ;
®=; Контрагент ! ; Контрагент ; О , □ ‘ ' О ; Измерение
Г 1 1 1 ? 1 / л _ _ ! |О’ Контрагент • [ ( __ 1 бУсУбТб! । ;
=» ; Номенклатура ! । Номенклатура : & □ & ;
! 1 _-Г. , .! ;СЗ Номенклатура * О 8?
«»: СТОИМОСТЬ । ! Стоимость ; !
! 1 1@ Стоимость ‘ ; 'й*. < 0 ;
Количество ; I Количество I □ □ С □; ~
’Т'+КонтраТенг.Код+”1
* ечт Наиме зиме
I Выражение представления
| Выражения упорядочивания
г
1
Рис. 2.171. Выражение представления для поля «Контрагент»
В выражении для представления можно также использовать функции
из общих модулей. Чтобы функцию можно было использовать в схеме
компоновки данных, необходимо, чтобы в ее описании присутствовало
ключевое слово Экспорт.
Перейдем на закладку Ресурсы и определим доступные поля ресурсов отчета
(стр. 370).
. с
Настройй< > I
Чоле
I Рассчитывать по
Доступные поля
“ Стоимость
Набсйыданных . ) . Связи наборов д..' . 3 Вычисляемые поля . { Ресурсы 1 ^црамг р «» Макёты В ( Вл женные схемы-
Выражение
' < О. - '->4 ,-ХТ-й-Сй
| Сумма(Количество)
' Сумма[Стоимость)
“ Контрагент^
=» ПериодДень
вв ПериодМесяц
«» Стоимость
Продемонстрируем использование стандартного периода для указания
периода отчета (стр. 378). На закладке Параметры добавим параметр
с именем Период типа СтандартныйПериод, а для параметров НачалоПериода
и КонецПериода укажем Выражение для расчета и запретим их редактирование
пользователем (листинг 2.30).
Листинг 2.30. Выражение для расчета параметров
«НачалоПериода» и «КонецПериода»
йПериод, Дата! 1ачг па
&Период.ДатаОкончания
Заметим, что даты начала и конца стандартного периода также содержат
и время. Однако здесь, в отличие от параметров НачалоПериода и КонецПе-
риода, начальная дата имеет время 00:00:00, а конечная дата - 23:59:59. Таким
образом, последний день включается в отчет, и не нужно использовать
функцию Конецпериода (). В результате параметры компоновки данных
примут вид (рис. 2.173).
", Отчет С тчетПоПродйжам- О нови яС я *иаКомпоновкиДанн1 &
Наборы данных < Связи таборов д..
вычисляемые поля
Ресурсы 1 Параметры Макеты
Вл же <ны< с^емы
Настройки
Имя
Заголовок
Доступн... ] Д--' Значение I Выражение
< НачалоПериода Начало период; Дата
:..... --.......... "(
! КонецПериода Конец периода Дата !
Период ' Станд< ртнь «Период
сЛериод. ДагаН ачала
.^Период. ДатаОкончания
Г) Авто
-
7Т
I *
г-
Рис. 2.173. Определение параметров отчета
Определим структуру отчета. На закладке Настройки выделим корневой
элемент Отчет и добавим в него группировку по полю Контрагент. Затем
добавим вложенную в нее группировку ПериодМесяц. Выделим группи-
ровку ПериодМесяц и добавим вложенную в нее группировку ПериодДень.
На закладке Выбранные поля перенесем из списка доступных полей поля
(рис. 2.174):
Стоимость,
и Стоимость.ПроцентВГруппе,
Стоимость.ПроцентОбщий.
Настройки ! •
*5 О) Отчет
Настройки: (ЁЙШт., Контрагент
Пар<аметры' т |
Доступные поля
Рис. 2.174. Определение полей и группировок отчета
2 Имя-зариа тга I Предсгаеле...
Основной
кйэнгрзгант
Э Й61ви ПериодМесяц
ПериодДень
Стоимость
3
3
3
3
3
3
ПроцентВИерархии .
ПроцентВИерархииВ^
Пфгидам,. Ыслйы.о<&./.?:' Пользоват.. Л ^Дй?Ж-НЖ
[Поле
. - Эа-с-с. Ч миЛМХ* в, .ВО.
! О Выбранные поля
И;
ПроцентВИерархииВ^ | @>
за ь г
ПроцентВГруппеВКот[ е ,
ПроцентВГруппеВСтЦ '
ПроцентЕКолонкеИлт' :
ПроцентВ СтрокеИ ли(р *-
ПроцентОбщий ;»г
3 Стоимость.ПроцентВГруппе
3 Стоимость.ПроцентОбщий
3
Р
На закладке Параметры установим значение параметра Период - Прошлый
месяц и включим этот параметр в состав быстрых пользовательских настроек
(рис. 2.175).
«• «безыдейных
Настройки I I
Макеты я ВлзженнжсхейЬ|
Вычи ляемые поля 1 | Рёедрсы й Пер- зтры
Ы] Отчет
Включать в пользовательские насгрсйки; @
[быстрый «осту г
>Щнтрагент
Представление
Режим редактирования
ч @взэ ПериодМесяц
ПериодДень
I Настройки 1Йгчет Контоагент
г: Параметры'^ Iь Выбранное.,.
> Имя варианта: Представле...
Основной
; | С Отображать недоступные параметры [устанавливать значения недоступных параметров не рекомендуется) |
Заметим, что реальные значения дат стандартного периода определяются
во время исполнения отчета. Поэтому период отчета будет автоматически
меняться в зависимости от фактической даты запуска отчета. Пользоваться
стандартным периодом отчета удобно, когда пользователь регулярно выпол-
няет отчет за определенный интервал времени, например текущий месяц.
Тогда можно заранее установить в настройках нужный период, и пользова-
телю не придется задавать его перед формированием отчета. В нашем случае
нам нужны данные за прошлый месяц.
ПРИМЕЧАНИЕ
Использованный в книге стандартный период в момент выполнения
примера может измениться и не содержать данных для отчета. В этом
случае его нужно откорректировать.
На закладке Другие настройки установим макет оформления отчета (стр. 393) -
Море. Выполним отчет (рис. 2.176).
г' у 7 Отчет пь.продёяамл ,.ЛЕ:Предпрняти&; й- С ’л
Отче г по продажам ।
Вариант отчета: 'Основной ] В тбраъ вариант л ।
Настройка... Все действия ” (। 9
(ЕЕ ] Период Прошлый месяц
,.±1 Л Параметры Период: 01.12.2011 - 31.12.2011 >: 1
Кон ( регент Стоимость Стоимости Л Стоимость.% Г’ ' к
Период. месяц в общий । '
Парим 7-нмь «руппировке
й (ОТя)иОРн(Ц) "Автгма гика’ ЧОДЮ Ш 36,51 1
Декаб^.2011 -«1 500,00 100.00 36,51
I I т 05.12.2011 1 000,00 8,70 3,17
I * I 1 1 11 12.2011 10 500,00 91,30 33,33
ДОВДНОД 1*в0П-вв 31
1 I а Декабрь.2011 ”” Т»б0б,00 1008' 31,75:
1.1 09.12.20’11 10 000,00 100,00 31,75 < V-
I—1 * 0О< ‘ . ,31,7‘5:|
13 Декаорь.2011 10 000,081 100X0 31,75
к т 06.12 2011 10 000,00 100,001 31,751
Итого 31 500,00 100,0Л 100 ВО
1 1 1
гп г. < .. .. . . ... . ... ... ... ..... I ! &
$
Рис, 2.176. Результат отчета
Мы видим, что представление поля Контрагент и формат полей периодов
соответствуют заданному, а также в отчет выводятся системные поля, отра-
жающие для каждой группировки процент от общей стоимости продаж
и процент от стоимости продаж в группе.
Характеристики в метаданных
Теперь на примере отчета Отчет по продажам продемонстрируем работу
с характеристиками объектов с помощью системы компоновки данных
(стр. 276). Пользователь может отобразить поля характеристик в отчете,
установить по ним отбор, условное оформление и т.д. Для извлечения
характеристик из базы данных в языке запросов разработано специальное
расширение, применяющееся только в системе компоновки данных.
В демонстрационной конфигурации, прилагающейся к книге на компакт-
диске, реализована возможность добавления дополнительных свойств
к элементам справочника Контрагенты, таких как Категория и Регион.
Характеристики объектов конфигурации можно описывать в свойстве Харак-
теристики этих объектов, а можно описывать в каждом конкретном отчете.
Второй способ показан в предыдущем примере на стр. 126, но в данном
разделе мы покажем первый способ, являющийся наиболее универсальным.
При этом если характеристики описаны в самом объекте конфигурации,
то все отчеты и динамические списки, основанные на системе компоновки
данных, могут использовать эти характеристики.
В этом примере мы покажем другой (отличный от предыдущего примера)
способ хранения характеристик контрагентов. Здесь в качестве источника
характеристик используется план видов характеристик ВидыХарактеристик,
а значения характеристик находятся в табличной части Дополнитель-
наяИформация справочника Контрагенты. Данный способ хранения
характеристик контрагентов описывается в свойстве Характеристики справоч-
ника Контрагенты (рис. 2.177).
Рис. 2.177. Описание дополнительных характеристик справочника «Контрагенты»
Подробнее о дополнительных характеристиках объектов конфигурации
и способах их хранения можно прочитать в книге «Реализация прикладных
задач в системе 1С .Предприятие 8.2» из серии «Профессиональная разра-
ботка».
Однако применить характеристики контрагентов мы сможем только после
запуска отчета из режима 1С:Предприятие. Это связано с тем, что Сначала
должен быть выполнен запрос, извлекающий характеристики из базы
данных.
Откроем отчет в режиме 1 С:Предприятие. Выполним команду Все действия ►
Изменить вариант... В открывшемся окне полных настроек варианта отчета
на закладке Поля раскроем поле Контрагент в списке доступных полей. Здесь
мы увидим две наши дополнительные характеристики - Регион и Категория.
Перенесем в список полей поле Регион (рис. 2.178).
Дз-энаг ийсйб№бй"отяета" Отчет продажам” Дем™ётрвц,юцн» :Предп иягйе!.
Вариант "Основной’ отчета “Отчет по продажам”
I
Добавить ’ | { X ! • Ф < >
Все действия ’
Структупа отчета
& й1333 Контрагент
© Период, месяц
Й13® Период, день
I *у| Парат I.
ей Пользе .
Условн... 1! [1^ Депол.
I
Текущий элемент имеет собственные настройки выбранных полей {для детальной настройки элемента]
Выбрать
Все действия ▼ Добавить новое поле Сгруппировать поля Г X I ’Ш' | Все действия
1
Доступные поля
Контрагент
“ Версия данных
Дополнительная информация
Категория
Код
Наименование
Пометка удаления
Предопределенный
Поле
I —
1 & Выбранные поля
2 Стоимость
# Стоимостью в группировке
Стоимость.^ общий
Ко)тг;аг нтРег о<
Г
№Я
Регион
®® Родитель
Завевшьт- ...едак иро» анм< Отмена ; Все действия » ! ?
«соя . - .*
Рис. 2.178. Диалог настроек варианта отчета
Нажмем Завершить редактирование и сформируем отчет за период - Этот месяц
(рис. 2.179).
Мы видим, что характеристика контрагента Регион теперь отражается рядом
с его наименованием. Заметьте, что характеристика отражается не для всех
контрагентов, а только для тех, у которых характеристика Регион описана
в табличной части ДополнительнаяИформация справочника Контрагенты
(см. рис. 2.183). Так происходит потому, что в свойстве Характеристики спра-
вочника Контрагенты (см. рис. 2.177) описан именно такой способ хранения
значений характеристик.
Рис. 2.179. Результат отчета
Поскольку характеристики аналогичны другим реквизитам поля Контрагент,
то управлять их выводом можно на закладке Дополнительные/Другие настройки
(стр. 426).
Параметр
О->
Макет оформления
Расположение итогов
Расположение полей группировок.
Расположение группировок
; Значение
Море
Авто
Вместе
Начало
Расположение ресурсов
Расположение общих итогов по горизон...
Расположение общих итогов по вертикали
Т ип заголовка полей
Вместе
Отдельно
л чцон
С ! © Тип диаграммы
В специальной позиции
Г исгограмча объемная
о1
ладетъэдм
□ :
□
□
Рис. 2.180. Диалог настроек варианта отчета
Теперь используем в отборе характеристику Категория. Выполним команду
Все действия ► Изменить вариант. В открывшемся окне полных настроек
варианта отчета на закладке Отбор создадим новый элемент отбора по полю
Категория со значением Постоянный партнер. Нажмем кнопку Свойства элемента
пользовательских настроек и включим отбор в состав быстрых пользователь-
ских настроек (рис. 2.181).
Вариант "Основной" отчета "Отчет по продажам"
Добавить »| Ь1! X | % |
I ( Сшуктура отчета
I
е 63е® Контрагент
© 0й33 Период, месяц
Щнп Период, день
Все действия
г'-------------
I______________
(Быстрый доступ
ОК Отмена
Представление:
Режим редактирования
Ц] Добавить новый элемент | Сгруппировать условия | М | чЖ) Все действия
Вид равнения Значение
«- г - - Айм.»
^ЯН9 ИМ ‘□Ивга “
I-.. 1 ? Т^.ПрЛЯ. Отбор I , Сорп^).,,. * Г^.&6Л0ВН*;
Пользовательские настроили элемента *
Включать в пользовательские настройкЛЬг)
Текущий элемент имеет собственный отбор (для фильтрации записей, выводимых в элементе]
Выбрать
Все действия
Доступные поля
Э «« Контрагент
«» Версия данных |
@ (33 Дополнительная инфо... |
*
'Поле
1 © Отбор
лонг 1 етгсКетег ня Равно:
Категория
в» Код
«» Наименование
(V
।
у
I
ь
Завершитьредактирование' Отмена : Все действия » < *?
Рис. 2.181. Диалог настроек варианта отчета
Нажмем Завершить редактирование и сформируем отчет (рис. 2.182).
Отчет по продажам
Вариант отчета: (Характеристики
»»>
{., Выфатьвариант...^;
Все действия»; ‘7
С'чоэмнрс зт*г | Настройка...
I® $ * Период Этот месяц
Км* Ц Контрагент.Категория ; Равно ; Постоянный партнер 1
!« 1
1
(Параметры: Период: 01.01.2012-31.01.2012
Ютбор: Контрагент.Категория Равно “Постоянный партнер'
Кситрагент, Регио» Период, месяц Яй»рмо г. лень Стоимость Стоиместь.% в группировке Стоимость.’ >бший
<Х>. "Дтлшя” Н "'«Ва , . УМЮ,00 Й1Л.00 ... •
г Январь2012 * 3000,00 100,80 100,00
13.01.2012 4 000,00, 44,44 44,44
15.01.2012 5 000,00 55,56 55,56
| И'лге 9 ИНИД*» 1 3 ’ОШвНЛ1!’!
т
С.
I
Мы видим, что в отчете присутствуют данные только по тем контрагентам,
для которых значение характеристики Категория (в табличной части Дополни-
тельнаяИформация справочника Контрагенты) соответствует заданному отбору
(рис. 2.183).
Рис. 2.183. Дополнительные свойства контрагента
Однако настройки, произведенные в режиме 1С:Предприятие, не сохраняются
в настройках по умолчанию схемы компоновки данных. Поэтому, чтобы
в дальнейшем использовать характеристики контрагентов в нашем отчете,
нужно сохранить их.
Поскольку мы изменяли настройки варианта отчета, то вопрос о сохранении
варианта отчета автоматически появится при закрытии отчета. Можно сохра-
нить сделанные изменения в новом варианте отчета, и в дальнейшем этот
вариант отчета будет формироваться с учетом характеристик контрагентов
(рис. 2.184).
гипэненш гарианта отчета - Де... (1С:Предпдиягий
Сохранение варианта отчета
Рис. 2.184. Диалог сохранения настроек
При этом если редактировался вариант отчета, созданный разработчиком
в схеме компоновки данных, то предлагается сохранить изменения настроек
в новом варианте отчета. Дальнейшие изменения нового варианта по умол-
чанию сохраняются в нем же. Это удобно, чтобы стандартный вариант всегда
оставался таким, как его создал разработчик, в качестве образца, к которому
всегда можно вернуться. Если же пользователь хочет самостоятельно выбрать
вариант для сохранения изменений, то ему нужно выполнить команду Все
действия ► Сохранить вариант...
Следует понимать, что вариант отчета Характеристики будет доступен только
конкретному пользователю, создавшему этот вариант, в то время как вари-
анты отчета (Основной, Динамика продаж), созданные разработчиком в схеме
компоновки данных, будут доступны для всех пользователей прикладного
решения.
Вывод всех дат в периоде
Посмотрев на результат отчета, можно заметить, что в отчете выводятся
только те дни, которые имеют ненулевые записи в регистре накопления
Продажи. Чтобы этого избежать, нужно указывать для группировок дополнение
периодов. Использование дополнения периодов позволяет детализиро-
вать данные в отчете с заданной периодичностью в указанном интервале
стр. 265.
Для большей наглядности динамики объема продаж контрагентам восполь-
зуемся диаграммой типа График. Для этого создадим новый вариант отчета
Отчет по продажам и на его примере продемонстрируем возможность детали-
зации данных в выбранном периоде.
Вернемся в конфигуратор и откроем схему компоновки данных на закладке
Настройки. Чтобы добавить новый вариант, нажмем кнопку Добавить слева
над списком вариантов отчета. Зададим имя варианта и его представление как
ДинамикаПродаж и создадим настройки нового варианта отчета.
Выделим корневой элемент Отчет, нажмем кнопку Добавить в командной
панели и добавим диаграмму (стр. 255). Затем выделим ветку Серии и добавим
в нее группировку по полю Контрагент, а в ветку Точки - группировку Пери-
одДень. На закладке Выбранные поля перенесем из списка доступных полей
поле Стоимость (рис. 2.185).
На закладке Параметры установим значение параметра Период - Прошлый
месяц и включим этот параметр в состав быстрых пользовательских
настроек.
ДинамикаПродаж ИЙЯВ531
а
Лодьзбва.
[Редактируются настройки текущего элемента структуры р
Д Отчет
Э @1и. Диаграмма
6 Точки
в Серии
®в® Контрагент
$ Настройки: Отчет- ПериодДень
! ГгС. ‘-л.; г
Ойви&ъ&эдевд Параметры '. Макеты ?Вх^ёжые.схёмы I Настройки [я
5
а. -«а _ л ы Я& -. Из? (.чЗ гм . 1Ш иЬ
Имя варианта Представление
Основной | Основной
'доступные поля
$- • : - ^ргЯс.-
Контрагент
ПериодДень
ПериодМесяц
Количество
< 6> Выбранные поля
Стоимость
40
<3
СистемныеПоля
П араметры Данных
Рис. 2.185. Настройка структуры отчета
На закладке Другие настройки дадим отчету заголовок Динамика продаж и уста-
новим тип диаграммы - График (рис. 2.186).
I (араггст
> ВыбраИй.... I Отбор! .о-ттр оь . :? у Условней..- Пбльэова..
-гт, _-ггч’-’--!етг'“т^ .
Другие н... ;
Рис. 2.186. Настройка типа диаграммы
Запустим отчет на исполнение в режиме 1 (^Предприятие. В открывшемся
окне отчета нажмем кнопку Выбрать вариант... Выберем вариант Динамика
продаж и сформируем отчет (рис. 2.187).
Из диаграммы видно, что дни, за которые отсутствовали движения, в отчет
не выводятся. Поэтому сложно визуально оценить динамику изменения
продаж в отчетном периоде. Чтобы изменить ситуацию, введем Дополнение
для группировки диаграммы ПериодДень. Для этого достаточно выделить
ее и двойным щелчком мыши вызвать диалог редактирования ее свойств.
Укажем Тип дополнения - Неделя (рис. 2.188).
Сгчет.по продажам
Отчет по продажам
Вариант отчета: I Динамика продаж
С^дармировет®? | 8^ Настройка...
Прошлый месяц
Динамика продаж
?
3 к.^ь^ать. вариант.
Вселей-твия -1
Параметры: Период: 01.01.2012 - 31.01.2012
Рис. 2.187. Результат отчета
Лчля г. я ф ьми
Г
правк<
1 Отмена
Рис. 2.188. Установка типа дополнения группировки «ПериодДень»
После этого следует указать, в каком периоде будет выполняться это допол-
нение. В поля, расположенные строчкой ниже, можно ввести даты начала
и окончания этого периода. Но вряд ли стоит задавать эти даты в явном виде,
так как пользователь может получить отчет за произвольный период. И нам
нужно, чтобы дополнение выполнялось именно в этом, заданном пользова-
телем периоде. Для этого войдем в режим редактирования поля Начальная
дата периода, дважды щелкнув на нем мышью. Нажмем кнопку очистки х‘,
затем кнопку выбора типа данных и выберем тип данных Поле компоновки
данных (рис. 2.189).
Рис. 2.189. Выбор типа данных
Теперь нажмем в поле ввода кнопку выбораи в открывшемся окне выбора
поля укажем параметр НачалоПериода (рис. 2.190).
Рис. 2.190. Выбор поля
Аналогичным образом укажем, что Конечная дата периода дополнения будет
получена из параметра КонецПериода (рис. 2.191).
Теперь выполним отчет и увидим диаграмму, отражающую динамику продаж
по контрагентам с периодичностью в неделю (рис. 2.192).
Отчет по продажам
Вариант отчета: 1 Динамика продаж
гормиреват1 Настройка...
] 1 Выбрать. - аркан-
Все действия 1 Л
га- — - - .... 1Е - ----
I* я~-Л Период . ,
I
I
Динамика продаж
Параметры: Период: 01.01.2012 - 31.01.2012
Рис. 2.192. Результат отчета
_ Л
А
Таким образом, на примере этого отчета мы научились:
а указывать роль поля в схеме компоновки данных,
а определять выражение для представления полей в отчете,
я использовать стандартный период для параметров периода отчета,
я использовать характеристики в отчете,
я указывать дополнения периодов для детализации данных в отчете и пред-
ставлять эти данные в виде диаграммы.
Пример 13
На примере этого отчета мы продемонстрируем другие, не рассмотренные
ранее возможности системы компоновки данных, а также использование
в схеме компоновки вложенного отчета. Разработаем простой отчет, пред-
ставляющий список услуг фирмы и соответствующую информацию из отчета
продаж номенклатуры для каждой услуги (рис. 2.193).
Список услуг
|Код
(Наименование
'Контрагент
Н тменгс.атура
Перисч
.ООО "Атлант1
000000014
Ремонт компьютера
Количество Стоимость
„я
1
зооо.оо.
| _Е?МОНТ компьютера 3000.0'.
| 13 января 2012 д_ 11 * 3 000,00
;ООО'Огандаьт" ./3000.00
I ^Ремонт компьютера _ । [ зооо.оо] 3000,00;
14 января 2012 1I
Итого:
;Код
! Наименование
<онтрагент
Номенклатура
Перичд
2 6 00р ОО
000000016
Восстановление дачных
Количество Стоимость
.ООО "Атлант" ____ ._.___
I Восстановление дани-,
15 января 2012 г !
Итого ... . 2'
1* 5000,00
1 ’ 5 000,00
Т] 5 000,00
Рис. 2.193. Требуемый вид отчета
1
5 '00'
Создадим новый объект конфигурации Отчет и назовем его ОказаниеУслуг.
Откроем конструктор схемы компоновки данных и добавим новый набор
данных - запрос. Откроем конструктор запроса. В качестве источника данных
для запроса выберем объектную таблицу справочника Номенклатура. В список
полей перенесем поля из этой таблицы:
Ссылка,
я Код,
Наименование.
Поле Ссылка нам понадобится в качестве ссылки на вложенную схему компо-
новки данных. Перейдем на закладку Условия, раскроем таблицу Номенклатура
и перетащим мышью поле ВидНоменклатуры в список условий. Оставим пред-
ложенное условие по умолчанию. Это условие нам нужно, чтобы в отчете
отражались только услуги из справочника номенклатуры (рис. 2.194).
Нажмем ОК и вернемся в конструктор схемы компоновки данных. На закладке
Параметры мы видим параметры компоновки данных, созданные платформой.
Для параметра ВидНоменклатуры по умолчанию установлен тип Перечис-
лениеСсылка.ВидыНоменклатуры и установлена его недоступность
для пользователя. Зададим значение параметра по умолчанию - Перечис-
ление. ВидыНоменклатуры. Услуги (рис. 2.195).
Я .гч? «“л-....... Л Группцзовке .
ЛгО-Ай-еЛ^ —11' " 1*4» >г>-'ЧЬ
! Номер; П... Усювие
4 ч. - • 1 — - —
Поля
в ПГ1 Номенклатура
га Ссылка
“ ВерсияДанных
““ ПометкаУдаления
438 Предопределенный
® е» Родитель
=® ЗтоГрута
™ Код
«« Наименование
4 I
1 О
А:
МойРодигель
г
.! Объ^ инен.
Пакет запр...
Порядок ' | Когдажж.» .1 Хгралерис.
.Назад
: ВцдНомежлатуры
Рис. 2.194. Создание условия запроса
О Дгче ТЛказанмеШлжг снови 'х©маКомгижсвкмДанг.„1н .... .. ......
йа , » данный % |. вязи наборов дайны;;. - Вьнйвдяа ь ПОЛЯ Йлдосы |
Имя
Заголовок
Тип
| ВидНоменклатуры { Вид номенклатуры ‘ ПеречислениеСсытка ВидыНоменк
Г8:....Тп~Тв
! Д. . Д„.| Значение
‘ -' «ж:.
Вложенные схемы ' $ Настройки 8
81 Параметры ( 3 Макеты 1
С-л - -»4Й
Рис. 2.195. Параметры компоновки данных, созданные платформой
Определим структуру отчета. На закладке Настройки выделим корневой
элемент Отчет и добавим группировку без указания группировочного поля
ДетальныеЗаписи. Затем на закладке Выбранные поля перенесем из списка
доступных полей поля (рис. 2.196):
Код,
Наименование.
. аьр'* ' "" '.=< ' ' *
'1, Нтче .0 ^заниеУс'туг . ОедгдайагСжнЖдаприовкйДанных
.; Набёрьгданйь&' Ш®ннйбф1Ж^^ Вычирляемае
' . ® ж » >
г~г~'~~—~— г~------ а
I Имя вари=1 ; Представл
' Поле
I.
са»
11у>;
•чет, <Детальныезаписи>
Ссылка
СистемныеПоля
П араметрыД энных
| Настройки:
Сорти^..я-а 11- Условное.
Параметры 2 ( Выбранны...
Выбранные поля
=» Код
<аа>
Р] I Достуглые.поля
1 I I о» Код
Пользовё ., Другие на.
ез
©
На закладке Сортировка укажем, что данные в отчете будут упорядочиваться
по полю Наименование. Для этого перенесем это поле из списка доступных
полей в список сортировки. Но вместо стандартного представления для
этого поля на закладке Наборы данных мы зададим собственное выражение,
по которому и будет проводиться упорядочивание записей в отчете (стр.
419). Нажав кнопку выбора для поля Наименование в колонке Выражение
упорядочивания, вызовем диалог его свойств, который содержит:
» Выражение - текст выражения на языке выражений системы компоновки
данных;
и Тип упорядочивания - по убыванию или по возрастанию;
Необходимость упорядочивания — флажок для определения упорядочи-
вания ссылочных полей.
Нажмем кнопку Добавить и введем в колонку Выражение следующий текст
(листинг 2.31).
Листинг 2.31. Выражение для упорядочивания поля «Наименование»
Выбор Когда Наименование = "Ремонт компьютера" Тогда 1 Иначе 2 Конец
Укажем Тип упорядочивания - По возрастанию. Нажмем еще раз кнопку
Добавить и выберем в колонке Выражение поле Код. Укажем Тип упорядочи-
вания - По убыванию. Таким образом, мы установили, что первой в списке
услуг должна располагаться услуга с наименованием Ремонт компьютера,
а остальные записи в отчете должны располагаться по мере убывания кода
услуги. В результате окно диалога примет вид (рис. 2.197).
Рис. 2.197. Задание выражения упорядочивания
В результате выражение упорядочивания для поля Наименование примет вид
(рис. 2.198).
<п !п
Поле Путь
Автозаголовок
Г
I
•“'Код Код
Д______ ___ О Код ___
Наименование Наименование
} 1 “ХЦ —---—
; (П Наименование
; !
I ,
__________I .1________
»; Ссылка ! Ссылка
' ; О Ссылка
Ограничение поля Роль
’’П У... Г... У...{
I -- __'
Ограничение рек... ч
П... У 'Г... У...1
!□ □ □ □
I * V И
* । * I I !
| ! I
..................
’□□□□!
1 П П П ГТ
* Выражение представления
Вьряжения упорядочивания
Выбор Когда Наименование =
‘Ремонт компьютера'’ Тогда 1
Иначе2Конец возр,Код/ъ®.
Рис. 2.198. Выражение упорядочивания для поля «Наименование»
Пользовательские поля
Система компоновки данных позволяет определять в отчете Пользователь-
ские поля (стр. 361), используя либо собственные выражения, либо наборы
вариантов с условиями их выбора. В настройках отчета на закладке Поль-
зовательские поля нажмем кнопку Добавить и добавим новое поле — Выбор.
Зададим заголовок поля - В составе сборки и создадим условия отбора для
различных вариантов его представления (рис. 2.199).
Рис. 2.199. Добавление пользовательского поля выбора
Добавим еще одно пользовательское поле - Выражение. Зададим заго-
ловок поля — Популярная услуга и выражение на языке выражений
компоновки данных для отображения детальных записей. Нажмем кнопку
Добавить и введем в колонку Выражение детальных записей следующий текст
(листинг 2.32).
Листинг 2.32. Выражение детальных записей для пользовательского поля -
выражения «Популярная услуга»
Выбор
Когда Наименование = "Ремонт компьютера" Или Код = "000000007"
Тогда "да"
Иначе "нет"
Конец
В результате окно пользовательского поля
(рис. 2.200).
выражения примет вид
Пользовательское поле вы ажение
X
Рис. 2.200. Добавление пользовательского поля выражения
ВНИМАНИЕ
В выражениях пользовательских полей не могут быть использованы
функции общих модулей.
Теперь добавим новые пользовательские поля в отчет. На закладке Выбранные
поля раскроем список Пользовательские поля и перенесем из списка доступных
полей поля Популярная услуга и В составе сборки (рис. 2.201).
Параметры Выбраним... ] Отбор Сортировка
Условное Польтоеат,.. Другие на..
Доступные поля
в» Код
Наименование
Ф = Ссылка
1ЕЙ СистемныеПоля
® Сз Параметры Данных
& СЗ Пользовательские поля
Поле
й
® Выбранные поля
“ Код
<=» Наименование
•» В составе .борки
«» Популярна 1ислуга
В составе с
X
составе сборки]
<™ Популярная услуга
Рис. 2.201. Добавление пользовательских полей в отчет
На закладке Другие настройки установим заголовок отчета Список услуг, а макет
оформления (стр. 393) отчета - Яркий. Выполним отчет (рис. 2.202).
Мы видим, что записи в отчете расположены в заданном порядке и пользо-
вательские поля отражаются в соответствии с условиями их представления.
Теперь дополним список услуг информацией из вложенного отчета.
I
а?
’-ь
<
Рь»брс~ь ьерна-гг..]
й
Оказание услуг
Вариант отчета: {.Основной
V
|:
Р:
Й;
Рис. 2.202. Результат отчета
Вложенный отчет
В нашем отчете мы хотим видеть список услуг из справочника номенкла-
туры с вложенными данными из отчета Продажи номенклатуры (стр. 92)
для каждой услуги. В действительности всю эту информацию можно полу-
чить прямо из отчета по продажам номенклатуры, но данная задача позволит
нам продемонстрировать еще одно интересное свойство системы компоновки
данных - работу с вложенными отчетами. Сначала откроем схему компо-
новки данных отчета ПродажиНоменклатуры и сохраним ее в файл, нажав
кнопку с иконкой Сохранить в левом нижнем углу окна конструктора схемы
компоновки данных (рис. 2.203).
Поля:
Наборы данных”!
Путь
. А Количество
«и»: Контрагент
=»; Номенклат.
Н^5эз..
| Поле
I
I
=“ Период ! Период
I Количество_______
’ Контрагент
]□ Контрагент
' Номенклатура
’О Номенклатура
-------1-----------—--------г------
। Ограничение поля Роль
Д-- ...е, - й
Ограничение рек.
О О О О’ Измерение
□ о о гл
□ □ □ □'Период, 1
2 Е^сурсы.. Параметры Наксты
!П...! У... Г.?. :У..,%
Д--Й1 -'? ЛргЛЦ ’ -с- л? Тш-
Автозаполнение
Вложенные ; Й Настройки ;
Запрос:
Рыражени Проверка иерархии.
'Выражения «а^ор данных
; упорядочив.,.
’ ^.Параметр
г’
Заголовок
СТ Конструктор запроса...
&
□[□'□[□г
--)------
ВЫБРАТЬ
ПродажиОбороты.Период КАК Период,
ПродажиОбороты.Номенклатура,
ПродажиОбороты.Контрагент,
ПродажиОбороты.КоличествоОборот КАК Количество
ПродажиОбороты.СтоимостьОборот КАК Стоимость
8^.
В появившемся диалоговом окне зададим произвольное имя для схемы
и нажмем кнопку Сохранить (рис. 2.204).
Рис. 2.204. Создание файла, содержащего схему компоновки данных
Вернемся в схему компоновки нашего отчета, перейдем на закладку
Вложенные схемы и добавим новую схему. Назовем ее Продажи Номенклатуры
и в поле Схема нажмем кнопку выбора (рис. 2.205).
Рис. 2.205. Добавление вложенной схемы в отчет
В открывшемся окне конструктора схемы компоновки данных загрузим
из файла вложенную схему компоновки данных, нажав кнопку с иконкой
Открыть. Выберем файл ХМЬ с сохраненной ранее схемой - Схема_продажи_
номенклатуры (рис. 2.206).
Теперь вернемся в схему компоновки данных основного отчета Оказа-
ниеУслуг, нажмем кнопку выбора - в поле Настройки и зададим настройки
вложенной схемы.
Йесфсы Параметры. ! * Макеты .• Влс дос* « » » Настройки
ОК Отмена Справка
• .- , . . Г?-г-.:-— - - г -—г—^
Наборыданных | (, СЙйзй набфэв...^ :ВычиЗДябЙЬ№ |
Рис. 2.206. Выбор файла вложенной схемы
Зададим связь вложенной схемы с родительской так, чтобы для каждой услуги
из нашего отчета отражалась соответствующая информация из вложенного
отчета. Добавим новый элемент отбора и нажмем кнопку выбора в поле
Левое значение. В открывшемся окне выбора поля укажем поле вложенного
отчета Номенклатура (рис. 2.207).
В поле Правое значение нажмем кнопку очистки *, затем кнопку выбора типа
данных т и выберем тип данных Поле компоновки данных (рис. 2.208).
Выбор типа ценных
Рис. 2.208. Задание условий отбора в настройках вложенной схемы
Теперь нажмем в поле ввода кнопку выбора и в открывшемся окне выбора
поля раскроем поле ОбъектНастройки.Владелец и выберем поле родительского
отчета Ссылка (рис. 2.209).
Рис. 2.209. Задание условий отбора в настройках вложенной схемы
В результате окно настроек вложенной схемы примет вид (рис. 2.210).
Теперь добавим вложенный отчет в структуру отчета. На закладке
Настройки в дереве структуры отчета выделим элемент Детальные записи
и в контекстном меню выберем пункт Новый вложенный отчет... Обратите
внимание, что пока мы не добавили вложенную схему в отчет, этот пункт
был недоступен (рис. 2.211).
Рис. 2.210. Окно настроек вложенной схемы
Наборыдаы ых Сеяд таборов# ,‘ Вычисляемые™!!
ЦиЦ м: =~Л^-4/^4>44 ' - .. 1лХ - * • — *> —
Ресурсы Параметры Макеты , .Влом енные ж ты ! Настройки |
V— - . я —. 1 I — -ял-Ля-Я!|А'*м*чГ'«кл^Ам>с><«| . . 4 .
' Имя вариант? Предстаете
й О; Отчет
35г Новая группировка...
Новая таблица
Новая диаграмма
!гй
•1
Настройки Отчет' сДетальнь"
Параметры Выбранные
Д<сту| "ыегк я
Скопировать
Изменить
.Удалить
саа
Р2
Дру 1.”нас. -
4г? 4
зе . дат»
— ..
I
Р9
С1й+5М»Ир
СиИБГй+Поип
Конструктор настроек...
= Переместить вверх
Перемен ить вниз
Сгруппировать..
Разгруппировать
Установить имя...
Включить все
(5 Выключить все
Стандартная настройка...
ж
И
ц
I
Рис. 2.211. Добавление вложенного отчета
Из списка доступных вложенных отчетов выберем отчет ПродажиНоменкла-
туры. В результате окно настроек нашего отчета примет вид (рис. 2.212).
ВНИМАНИЕ
Вложенная схема вместе со своими настройками добавилась в основной
отчет. Чтобы активизировать режим настроек основного отчета, нужно
выделить одну из его ветвей или корневой элемент дерева структуры
отчета. Для настройки вложенного отчета достаточно выделить одну из
его ветвей в дереве структуры отчета. При установке настроек отдельной
группировки основного или вложенного отчета в средней части окна, под
деревом группировок отчета, должна быть выделена соответствующая ей
кнопка.
Отчёт внаяЕхемаКямг ывдвкиДанны
Набор -• дань « . ‘ 'Связи наборов д...
Вычисляемые по.. ’ '- в-^рсь Ц Па а. атры
Макеты Вложенныесхе.^ы Настройки
Имя варианта - Предстьвле„
сновйий
Основной
СД 1Й
н™ 1_5 Отчет
в» < Детальные записи»
I
1
!
I;
© @ Контрагент
® Номенклатура
К®3 Период
‘ Настройки 'Отчет Прода?ш номенклатуры
Г
Параметры Выбранные... |' Отбор | йртирсека УсловноеО-... Попьзоват—
Дост пные поля
юз
ф
ф
<+'
Номенклатура
Период
Количество
Стоимость
СистемныеПоля
0бье1 тНастройкиВладелец!
Параметры Данных |
• — и?
Поле
}
Другие нас...
9 Количество
$ Стоимость
ф
&
Рис. 2.212. Окно настроек отчета
Выделив ветку ПродажиНоменклатуры, настроим вложенный отчет. На закладке
Другие настройки уберем признак использования его заголовка (рис. 2.213).
»йи1
Л*
Набсрыданнык Связи наборов д Вычисляемые по,., . • Ресурсы , Параметры Макеты Влоленныг; э®мы
Л Настройки [ 11
1 Имя варианта Лредставле.
ЕЙ Й
Эленой
Основной
& й6™ <Детальные записи»
Ф й®03 Контрагент
© Номенклатура
Настройки |Отч^ ( Продажи нЙле'нклатуы <
Парам* ры
Г
1
»•-» ЕЛТ С'-'ЯЧ - ег - «—-•* - * »^п.п-
Выбранные... Отбор ! Ссргорома : с Неловкое, о..,, -? ^Пользовагг.^ , ) Другие нас... I
к
На закладке Условное оформление уберем признак использования его
условного оформления. А также исключим эту настройку из состава поль-
зовательских настроек, поскольку в форме основного отчета она не нужна
(рис. 2.214).
I
ВьЙранныё..;.2 т- 0т6ор"’д ? Сор'
Оформление
Т---:'---
Условие
' Офо] мяжмые поля
Цвет текста
I Стоимость Меньше "3... : Стоимость
Пользовательские настройкизлвменга
Включать в пользовательские настройки: С”)
Представление |___
Режим редактирования
Быстрый доступ
ОК
Условное о... | { Пользоват.
Другие нас.
Справки
Г Отмена
Представление
Мелкий заказ
Рис. 2.214. Настройка вложенного отчета
На закладке Отбор уберем признак использования у первого элемента отбора.
А также исключим эту настройку из состава пользовательских настроек,
поскольку в форме основного отчета она не нужна. Второй элемент отбора
нам нужен для установки связи между основным и вложенным отчетом
(рис. 2.215).
Параметре!
Выбранные поля , | Отбор Сортировка . I
У слепое г ормление »Г Пользовательские поля
Другие настройки
До чпные поля
Вид срав,. Правое .начение
СК
сэ
> лич: т
Контрагент
Номенклатура
Период
Стоимость
ОбьектН астройкиВ ладе леи
П араметры Данных
Г I Левое значение
к-4
Отбор
» Номенклатура-ВидН... ; Равно
Номенклатура Равно
ПеречислениеДидыНоменклатурыПустая..., Б.
«® ОбьектН астройкиВладелец.Ссылка
Рис. 2.215. Настройка вложенного отчета
я
Б
к
!
х ;
р <1
Выделив ветку Детальные записи, настроим основной отчет. На закладке
Выбранные поля уберем признак использования его полей Популярная услуга
и В составе сборки (рис. 2.216).
фМа-Гй м>-МйН№циг*' шэдеде <*<Йф!МЭвГ«ЙйИНЫй ..... '.. . л:ч.а-А.<-3^
Набйры <и «*-? 4 1 'вязи наборов‘V. Ьжлймят., ^..-Ресурсы Ларям тры:,* яЙакстъ ?*а«ч*ые-сяемы
- -3 ' ^г • ё ^"З.^лА.-^з^ч, —1 ’*. — -. |ЛчЫиАЬ^в Л«^*А. з^сАЧ: м*^*^4*А«Ч .,, Л^а^.414.^. .... Ц|.| «<р» ' 1^3 л •_« о *м..Л&>| "-з п » *^ч. *з . н!.
^В-к<< 1Ь х ♦ ♦|?1 ч? да-?й |8
Имя васиач а < к едставле
Рис. 2.216. Настройка основного отчета
Ф Ф х -й
Настройки: ; Отчет. <Детальные записи?
1, ВТ* 3 ?
Доступные п эли
КЫ
Наименование
Ссылка
СистемныеПоля
П араметрыДанных
Пользовательские поля
Выполним отчет (рис. 2.217).
I Поле
• '-! Выбранные поля
® Ц» Код___
!**) «® Наименование
»• Популярная услуга
«» В составе сборки
*.• ‘Й Йг *
Оказание услуг
Вариант отчета: (Основной
выбрать вариант Г)
Все действия »| ,? *
г 4
{- Т 1
с т | “д 1
н
т 1 1 I ’ *" 1 1 1
Г1 1 | I 1 1
1 е
Й.Т
? с- Т--
код
। *
Список услуг
I
Отбор: Номенклатура Равно Объект владелец. Ссылка
Стоимость
Количество
$
000000014
Ремонт компьютера
000000016
Восстановление данных
Контрагент'7^"" Номенклатуре / Период Количество : Стоимость Г. 1
'ООО “Атлант" ? \ . .' Г Ремонт компьютера - <... . ...11. 3000,00 к..'ш >.1 -_| - V -з - —в А*- — — 1( 3 000 00'
12 января 2012 г Н 3 00000€
1оОО "Стандарт’' ., 1( 3 000,00
Ремонт ко! «пьютера 1 ( 3 б00.0(
? 12 января 2012 г 1 3400,00!
ИТОГО Г^^-2? Х-; бооадо
>: Номенклатура Равно Объект владелец. Ссылка
“Атлант"
Восстановление данных “ 1 5 000.00
12 января 2012 г. 1 5 000,00 ’
ИтоЙХ^. з.. .з^.,. ;Х.'Г.:: X 50®)
Мы видим, что услуги располагаются в заданном ранее для основного отчета
порядке, пользовательские поля отключены, а каждой услуге соответствуют
записи вложенного отчета по продажам номенклатуры. Также мы видим, что
настройки отбора и условного оформления вложенного отчета отключены
и отсутствуют в составе пользовательских настроек. Но было бы хорошо
иметь возможность задавать отчетный период для вложенного отчета непо-
средственно в отчетной форме.
Усовершенствуем внешний вид отчета. Выделим в дереве отчета элемент
ПродажиНоменклатуры и на закладке Другие настройки отключим вывод отбора
у вложенного отчета, так как это не несет никакого смысла, а лишь указывает
на его связь с основным отчетом. Также отключим вывод параметров, так как
параметры отчетного периода будут находиться непосредственно в отчетной
форме (рис. 2.218).
Пк. Нслч? е ««..а и да 4?^
Й
1
।
~ . у . т -• / .7 - т - ..._ - -у- ..---.—
Нйборьтдёйныя ~ л у Вычисляемые^.,. 5 Ресурсы 1 к Макеты Влсйк^нныесиеж/ | Настройки |
О оь х ♦ Ф
ГИмя вариан.-’ Продставл.
1
№
® К®3 < Детальные записи?
?’ Контрагент
|5)ва Номенклатура
Период
Настройки Продажи номенклатуры
Параметры 1I Выбранны.,,, .Отбор Iоршреека 1'глс®
I Параметр
: I
'
1
< !
!
! Выводить параметры
Выводить отбор
; 1 -. __• ...... г. .
| уЗГ^отопозицияресу^
Стиль линии
Размещение легенды
Полосы измерительной диаграммы
О Расположение ресурсов в диаграмме
С; Выводить заголовок
О Заголовок
Значение
Нет линии
Нет
Нет полос
Авто
Авто
Продажи товаров и услуг
Не выводить
Не выводить
После веек полей
: юльзова», { Другие на...
Рис. 2.218. Настройка вывода отбора и параметров вложенного отчета
А также исключим настройки отбора и условного оформления из состава
полных пользовательских настроек отчета, нажав кнопку Свойства
элемента пользовательских настроек вверху командной панели окна настроек
(рис. 2.219).
Рис. 2.219. Состав пользовательских настроек отчета
Заметим, что эти настройки добавились в отчет из вложенного отчета и их
нужно отключить, поскольку в форме основного отчета они не нужны.
В заключение настроим параметры отчетного периода вложенного отчета.
Выделим в дереве отчета элемент ПродажиНоменклатуры. На закладке Пара-
метры включим параметры начала и окончания отчетного периода в состав
быстрых пользовательских настроек (рис. 2.220).
| ...Наборы данных
, ^7——.— ,• _
Вычисляемые,.-^. /Ресурсы Параметры Макеты
Гймя вариа- : Представл;
€* й^23 < Детальные записи>
г*
К
А!
I
ЬветМ
Значение
Дата
Произвольная дата
' Произвольная дата
Сортировку ’ ‘ Условнее ,.. Пользова^ '
Й*®3 Конграге Прльзовагеяыжие настройки элемента
в (йуы3 Ном<
Вложений сне.. Настройки
к
П| Включать .в.пользовете^
Представление
Режим редактирования
, г,,.
Дбуги на...
—*--------—
{Быстрый доступ
Выбранны... Отбор
Рис. 2.220. Настройка параметров вложенного отчета
Настройки:
Огчй:I Продажи .
Г4*
Параметры !
! О Отображать недоступные параметры (устанавливать значения недоступных параметров не р&^омендуе.
Г Па^аметр
I С; Началопериода
| СЙ Конец периода
ийл, ' - - Й
Запустим отчет на исполнение в режиме 1 С:Предприятие. Зададим отчетный
период 13.01.2012-15.01.2012 и нажмем кнопку Сформировать. Отчет примет
вид, как на рис. 2.221.
Мы видим, что вложенный отчет формируется за указанный отчетный период,
так как данные за декабрь 2011 года отсутствуют.
'' -’ --л^..- » . г .. . « ,: - чу- * -’
и. О ; [1Е1’ред1 ри е^ .цХ . и '??-
Оказание услуг
I Вариант отчета. Основной
ыбреть вариант..
Все действия »|
[. Сфс^ммрювать : I ЙЗ Настройка...
@ Начало периода 13.01.2012 I
ВД 1 Конец периода 115.01.2012 I
I
»
(Список услуг
(Код (Наименование 000000014 Ремонт компьютера 1
Контрагент Количество Стоимость
Номенклатура
! Период
ООО “Атлант" 1 3000,00
| Ремонт компьютера Г 3 000,00- 1
I 13। января 2012 г. 1 3000,00
'ООО "Стандарт" 1 3 000,00
I Ремонт компьютера 1 3 000,00.
I 14 января 2012 г. | 1 3 000,00
Итого 2 6 000 00
[Код 000000016
11аим* нование Восстановление данных
[Контрагент Количество Стоимость .1
(Номе» кпетура |
Период 1 1
[ООО “Атлант" 1, 5 003,00 •
[ Восстановлена данных 1' 5000,00 |
15 январе 2012 г. 1; 5 000,001 1
[Итого I 1 5 000,00
Рис. 2.221. Результат отчета
Ж ‘ •
Таким образом, на примере этого отчета мы научились:
№ задавать выражение упорядочивания для поля,
и задавать пользовательские поля-выражения и поля выбора,
использовать в отчете вложенные отчеты, управлять настройками основ-
ного и вложенного отчета.
Пример 14
На примере этого отчета мы рассмотрим особенности расчета итогов
по полям остатка и возникающие при этом проблемы. В качестве исходного
образца разработаем простой отчет, отражающий движение и остатки номен-
клатуры на складах (рис. 2.222).
'Склад | Начальный остаток ,Приход л Расход Конечный остаток
Номенклатура
Основной -Л 13,000 9 000 4ДЮ;
, Жесткий диск I ! 3,000 3,000, Г 1
I Материнская плата I ; ,5,000! ! 3,000; 2,000
I Память 1 5,000: 3,000' 2,000
*Розничный 24/100 . ?/ию 17,000
! Веб-камера I 10,000 ‘ 3,001 7,000.
: Микрофон 1 10,000 2.00С 6,000'
| Монитор ЬСВ , 1 1 4,000 2.00С ''.ООО
Итого » □и Л 37,000 1С ооо 21,000
В принципе это модификация отчета ОстаткиНоменклатуры, но для демон-
страции проблем при расчете остатков мы разработаем другой отчет
с детализацией данных по периодам. Создадим новый объект конфигурации
Отчет и назовем его Остатки Номенклатуры ПоПериодам.
Откроем конструктор схемы компоновки данных и добавим новый набор
данных - запрос. Источником данных для запроса будет служить вирту-
альная таблица регистра накопления ОстаткиНоменклатуры.ОстаткиИОбороты.
Не будем пользоваться конструктором запроса, а сразу внесем в поле Запрос
следующий текст (листинг 2.33).
Листинг 2.33. Текст запроса
ВЫБРАТЬ
Ортаткийш^^
Оста’.киНог-снклатурыОттаткиИОбороты.Склад,
ОстаткиНоменклатурыОстаткиИОбороты.КоличествоНачальныйОстаток КАК НачальныйОстаток,
ОстаткиНоменклатурыОстаткиИОбороты.КоличествоКонечныйОстатокКАККонечныйОстаток,
ОстаткиНоменклатурыОстаткиИОбороты.КоличествоПриход КАК Приход,
ОстаткиНоменклатурыОстаткиИОбороты.КоличествоРасход КАК Расход
ИЗ
РегистрНакопления.ОстаткиНоменклатуры.ОстаткиИОбороты КАК
ОстаткиНогленпла'|урыОстаткиИОбороты
Перейдем на закладку Ресурсы и определим доступные поля ресурсов отчета
(стр. 370).
Рис. 2.223. Определение ресурсов отчета
На закладке Параметры (стр. 376) зададим настройки параметров, как
и в предыдущих примерах. Для параметров НачалоПериода и КонецПе-
риода в колонке Тип нажмем кнопку выбора - и в нижней части окна
редактирования типа данных установим Состав даты в значение Дата.
Для параметра КонецПериода зададим значение колонки Выражение, чтобы
данные за последний день отчета были включены в расчет (листинг 2.34).
Листинг 2.34. Выражение для расчета параметра «КонецПериода»
КонецПериода(&КонецПериода)"День")
Определим структуру отчета. На закладке Настройки выделим корневой
элемент Отчет и добавим в него группировку по полю Склад. Затем добавим
вложенную в нее группировку по полю Номенклатура. На закладке Выбранные
поля перенесем из списка доступных полей поля (рис. 2.224):
НачальныйОстаток,
Приход,
Расход,
КонечныйОстаток.
Отчет ОстаткмНоменклатурыПоПерисдвм ОсноенаяСхемаКомпоновкмДанных _ О X
Рис. 2.224. Определение полей и группировок отчета
На закладке Другие настройки установим макет оформления (стр. 393)
отчета - Зеленый. Запустим и сформируем отчет в режиме 1 С:Предприятие
(рис. 2.225).
Зстаггкин (1С Пре приятие] 4 к: .
м М+ М- ~ - X
Остатки номенклатуры по периодам
Вариант отчета: Основной В^^рать вариан — в.
Ефо; . •» ать । Настройка... Все действия - ) >
1 Начальный Номенклатура остаток Приход Расход , Конечным остаток л 1
Ф Основной 13 000 9 Л00 4 00 И-
1 Жесткий диск 3,000 зное
1 Мат* р . ,.:кая плата Память — _____ _3-°00' 5,000!'' ' ЗДОО] 2,000 2,0001
ф Розничный 24,000 7 000 17,000
Веб-камера .. . 10,00с 3,000! 7,000 8Д00
Микрофс:' ——„— 10,000 2,000
Монитор 1_С0 4,000 2,060 2,000
Итого 37,000 16,000 21,000 1
1 '«р
. >М- МВНМИЦВЯВ1
Теперь детализируем отчет по периодам. Например, требуется отобра-
зить движение и остатки номенклатуры с детализацией по регистратору
за указанный отчетный период.
Изменим текст запроса для получения отчета (листинг 2.35).
Листинг 2.35. Текст запроса
оста^нс^енжатурь1Остаткииоборс^.н«>мёнкг1атур1а!
ОстаткиНоменклатурыОстаткиИОбороты.Склад,
^статкиНомрнкла уриОстаткииОбороты.Количествс'На‘.'а1(ьныйОстатокКАН ^ачаг^ныйОста-’ОК.
Оо^ткиНсмемк; Юборс XV лечныйОстаток,
ОстаткиВоЬ;Внкла гурьбе аткиИОборотьк Количество КАК Приход,
ОстаткиНоь'внклатурыОстаткиИОбороты.Количестч)Ргоход КАК Расход,
ЭстаткиНоме;'хратурыОстаткиИОбороты.Регистратор
Автои) КАК
ОсталмНоменгшатурыОстяткиИОборлтм
Изменим структуру отчета. В группировку Номенклатура вложим группировку
Детальные записи, в поля отчета добавим поле Регистратор (рис. 2.226).
Рис. 2.226. Требуемый вид отчета
На закладке Параметры включим параметры НачалоПериода и КонецПериода
в состав быстрых пользовательских настроек. Сформируем отчет в режиме
1 С:Предприятие (рис. 2.227).
Мы видим, что итоги по полю НачальныйОстаток посчитаны неправильно.
•е юменк ".пери Дег.-юнпрационнаякс, рСПродор, йе> $
| Остатки номенклатуры по периодам
| Вариант отчета' (Основной
| Г эдрмфбввть ' < Настройка...
Начало периода
-01.12.2011
20.01.2012
~ ] ! ъюратьегонагг
Все действия ।
.1
4
Конец периода
1 * Параметры: Начало периода 01.12 2011 Конец периода 20.01.2012 4
1 Склад Нонёнклатуп*. ’етистратор Начальный остаток Приход Ракхвд Конечный остаток
р—т Основном 4ДЮ0 13,000 9,000 4 3-Ю
• *—I Жесткий диск З.ЙОО 3,000
При 'одная накладная 000000001 от 05.12.20111222:39 3.000 З.Р00
1 Сборка ком! «ютера ООООб6бО1 от 06 12 2011 19.33:40 3,600 ',060 2,000
1 Сборка компьютера 000000002 от 11 122011 15:09:13 2,000 1.000 1.000
сборка компьютера 000000003 от 11.01.2012 2220:17 1,030 1.0ГО
е Лат^ринская плата 2,МО 5;М‘ 3,000 2,000
1 2 ЛОО 2,000
1 — — - - - - ....... Приходная накладная 0□0000002 от 0^ 12.2011 15:53:17 5,000 5,000
Сборка компьютера ОООООООс'1 от 06 12.2011 19.33:40 5,000 1.0001 4,000
Сборка компьютера 000000002 от 11.12.2011 15:09:13 4,000; 1.0001 3.000
I ’ 1 ф Сборка омпьютера 0 00000003 от 11.01 2012 22:20:17 Замять 3,000 мюо 5,МО 1,000 3,006 2,000 2,000
11 2,000 2,000
"Зрих эдная накладная 00000000: >т 05.12 2011 15:53:17 1 .. 5,000 5,000
1 1 Сборка компьюте ’а 000000001 от 06.12.2011 19:33:40 5,000 .... . 4,000
| ) Сборка компьютера 000000002 от 11.12.2011 15:09:13 4,000 1,000 злоб1
г 1 Сборка компьютера 000000003 от 11.01.2012 22:20:17 зроо ц 1,600 2,00г
Га Розничным - МСИфТМ *- М ГАТ! • Веб-камера цда 7X00 24,000 10,000 7,000 3,000 17,000 7,МО
' I 7.001 7,000-
1 1 Приходи 1Я накладная 000000004 от 11.01.201211:10:00 1 5,000 5,000'
1 1 Приходная накладная 000000005 от 11.01.201214:20:00 5,000 5,000 10,000'
1 1 Расходная накладная 000000008 от 12.01.201219:19:52 10,оио 3,000 7,000'
I а Митфофон * 8.001 1ВД00 ’ 2 ОМ 8,МО
_ . _ 8,000 8,006"!
Приходная накладная 000000005 от 11.01.201214:20:00 10,000 ю,6а
I К Расходная накладна!. 000000008 от 12.01.201219:19:52 10,000 '000 2/300. 8,000
' а Монитор 1_С0 М>о г.ооо *,ом
[ ! 2,000. I 2.600
Е Прил жная накладная 000000003 от 06.12.2011 14:04 13 1 2,000 2,6об!
Е Рас. одна я накладна я 000000003 от 06.12.2011 21:11:04 2,000; 1,000- 1,000)
Приходная накладная 000000004 от 11.01.201211:10'00 1,66о’ 2,000; ! 3.000
1 - Расход, и «1 накл“дная 000000008 от 12.01.201219:19:52 3,004 1.000 2.000:
> Итого ' " " ” тмю 21,000 Л,00Р 16.01)1' гаг 21 да
, *
Ж
I
Рис. 2.227. Результат отчета
Расчет итогов по полям остатка
Проблема в том, что в запросе при получении поля Регистратор обязательно
должно быть получено и его родительское поле-период ПериодСекунда. Это
относится ко всем полям-периодам - при получении поля-периода в запросе
должно присутствовать его родительское поле-период.
Изменим текст запроса для получения отчета (листинг 2.36).
Листинг 2.36. Текст запроса
ВЫБРАТЬ
ОстаткиНоменклатурыОстаткиИОбороты.Номенклатура,
ОстаткиНоменклатурыОстаткиИОбороты.Склад,
Остатк/ЧоменклатурыОстаткиИОбсроты.КоличествоНачальчыйОстлтокКАКНачальныйОстаток,
ЧстяткиНо^еню'ат^рьОсгаткиИОборот^ЗСоличествоКонечныйОстатокКАК конзчныйОстатоКу
и КАК Приход,
ОстаткиНомен1шатурЬ1ОстаткиИОбороть|Кол^ КАК Расход,
^статкиНоменкла^йОст ЫийО§ рлтЬ1.Регистра™р,
Оста^иНоменклатуоьС'статкиИОбороты.ПерРЮдСекунда
ИЗ . .
» Авто,,) Кж
&Й1ЖЙ
Так как свойство Автозаполнение (стр. 346) установлено, платформа автомати-
чески заполнит роли (стр. 365) полей-периодов в наборе данных (рис. 2.228).
РЬяь .яюе
1 ’ СУ О Дополнительный
1ЧЙЬ:~11^ЙЬ&С'' I |НД Ж
Роль—----
О Без роли
О-Измерение------
I
' Родитель:
-Роль-----------------------------------------
1
I Без роли
! [ 2-г-1 О Дополнительный^
1 (\.> р- И змерение-” ----з
I Родмте,1ь: V’
1 . .. _ /- 1 3
О.-Счет
I Вид:
Г) г Остатки —
Иг-’я;
Тип:
Бук тип:
Поле С'-ета:
Игнорировать значения МЛ±
О Обязательное
Ё ОК "Л Отмена И . Справка 1
Эг-Счет---------------——----------------------I
| Б-ш: • - И |
0.- Остатки------------——-------------------| ?
| ймя | !
! ч- . : | I
; НЭТ V }
| Бум. тип: * 11
| Поле счета ; 11
I________________________________и |
О Игнорировать значения МОП 11
I ! Обязательное । >
ОК I Отмена 11 Справка |
*-ьпмввв»^и1ТД-тг-^УТт- - «.11.^,। -еишииЗ
Рис. 2.228. Роли полей-периодов
Поля-периоды для правильного расчета остатков должны иметь непрерывную
нумерацию, начиная с 1. При этом чем меньше номер периода, тем более
точным должен быть период. Например, поле НомерСтроки является уточне-
нием поля Регистратор, поэтому номер периода поля НомерСтроки должен быть
меньше, чем номер периода поля Регистратор. Аналогично и номер периода
поля ПериодДень должен быть меньше, чем номер поля Период Год.
В нашем примере поле Регистратор (номер периода - 1) является уточне-
нием поля ПериодСекунда (номер периода - 2). Если по какой-то причине
роли полей-периодов не проставлены автоматически, необходимо сделать это
вручную.
В результате мы получим правильные итоги остатков номенклатуры за период
с детализацией по регистратору (рис. 2.229).
Другой вероятной причиной неправильного расчета остатков является отсут-
ствие в запросе парного поля-остатка. Например, следующий запрос будет
неправильным (листинг 2.37).
] Выбратьвариаиг,,. ;]
Вариант отчета: ^Основной
©ать । Настройка..
Все действия
0 ;7П Начало периода
@ ; 2Й Конец периода
“ - > ь1;стаз-инт -^5 г« □ д^м ~ Демсн^рЙмм^
4 Остатки номенклатуры по периодам
01.12.2011
Рис. 2.229. Результат отчета
[Параметры Начало периода: 01.12.2011 । Конец периода: 20.01.2012
’ . . • . \. " " . С.7 цход Расхо, :• Коче*ныи I
Неъенклг’ург. остаток 4 остаток
Р) ;гисграто> ь
Основной 13,000 9,000 4,000
| Жесткий диск 3,000 3,000 •
Приходная накладная 0000009П1 от 05.12.2011 12:22'39 ! 3.000 ; з.оор
Сборка компьютере 00030000 от 0612 2011 19.33:40 3.000 1,000; 7,000
Сборка компью I ера 000000002 от" 1122011 15:09:13 2,000 и 1 ! 1,000; 1,000
Сборка компьютера ООООООоОз от 1Ц01.2012 2220:17 1.000 1,000’ *
1 Материнская плата - ~ . 5.000 3,000. 2000
г" 2,000. 1 2,000
Пюи- одная накладная 000000002 от 05.12.2011 15:53:17 5.000 : 5,000
Сборка компьютера 000000001 от 0612.2011 19:33:40 1 5,000: 1.00Си 4 Л00
Сбор, а омпыотера 000000002 от 11.12.2011 15:09:13 4.00С 1Л001 3,000
Сборка компьютера 000000003 от 11.01.2012 22:20:17 3,000 1,000' 2 Л00'
Память - - 6,000 3,0Ш> 'с,ООО
; 2.000* 2,0001
Приходная накладная 000000002 от 05.12 2011 15:53:17 5.000 5 000
Сборка компьютера 000000001 от 06.12.2011 19.33:40 5,000 1 900 4,000'
Сборка омпыптера 000000002 от 11 12 2011 15:09:13 4,000 1/300 злоо
Сборка компьютера 000000003 от 11.01.2012 22'20:17 3,000. 1.000- 2,000
Розничным 24,000 7,000 17,000
ВеЗ-чамера 1 -кАде.л-Л. с -с.-», л .гоос 3,000. 7,000
; .ооо 1 7 ЛОО;.
Приходная накладна- 0.<000004 от 11.01.201211 10:00 > 5.000 1 5.000:
Приходная н «лпдная 000000005 от 11 01.201214:20:00 5,000 5,000 10,000
Расходная накладная 000000008 от 12.01 201219:19:52 10 Л00 3000 7,000
Микрофон 10,000 2,000’ 8,000
6.000 8000
При эдная накладнаг О^ООООООБ от 11.01.201214:20:00 1 10.000 Г 10.000
Расходная накладная 000000008 от 12.01 201219:19:52 10 Л00 2 Л00 8.00Г
Ментор ТСО I 4,000. 2,000 2,000
2 00С 2,000
При годная накладная 00000000 ! от 06.12.2011 14 04:13 ! 2,000 I 2.000
Расходная на 1адная ООбСОООО от 06.12.2011 21:11:04 2,000' 1,000' 1,000
Приходная накладная 000000004 от 11.01.201211:10:00 1,000; 2,000 3,0и0
Расходная накладн я 000000006 от 12.01201219:19:52 3.000 1.000 2,000
Итоге ..... «... *’ 37ДО1 16ДЮ0 21Л00
_——- , ьгСч.~ 11й"-~й"।
Листинг 2.37. Текст запроса
ВЫБРАТЬ
ОстаткиНоменклатурь.ЭстаткиИОбороты.Склад,
ОстаткиНомечкл8турыСстаткиИОбороты.КоличестелКпнечныйОстатокКАККс’нечныиОстаток,
Кол иыествоПрихсд КАК Поиход,
Оста. киНоменклатурыОстаткиИОбороты КоличествоРасход КАК Расход,
ОсталмНоменттурыФстаткиИОбороты.Й^
ОстаткиНомёнклаадыОстаткиИОборо^ Т эриодСекунда
ИЗ
РегистрНакопленг-ч.Ос‘ аШНоменклашь) Оо.таткиИОбороты{, к Авто,,) КАК
Остатки» ^оменклатурыОстаткиИОб(
ЛК
При наличии в запросе парного поля-остатка (см. листинг 2.36) и установ-
ленном свойстве Автозаполнение (стр. 346) платформа автоматически заполнит
роли (стр. 365) полей-остатка в наборе данных (рис. 2.230).
Рис. 2.230. Роли полей-остатка
Парные поля-остатки должны иметь одинаковое имя группы полей-остатков.
Непарные остатки должны иметь различные имена групп полей-остатков.
Если по какой-то причине роли полей-остатков не проставлены автомати-
чески, необходимо сделать это вручную.
В результате мы получим правильные итоги остатков номенклатуры за период
с детализацией по регистратору (см. рис. 2.229).
Также для корректного расчета остатка должны быть правильно указаны роли
полей (стр. 365), являющихся измерениями и реквизитами измерений. Поля,
являющиеся измерениями, в разрезе которых получаются остатки, должны
быть отмечены как измерения. Поля, не отмеченные как измерения при
расчете итогов по полям остатка, учитываться не будут, это может привести
к получению неправильных остатков. И наоборот, поле, по сути не являю-
щееся измерением, не должно быть отмечено как измерение. В противном
случае остатки могут быть получены неправильно.
В нашем примере платформа автоматически проставила роли полей-
измерений у полей Номенклатура и Склад. Это правильно. Но посмотрим, что
будет, если в запросе получается реквизит измерения.
Изменим текст запроса для получения отчета (листинг 2.38).
Листинг 2.38. Текст запроса
ВЫБРАТЬ
ОстаткиНоменкля! урыОстаткиИОбороты.Номенклатура ЗидНомлнкла1 уры КАК ВидНоменклатуры,
ОстаткиНо».,анклагурыОс гаткиИОборотиСклад,
ОстаткиНомег лутурыОс гятеиИОбпроты.КоличествоНачальныйОстаток КАК Йй п ныйОстаток,
ОстаткиНоменклатурыОг гаткиИОбороты.КоличествоКонечныйОстаток КАК КонечныйОстаток,
Остатки! оменклатурыОстаткиИОбороты.КоличествоПриход КАК Приход,
ОстаткиНоменклатурыОстаткиИОборочы К» личествоРасхпд КАК Расход,
Ост# киНоменк Ла^рыОстаткиИОб^оты Регистратоо
ОстаткиНоменклатурыОстатки^Обороты,ПериодСекунда
ИЗ
Ре1ис,'рНакопления ОстаткиНоменклатуры ОстаткиИС'боро^ьК Авто ,) КАК
ОстаткиН^менкпатурч^ОстаткиИОбороты
Сгруппируем записи по полю ВидНоменклатуры (рис. 2.231).
01 Отчет
-йг Склад
тдНсменклгтуры
< Детальные залиси>
Рис. 2.231. Структура отчета
В результате мы получим неправильные итоги по полю КонечныйОстаток
(рис. 2.232).
- Пстататноменклеп ыгюпе, и < -м- Демонсг э^-юннаякон,. (1СП< едприяти |
*!
В
$
I
Остатки номенклатуры нс периодам
Вариант отчета: ^Основной_______
! . . Еформироп.Гп хй' Настройка...
.<? .ТГ| Начало периода
= :Т?1 Конец периода
' 01.12.2011
20.01.2012
. Г.гЛреп вариант.
Все действия »;
{Параметры: Начало периода: 01.12.2011
Конец периода: 20.01.2012
Склад
В ид номенклатуры
Регистратор_____
Основной
Начальным Приход Расход конечным
остаток остаток
1.
13,000 9 000
1 Материалы — - г 13,000 9 00Г 2,000
Гри: одная на-'ладнпя 000000002 от 05.12.2011 15:53:17 — 1 5,000: 5Д00
Сборка компьютера 000000001 от 06.12.2011 19:33 40 5,000 1 1,000 4,000;
I Сборка компьютера 000000002 от 11 12.2011 15:09:13 4,000 1Д0Г ЗДОР
Сборка компьютера 000000003 от 11.01 2012 22:20.17 г 3.000, 1 . 1,001 2 дао
Г 2,000* сДОО!
Приходная накладная 000000002 от 05.12.2011 15:53:17 1 5,000? 1 5Д00
Сборке компьютера 00000001 от 06.12.2011 19:33:40 5,000 1,00( 4,000’
'борка компьютера 000000002 от 11.12.2011 15:09:13 4,0001 г 1,000 3.000
Сборка компьютера 000000003 от 11.01.2012 22 20:17 3,000 ? 1,000 2,000
! . . .. . . . _ .. _ 2,000 г Г 2,000-
Пои: пиная нг ладная 000000001 отЫ 1'1 11 1222:39 Сборка компьютера 660600601 от 06.12 2011 19’33:40 Г 3.000 Г ЗД00
3,000 ‘ 1 1,000’ 2,000'
| Сборка ко мпьютера 000000002 от 11 12 2011 15:09:13 2,000 Г 1,000 1,000!
Сборка '"мпьютера 00000000 , от 11.01 2012 2220:17 1.000 1 !доо I I
.Розничный т 24,000: 7,000 8,000
! Материалы _ __Д 24,0001 7,000 8,000
; Приходная накладная 000000003 от 06.12.2011 14:04:13 2,000{ 1 2Д00{
Расходная накладная 000000003 от 06.12.2011 21:11:04 2.000 1,000 1Д00,'
Приходная накладная 000000004 от 11.01.201211:10:00 1 000 2,000! / здоб'
Расходная накладная 000000008 от 12.01 201219:19:52 3,000 I 1 000 2Д00
2Д00. 1 2Д0Р;
Приходная накладная 000000004 от 11.01 201211:10:00 1 1 5,0001 5.900
Приходы я накладная 000000005 от 11.01.2012 14:20:00 5 ДОС, 5Д00’ 10,0001
Расходная накладная 000000008 от 12.01.201219:19:52 10,ООоТ Г 3,000 7,0001
I 7 Л00' г 7,0001
Приходная накладная 000000005 от 11.01.2012 14.20:00 10Д00' 10,0001
Расходная накладная 000000008 от 12.01.201219:19:52 г, к ТОДОО; Г 2Дбб! 8,000!
[ _ . г 8 ДОС г 8,666;
ИТОГО:
-6,
<*
4^
Проблема в том, что у поля ВидНоменклатуры не указана роль реквизита изме-
рения. Для решения этой проблемы нужно указать родительское поле в роли
поля-реквизита. Так, в приведенном выше примере нужно у поля ВидНо-
менклатуры указать роль Измерение и указать в качестве родительского поле
Номенклатура (рис. 2.233).
Рис. 2.233. Роли полей-измерений
В результате будут получены правильные остатки по полю - реквизиту изме-
рения (рис. 2.234).
- с" <• - - - -- - - -- —«а --
Ос^^иноменкл?*^ Демонеп «шпнвв-кйц. 11 нт»ЛРИОД$
л
Остатки номенклатуры по периодам
Вариант отчета ; Основной
। !- Вобрать вариант
|5" СфОртжрн&ет- : Настройка...
Все действия ▼ ;
г
I ® ’;ТЛ Начало периода
I @ ' !тГ| Конец периода
; 01.12.2011
20.01.2012
[Параметры: Начало периоде: 01.12.2011
Конец периода: 20.01.2012
Сл&уззд. Начальный Приход Расход Конечный а
Вид номенклатуры остаток
Репктратор . .. .. .... ........ I
Основной 13,000 9 000 4,000
Материалы ...... тЗДОО 9,008 4/300
Приходная накладная 000000002 от 05.12.201115:53:17 ; 5,000 ; 5,опс
Сборка компьютера 0000С0001 от 06.12.2011 19:33:40 5,000? 1,000* 4,000!
Сборка компьютепа 000000002 От 11.12.2011 15:09:13 4000 1,000| 3,000!
Сборка компьютера 000000003 от 11.01.2012 22:20:17 3/ЮО; 1,000] 2.000!
;,ооо ’ 2,000
Приходная накладная 000000002 от 05.12.201я 15:53:17 5.0001 5.Г00
Сборка компьютера 000000001 от 06.12 2011 19:33:40 5,ооо; 1,0б6[ 4Д00[
Сборка компьютера 000000002 от 11 12.2011 15:09:13 4,00( 1,666 3/з66|
Сборка компьютера ОООЬОЗООЗ от 11.01 2012 22:20:17 3,000 1.666Т 2,Обб]
: ! I I ' | ! н 2.9591 ? 2,0001
Приходная накладная 000000001 от 05.12.2011 12:22:39 3,000^ 3.000
Сборка компьютера 130000000; от 06.12.2011 19:33:40 3,000' .0001 ~2.666|
Сбойка компьютера 000000002 от 11.12.2011 15:09:13 2/300 1.000 1/100
Сборке компьютера 000000003 от 11.01.2012 22:20:17 1,ооо; 1 000;
Розничный 24,000 7,000 Г?'17.0ПО
! Материалы >4/30(3 7 000 17,000
Пэихспная накладная 000000003 от 0612.2011 14:04:13 2/300 2Г000
Расходная накладная ОООЮОООЗ от 06.12.2011 21:11:04 _ 2/300 ’.0о0 1,66о1
Приходная накладная 000000004 от 11.01.201211:10ОО 1,000 2,000 З.ббб';
Расходная накладная 000000008 от 12.01.201219:19:52 3,000 1,000 2,000 >
. - _ , . _ _ 2,000 2.00С
Приходная накладная 316000000- от 11 01.201211:10:00 5/300 5,666;
Приходная накладная Л000П0005 от 11.01.201214:20:00 5,000 5/300 10,000;
Расходная накладная ОППЛООП08 от 12.01.201219:1 Э'бЗ 10 000 З/ЗОО 7/)00
1 7/300 7/300;
Приходная накладная 000000005 от 11.01.201214:20:00 10,000 16/300
Расходная накладная 000000008 от 12.01.201219:19:52 10,000 2/300 8,000
I И .600 8,000!
Итого ’ " ... -д~* - * < 37*000 1Б Ж . чп®
5 а
&
X
Рис. 2.234. Результат отчета
Итак, мы рассмотрели наиболее вероятные проблемы при расчете итогов
по полям-остаткам. Подробнее об этом рассказывается в соответствующем
разделе третьей главы на стр. 320.
Вывод в диаграмму нескольких ресурсов
Теперь на примере этого отчета продемонстрируем вывод данных
в диаграмму. При этом покажем новую возможность платформы - вывод
в диаграмму нескольких ресурсов и возможность изменения их положения.
Для этого создадим новый вариант отчета Остатки номенклатуры по периодам
и на нем продемонстрируем настройки условного оформления диаграммы.
Чтобы добавить новый вариант, на закладке Настройки схемы компоновки
данных нажмем кнопку Добавить слева над списком вариантов отчета. Зададим
имя варианта и его представление как ДвижениеНоменклатуры и создадим
настройки нового варианта отчета.
Выделим корневой элемент Отчет, нажмем кнопку Добавить в командной
панели и добавим диаграмму (стр. 255). Затем выделим ветку Серии
и добавим в нее группировку по полю Склад, а в ветку Точки - группировку
Номенклатура. На закладке Выбранные поля перенесем из списка доступных
полей поля ресурсов Приход и Расход (рис. 2.235).
Рис. 2.235. Настройка структуры отчета
На закладке Другие настройки установим параметр Расположение ресурсов
в диаграмме в значение Серии и включим эту настройку в состав быстрых
пользовательских настроек (рис. 2.236).
-^м11 г1»'МОч«М. ОЫЦр
....
Наборы данных Связк паборсв. Вычйслде>. с.1в
I ~ -2~Г г.» . >>_. —.^Ц.-ГЫМЛШ'МЛ _
-.=. - .'.„ли. т * - л^‘- . - . . ...’* —. . • .. » —
Ресурсы Параметры Макеты V ВложеЖыесх.,. Настройки
Имя верна... • Представ л..
1а 2’
Основной Основной
= ? Отчет
6 @1Ы Диаграмма
® Т очки
0й13 Номенклатура
& Серии
ЙЙЯ
X
Включать в полььдветрл| .с: .не настройки
”~Ч-,-ГТ'"-V "
111 ДРУ^ена..
.Быстрый доступ
Представление
Режим редактирования
Авто
После всех полей
ьерйй-
Авто
Авто
----1Пил<к.,гл I (ьскиен* тройки&лемент*
Настройки
, Параметры
1г^7Г-3
; - ! I ЗраМГ
I[ЙМ4
|СН ._РМ
По#гот>
: Расположение ресурсов в диаграмме
I |О; Выводить заголовок
|; 01 Заголовок
| |О! Выводить параметры
| [О/ Выводитьотбс^,
1 IСЗ Авто позиция ресурсов
Рис. 2.236. Настройка расположения ресурсов в диаграмме
Настроим условное оформление диаграммы. На закладке Условное оформ-
ление установим вертикальную ориентацию текста для точек диаграммы
(поле Номенклатура). Зададим представление этой настройки как Вертикально
(рис. 2.237).
2И» » - . _ - , — - — |^*|И1 П-Н г^- яи.
Параметры Выбранны... ,д } Отбор Сортировка [ Условное... | ] Псльзова..., Другиена....
Оформление
Л1ИЯ
I Вертикально
! Номенклатура
Условие
Оформляемые поля Представление
Рис. 2.237. Настройка условного оформления диаграммы
Р'едакт» р ява»}ие па; йн »»т р •
Создадим еще один элемент условного оформления диаграммы. Установим
фиолетовый цвет для точек диаграммы (поле Номенклатура), в которых
значение поля Приход больше 8. Зададим представление этой настройки как
Большая закупка (рис. 2.238).
।
Параметры Выбраним.. Отбор Сортировка
Условное... Пользова.,
Другие на...
Рис. 2.238. Настройка условного оформления диаграммы
Включим обе эти настройки в состав быстрых пользовательских настроек.
Запустим отчет на исполнение в режиме 1С:Предприятие. В открывшемся
окне отчета нажмем кнопку Выбрать вариант... Выберем вариант Движение
номенклатуры и сформируем отчет (рис. 2.239).
Рис. 2.239. Результат отчета
Мы видим, что данные о приходе/расходе номенклатуры по складам выво-
дятся в диаграмму (тип диаграммы по умолчанию - Гистограмма объемная),
в точках которой данные группируются по номенклатуре, а в сериях -
по складам. Текст в точках диаграммы (наименования номенклатуры)
располагается вертикально, столбцы номенклатуры с большим приходом
выделяются цветом. Ресурсы диаграммы расположены в сериях, поэтому мы
видим не две серии — по числу складов, а четыре - на каждый склад по два
ресурса (Приход, Расход).
Поскольку все перечисленные настройки расположены непосредственно
в отчетной форме, то очень удобно ими манипулировать и сразу видеть
результат отчета.
Например, если мы отключим настройки Вертикально и Большая закупка,
а параметр Расположение ресурсов в диаграмме установим в значение Авто,
то мы получим следующий результат (рис. 2.240).
I
Остатки номенклатуры по периодам Демо. (1С.Прейпр:1ятие’
м м* м-
Все действия
о
-ч
I
О Вертикально
Большая закупи'
и Расположение. есу; >сов в диа . амме
Остатки номенклатуры по периодам
Вариант отчета. Движение номеьк атусы
> СФор мр гть (3? Настройка.
а
Рис. 2.240. Результат отчета
В результате текст в точках диаграммы располагается горизонтально (это
стандартный вариант), а ресурсы в диаграмме автоматически также стан-
дартно располагаются в сериях.
Теперь включим настройку Большая закупка, а параметр Расположение ресурсов
в диаграмме установим в значение Точки и сформируем отчет (рис. 2.241).
Рис. 2.241. Результат отчета
В результате большие закупки номенклатуры выделяются цветом, ресурсы
в диаграмме располагаются в точках, и, поскольку точек получается много
(на каждую номенклатуру по два ресурса), текст в точках диаграммы автома-
тически располагается вертикально, независимо от того, включена настройка
ориентации текста Вертикально или нет.
Таким образом, на примере этого отчета мы научились:
создавать корректные запросы для получения остатков по полям-
периодам, полям-измерениям, полям-остаткам,
задавать роли полей-периодов, полей-измерений, полей-остатков для
получения корректных остатков,
выводить данные в диаграмму и управлять ее настройками.
Пример 15
На этом примере мы продемонстрируем использование в качестве источника
данных объектов встроенного языка. Ими могут быть:
наборы записей регистров,
таблицы значений,
табличная часть,
результат запроса,
область ячеек табличного документа,
прикладной объект.
Наборов данных, получающих информацию из объектов встроенного языка,
в схеме компоновки данных может быть несколько. Их можно связывать
и объединять между собой.
Разработаем свою печатную форму документа СборкаКомпьютера, используя
систему компоновки данных, и покажем на ней использование собственного
макета оформления (рис. 2.242).
Сборка системных блоков № СОООООООЗ от 11.01.12
Системный блек: “Компьютер игровой" собрал мастер: Соколов Андрей
склад: Основной
Номенклатура Количества пет Сумма
1 Жесткий диск 1 4 000 4 000
2 Материнская плата 1 3 000 3 000
з Память 1 2 000 2 000
4 Сборка компьютера 1 1 500 1 500
Итого: 10 600
Рис. 2.242. Требуемый вид печатной формы документа
Конечно, эту задачу можно решить гораздо проще, разработав макет
табличного документа для печати и задав ему нужное оформление. Но для
демонстрации заявленных возможностей системы компоновки данных нам
эта задача вполне подходит.
Сначала создадим схему компоновки данных, позволяющую сформиро-
вать печатную форму документа нужного вида. Затем программно заполним
используемые в ней наборы данных. Далее с помощью встроенного
языка осуществим компоновку данных. Последняя задача уже знакома нам
по предыдущим примерам.
Набор данных - объект
Выделим ветку Макеты документа СборкаКомпьютера в дереве объектов
конфигурации и вызовем ее контекстное меню или нажмем кнопку Добавить
в командной панели окна конфигурации (рис. 2.243).
Конфиг >ацмя
СистемаКомпоновкиДанных
е« Общие
Ёз Константы
И Справочники
ПЗ Документы
2^ Нумераторы
Последовательности
Ф С ПриходнаяНакладная
Ф П РасходнаяНакладная
ё [ СборкаКомпыотера
® » Реквизиты
® ЕЙ Табличные части
!Г~1 Формы
О Команды
Журналы докч>*’1
{.} Перечисления
-+
нщ
Ьк >|
Отчеты
Обработки
Планы видов характеристик
Планы счетов
Рис. 2.243. Создание макета документа
Ф
Ф
&
В открывшемся конструкторе макета зададим имя макета ПечатьСборки,
выберем тип макета Схема компоновки данных и нажмем кнопку Готово.
В окне конструктора схемы компоновки данных добавим новый набор
данных - объект (рис. 2.244).
Рис. 2.244. Добавление набора данных - объект
Назовем его СоставСБ и такое же имя зададим в поле Имя объекта, содержа-
щего данные. Этот набор данных будет отражать информацию из табличной
части нашего документа. Нажмем кнопку Добавить, создадим список полей
набора данных с аналогичными именами (рис. 2.245):
Номенклатура,
Цена,
Сумма,
Количество.
Рис. 2.245. Список полей набора данных
Затем, выделив корневой элемент дерева наборов данных, добавим еще один
набор данных - объект. Назовем его Документов и такое же имя зададим в поле
Имя объекта, содержащего данные. Этот набор данных будет отражать инфор-
мацию о реквизитах нашего документа. Нажмем кнопку Добавить, создадим
список полей набора данных с аналогичными именами (рис. 2.246):
Дата,
Номер,
Мастер,
СистемныйБлок (Продукция),
в Склад.
Рис. 2.246. Список полей набора данных
ВНИМАНИЕ
При программном заполнении полей набора данных их имена должны
соответствовать именам полей в схеме компоновки данных.
Дальше выполним уже знакомые действия по формированию настроек
схемы компоновки данных. Сначала определим поле ресурса (стр. 370)
Сумма для подсчета общего итога по табличной части документа. По умол-|
чанию для расчета выражения ресурса нам будет предложено выражение
Количество (Сумма). Изменим его на Сумма (Сумма) (рис. 2.247).
Рис. 2.247. Определение выражения для расчета ресурса «Сумма»
На закладке Настройки определим вид печатной формы нашего документа.
Добавим в отчет группировку, составленную из полей реквизитов доку-
мента:
Номер,
Дата,
СистемныйБлок,
Мастер,
Склад.
Чтобы это сделать, можно добавить группировку без указания группи-
ровочного поля Детальные записи. Затем выделить режим настроек этой
группировки и на закладке Поля группировки мышью перетащить в список
группировки нужные поля (рис. 2.248).
[ Поля группир... Выбранные по. , Отбор Сортировка Условное офо „ Другие настро..
л Доступные поля Поле Тип Г уППироВКИ На л
НСЛ - | Без иерархии
Количество Дата Без иерархии X
; “ Мастер •= СистемныйБлок Без иерархии ♦
1 “ Номенклатура 1 . ии Мастер Без иерархии • 1
«» Номер Склад Без иерархии
< СистемньйБлок
;; и» Склад
I “ Цена
' + Сумма
▼л
Рис. 2.248. Определение списка полей группировки
Затем на уровне глобального отчета добавим еще группировку без указания
группировочного поля Детальные записи. На закладке Выбранные поля пере-
несем в список выбранных полей поля табличной части документа:
Номенклатура,
Количество,
н Цена,
Сумма.
И выберем еще из системных полей поле НомерПоПорядку (рис. 2.249).
Рис. 2.249. Добавление полей в отчет
Выделим режим настроек первой, составной, группировки и на закладке
Другие настройки установим значения параметров вывода Тип макета - Верти-
кально (стр. 433) и Расположение итогов - Нет (стр. 458). Тем самым мы
зададим вывод реквизитов документа в виде вертикального списка без итогов
(рис. 2.250).
Поля группир..
Выбранньв по
Г Сортировка 1 > Условное офо... ,| Другие настро...
Гл7>Тгг--7|ГТ-уУПП1ПпД|.Т1рТ|.’'л-.т~-
Рис. 2.250. Определение списка полей группировки
Программная компоновка
Теперь поместим в документ СборкаКомпьютера кнопку Печать, при нажатии
которой будет исполняться программный код, выполняющий компоновку
данных и представление отчетной формы документа. Создадим основную
форму документа, так как до этого мы пользовались формой, автоматически
сгенерированной платформой.
Затем создадим команду Печать и соответствующую ей кнопку формы и поме-
стим ее в командную панель формы документа (рис. 2.251).
Рис. 2.251. Добавление в форму документа кнопки «Печать»
В обработчике команды Печать напишем следующий код (листинг 2.39).
Листинг 2.39. Обработчик команды «Печать»
Процедура,Печать(Крманда)
Результат = ПечатьДокумента|‘
РезультатЮтображатьСетку = Лож&;
Ложь;
РезультатПоказатьО;
Отчет формируется в серверной функции ПечатьДокумента(). Затем
заполненный данными табличный документ возвращается на клиента и пока-
зывается пользователю (листинг 2.40).
Листинг 2.40. Функция «ПечатьДокумента()»
&НаСервере
Функция11ечаъДокумента()
ДокументОбъект = ЬгквизитФормыВЗначение("Объект'');
Запрос = Новый Запрос;
Запрос.Текст =? "ВЫБРАТЬ
СборкаКомпьютераДата,
СборкаКомпьютера, Номер,
СборкаКомпьютера.Мастер,
СборкаКомпьютера.Продукция КАК СистемныйБлок,
СборкаКомпьютера.Скпад
ИЗ
Документ.СборкаКомпьютера КАК СборкаКомпьютера
ГДЕ
СборкаКомпыотера.Ссылка = &Ссылка";
Запрос.УстановитьПараметрС'Ссылка”, ДокументОбъект.Ссылка);
Результат = Запрос.Выполнить();
ШапкаДок = Результат.Вьнрузить();
ВнешниеНаборыДанных = Новый Структура;
ВнешниеНаборыДанных.Вставить(’'СоставСБ'', ДокументОбъект.ПереченьНоменклатуры);
ВнешниеНаборыДанных.Вставить("ДокументСБ", ШапкаДок);
СхемаКомпоновкиДанных = Докум©нтОбьект.ПолучитьМакет{"ПечатьСборки");
Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки);
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных);
ДокументРезультат = Новый ТабличныйДокумент;
ПроцессорВывода = Новый
ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
II Получение дол. макета для шапки и подвала.
Макет = ДокументОбъект.ПолучитьМакет("Подписи’’);
II Вывод своего макета.
Область = Макет.ПолучитьОбластьрОтветственный");
Область.Параметры.Руководитель = Справочники.Сотрудники.НайтиПоКоду(’,000000003”).Наименование;
ДскументРезультат.Вывести(Область);
Возврат ДокументРезультат,
КонецФункции
В функции определяется запрос для выбора реквизитов текущего документа.
Поле документа Продукция в запросе представлено как СистемныйБлок.
В качестве параметра запроса используется ссылка на документ. Затем созда-
ются два внешних набора данных - СоставСБ и ДокументСБ. Набор СоставСБ
заполняется данными табличной части документа. Набор ДокументСБ запол-
няется данными результата выполнения определенного ранее запроса.
Заметим, что в данном случае запрос к информационной базе «1С:Пред-
приятия» применен только для упрощения примера. На самом деле
предполагается, что данные для внешних наборов данных нужно получать
не из базы «1С:Предприятия», а из какого-то другого источника (например,
из программного объекта или из какого-то внешнего источника).
Затем программно выполняется компоновка данных с использованием
внешних наборов данных и выдача результата в табличный документ.
Иногда бывает нужно выводить какой-либо подвал под отчетом, например,
подпись руководителя. Можно добавить эту строку в макет отчета, но мы
покажем, как это сделать программным путем в отдельном макете, не изменяя
схему компоновки данных отчета. У документа создан макет Подписи с обла-
стью Ответственный и параметром этой области Руководитель.
После формирования отчета в функции ПечатьДокументаО получается
макет табличного документа Подписи, и параметр Руководитель заполняется
наименованием определенного сотрудника из справочника Сотрудники. Затем
область, содержащая этот параметр, выводится в табличный документ.
После этого заполненный данными табличный документ возвращается
на клиента и показывается пользователю.
Запустим «1С:Предприятие». Откроем документ СборкаКомпьютера. Нажмем
кнопку Печать. На экране появится разработанная нами печатная форма доку-
мента (рис. 2.252).
□ & |
»е- т.
Номег К Дата Системный Блок Ма( тер «Склад 8 000000002 11.12,2011 15:09:13 Компьютер для дома Ильин Сергей ' Основной I *
| № Номенклатура Количество Цена Сумма |
%/п . ... ... • I гг-. ^ ... - !
1 'Жесткий диск 1< ззоо ззооГ
2 Материнская плата 1! 3001 3000 |
3:Память 11 1 50? 1 500
4 Сбгрра компы, тера 1! 1 200- 1 200
Итого ..1 9 000
Руководитель г Алексеева Дарья I 4
«г 5 ? ; 5 ₽' *
V I
Рис. 2.252. Печатная форма документа
Теперь продемонстрируем оформление полученной печатной формы
с помощью собственного макета оформления. Для этого возможны два
решения:
1. Создать предопределенный макет оформления непосредственно в схеме
компоновки данных макета документа.
2. Создать собственный общий макет оформления, добавив его в Общие
макеты объектов конфигурации, и использовать его при настройке
отчетов.
Второй вариант более универсален, так как может применяться в даль-
нейшем для различных отчетов, но может понадобиться и индивидуальный
макет оформления для конкретного отчета.
Общий макет оформления
Рассмотрим вариант создания общего макета оформления (стр. 394).
Раскроем ветвь Общие дерева объектов конфигурации. Выделим ветку Общие
макеты и нажмем кнопку Добавить в командной панели окна конфигурации
(рис. 2.253).
Рис. 2.253. Добавление макета оформления
В открывшемся конструкторе макета создадим макет типа Макет оформления
компоновки данных с именем Радуга (рис. 2.254).
Нажмем кнопку Готово. Откроется редактор макета оформления с загру-
женным новым макетом, в котором мы можем отредактировать цвета фона,
текста и границы, шрифты областей макета оформления и т. п. (рис. 2.255).
1' с мструктор макета
Имя:
Сина-мм:
Комментарий:
*
Готово I I, Отмена
р Выберите тип макета: -
| О Табличный документ
| О Текстовый документ
I
। О Двоичные данные
| ОАсЙуе боситегЛ
I О НТМк документ
1 О Географическая схема
' О Графическая схема
] О Схема компоновки данных
I (•) Макет оформления компоновки данных
Рис. 2.254. Создание нового макета оформления
Загрузить из Фай па:
кГй цмяЕи емаКо! пинсвкйМанных Радуга
Области:
О I...‘ к ! ♦ Ф Пример
Подвал группировки
Заголовок иерархической группировки
Подвал иерархической группировки
Заголовок группировки списка
Подвал группировки списка
Заголовок иерархической группировки списка
Подвал иерархической группировки списка
Заголовок группировки колонки
Подвал группировки колонки
Пример отчета
Оформление:
^.Параметр
О] Цвет фона
Цвет текста
Цвет границы
О> Стиль границы
Горизонтальное поло... Поижать влево
Вертикальное полож... Прижать вверх
Шрифт
Отступ
Автоотступ
Пример таблицы
Группировка!
Ресурс
Ресурс
Значение
6
6
6
Группиро Группиро
вка! Пера вка! -1
10
10
10
10
Группиро Группиро
вка2Иера вка2-1
6
6
6
6
6
6
6
6
6
3
3
6
6
6
6
6
6
6
рхия
Ресурс
Группиро Группиро
вкаЗИера вкаЗ-1
6
6
6
6
6
рхия
Ресурс
I
3Н
3 *
Параметры: Параметр: 01.01.2006 0:00:00
Отбор: Группировка! Содержит "Группировка'
Нет линии
Шрифт диалогов и мена
Н ' Стандартный макет... | Очистить макет
Группировка2
Группировка! Иерархия
Группировка!-1
Группировка2Иерархия
Группировка2-1
Группировка2 -1
Группировка2- 2
Группировка2- 2
Группировка2Иерархия
Группировка! -1
Группировка! - 2
Группировка2Иерархия
Группировка2 -1
Группировка2 -1
Группировка2Иерархия
Группировка! - 2
Группировка! Иерархия
Итого
рхия
Ресурс Ресурс
10
10
10
6
6
4
4
10
10
10
10
10
6
6
4
4
10
10
3|
3
31
31
3
Рис. 2.255. Редактор макета оформления
Выделив в верхнем левом окне нужную область макета, мы можем изменить
элементы ее оформления в нижнем левом окне и сразу увидеть результат
оформления этой области в правом окне редакторе макета. При этом названия
областей, содержащих оформление, выделяются жирным шрифтом.
При выделении в списке областей макета нужной позиции двойным щелчком
мыши одновременно выделяется соответствующая ей область результата
оформления, при условии что для этой области задано специфическое оформ-
ление. И наоборот. Для каждой области макета существует возможность
создать несколько уровней оформления. Это можно сделать, выделив нужную
область и нажав кнопку Добавить над списком областей.
В нижнем левом углу редактора есть возможность сохранить и загрузить
макет в ХМЬ-формате. Кроме того, можно в любой момент очистить макет
или загрузить предопределенный Стандартный макет. Это полезно, если вы
не хотите разрабатывать свой макет оформления с нуля или чтобы полу-
чить недостающий опыт в оформлении макетов. Тогда вы берете за основу
какой-либо стандартный вариант оформления, например, Зеленый и меняете
необходимые области.
Поясним все вышеизложенное на конкретном примере. Откроем макет
ПечатьСборки документа СборкаКомпьютера на закладке Настройки и изучим
еще раз структуру нашей печатной формы (см. рис. 2.249). Первой, состав-
ленной из реквизитов документа группировке мы придали вид вертикального
списка. В списке областей макета выделим строку Заголовок группировки
списка. Установим для нее в нижнем окне элементы оформления — цвет
текста и шрифт. В окне результата оформления мы видим пример оформ-
ления группировки списка - она отображается жирным шрифтом и зеленым
цветом текста (рис. 2.256).
Рис. 2.256. Оформление группировки списка
Вторая группировка, отражающая табличную часть документа, будет выво-
диться в виде обычной таблицы с итоговой строкой. В списке областей
макета выделим строку Заголовок таблицы. Установим для нее в нижнем окне
элементы оформления - цвет фона, текста, цвет границы, стиль границы и
шрифт. В окне результата оформления мы видим пример оформления шапки
группировки (рис. 2.257).
Области:
>ания СнстемаК*»мпе “«в г Данных. Радуга
ЦЬ X Й" Пример:
Итог по ресурсам заголовка группировки
Итог по ресурсам подвала группировки
Итог по ресурсам заголовка иерархической группировки
1 А ‘Пример таблицы
Итог по ресурсам подвала иерархической группировки
Итог по ресурсам детальных записей
Общие итоги по вертикали
I
Общие итоги по вертикали списка
/Труптфгшка!
Заголовок таблицы
По умолчанию
Заголовок
Информация
Оформление:
। ‘Параметр
[о
Й'
Цвет текста
Цвет границы
Стиль границы
Шрифт
Отступ
Автоотступ
Горизонтальное поло..
Вертикальное полож...
Размещение
Значение
С 255?2ол'"15™'“’™"'
153.51,0
153,51,0
Сплошная
Шрифт диалогов и меню
Прижать влево
Прижать вверх
Забивать
Г.Т; @ ' Стандартный макет. < Очистить макет
'руппировка?
Группировка! Иерархия
Группировка! -1
Группировка2Иерархия
Группировка2-1
Группировка2-1
Группировка2- 2
Группировка2- 2
Группировка2Иерархия
Группировка!-1
Группировка! - 2
Группировка2Иерархия
Группировка2 -1
Группировка2 -1
Группировка2Иерархия
Группировка!- 2
Группировка! Иерархия
Итого
^Пример группировки
/Группировка!
Группи гиж к а2
Группи рог:ка2
ГруппировкаЗ
{Группировка! Иг эархия
? - — -
ия
есурс Ресурс
ка! Мера вка! -1
Ресурс
Ресурс
6
6
6
6
6
6
6
рхия
Ресурс
10
10
10
10
10
10
10
6
6
4
4
10
10
10
10
10
6
6
4
4
10
10
руппиро Группиро Группиро Группир< В
. вка2Иера вка2-!
6
И
+
1
Г
Рис. 2.257. Оформление шапки группировки
Аналогично, выделив в примере группировки строку детальных записей,
установим элементы оформления для соответствующей выделенной области
макета Детальные записи. Выделив итоговую строку в примере группи-
ровки, установим оформление для области макета Общие итоги по вертикали.
Мы пока для простоты не использовали возможность создания нескольких
уровней оформления для областей макета. Но в случае вложенных друг
в друга группировок это свойство желательно использовать для большей
наглядности отчета.
СОВЕТ
Чтобы приобрести необходимый опыт, можно после оформления каждой
области проверять получившийся результат. Если вы указали оформление
не той области, которая отображается в отчете, она будет выводиться без
оформления либо в виде оформления области по умолчанию, если оно
задано.
Проверим результат. На закладке Другие настройки установим макет
оформления - Радуга. Запустим «1С:Предприятие» и откроем документ Сбор-
каКомпьютера. Нажмем кнопку Печать. Документ будет оформлен созданным
нами макетом оформления (рис. 2.258).
Рис. 2.258. Печатная форма документа
Чтобы создать универсальный макет оформления, применяемый к разным
отчетам, нужно заполнить остальные области макета, не использованные
в нашем примере. В первую очередь это области заголовка отчета и инфор-
мации об отборе и параметрах, которые содержатся в областях макета
Заголовок и Информация. Далее, применяя новый макет оформления для
других отчетов, содержащих таблицы и вложенные группировки, путем
нескольких итераций нужно заполнить те области макета, которые остались
без оформления.
Макет оформления в схеме компоновки
Теперь рассмотрим пример создания предопределенного макета оформления
непосредственно в схеме компоновки данных (стр. 381). Откроем макет
ПечатьСборки документа СборкаКомпьютера на закладке Макеты. Как видно,
макет представлен в виде обычного табличного документа, областям кото-
рого можно задать нужное оформление.
Но сначала мы должны установить имена группировок, чтобы использовать
их в макетах оформления. На закладке Настройки выделим нужную группи-
ровку и вызовем ее контекстное меню. Выберем в нем пункт Установить имя
(рис. 2.259).
Первой, составленной из реквизитов документа группировке зададим имя
Шапка, а группировке Детальные записи - имя Табличная часть. Перейдем на
закладку Макеты и создадим макет оформления для группировки с именем
Шапка (рис. 2.260).
Наб:ры данш к 3 . лвязи: наборов..., ,; *-'ыч'«г ,мч„
ресурсы
Пар эметр-- 1 I Макеты 1 ,. Е
Вчожтнныесх
Настройки |~
Гимя вариа.., ,.Предсгавя.
Основной
€> 231 Отчет
Номер, Дата, СистемныйБлок, Мастер,гклад (Шапка!
<Д? ж алией;
Настройки: Гтчет <Детальные
Выбранные пт ; > Отбор I
;’р ..Параметр
И ! Й; Макет оформления
О' Расположение итогов
О Расположение полей группи
!! IО! Расположение группировок
О: Расположение реквизитов
О; Расположение ресурсов
О Расположение общих итогов
Н Ю : Расположение общих итогов
Ед
ЕВ>
Новая группир» вка...
Новаятаблица
Новая диаграмма
Новый вложенный отчет..
Скопировать
Изменить
Удалить
Конструктор настроек...
Переместить вверх
П ремеетить вниз
Сгруппировать...
Разгруппировать
Установить имя..
а - “ _ '
Включить все
(5? Выключить все
>т
Г>
Се1
е настро.. ।
СвУЗМЧЕр
СМ*5Ь|'Й+У0<лп
5-
Рис. 2.259. Установка имени группировки
Документ |рг='. омпьюте< ш ПечаггъСб^ркм
Ц. ’--ЬиЛ- -
| Ресурсы Парам
Набор Связи и.,
Л-’ Л 2
й Добавить макет поля
Макеты а Вложен. Настро
,4
ВЫЧТИ 1 ‘
3
5
Добавить макет литирсыи
’ I
!
^2 Добавить макет заголовка группировки
‘’Ч Добавить макет ресурсов
. 5
Параметры макета;
,.......—“Г2----------------
•- Имя парама.. > Выражение | А /
ЛО .!
12 <
Я Д
14 ]
У
-16 ;
17 |
18 I
I
Рис. 2.260. Добавление макета группировки
Можно создать следующие типы макетов:
Макет поля используется для оформления определенных выводимых
полей;
Макет группировки используется для оформления группировки;
Макет заголовка группировки используется для оформления имен выво-
димых в группировке полей;
и Макет ресурсов используется для оформления ресурсов таблицы,
т. е. данных, расположенных в ячейках таблицы.
Выберем пункт Добавить макет группировки. В открывшемся диалоге выберем
либо имя группировки Шапка, либо список полей этой группировки и тип
макета Заголовок, который используется для оформления значений группи-
ровки, выводящихся в начале группировки (рис. 2.261).
Рис. 2.261. Выбор имени и типа макета группировки
В правом окне, как и для обычного макета печатной формы, настроим свой-
ства ячеек области макета, где будет располагаться шапка документа. Так, для
ячейки Р2С1 в строку Текст введем следующее выражение (листинг 2.41).
Листинг 2.41. Шаблон для ячейки макета «Р2С1»
Сборка системны) блоков № [Номер] ст [Дата]
Укажем вариант заполнения Шаблон и элементы оформления ячейки - шрифт
и цвет текста (рис. 2.262).
Рис. 2.262. Свойства ячейки группировки «Шапка»
В этом шаблоне использованы параметры Номер и Дата. Для ячейки КЗС1
в строку Текст введем следующее выражение (листинг 2.42).
Листинг 2.42. Шаблон для ячейки макета «НЗС1»
Системный блок: "[СистемныйБлок]" собрал мастер: [Мастер]
Укажем вариант заполнения Шаблон и элементы оформления ячейки. В этом
шаблоне использованы параметры СистемныйБлок и Мастер. Для ячейки К4С1
в строку Текст введем следующее выражение (листинг 2.43).
Листинг 2.43. Шаблон для ячейки макета «Н4С1»
склад: [Склад]
Укажем вариант заполнения Шаблон и элементы оформления ячейки. В этом
шаблоне использован параметр Склад.
Теперь зададим границы области макета оформления группировки Шапка.
Вызовем окно настройки диапазона границ, и, не закрывая это окно, выделим
мышью в правом окне нужную область. Сохраним диапазон, нажав в его
окне кнопку выбора. После этого в левом нижнем окне появится список
параметров, определенных для макета (рис. 2.263).
УЧ Документ СборкаКомпьютера: ПечатьСборкп
Наборы данных Связи наборов да.. Вычисляемые поля
Макет
Область
! Шапка: Заголовок
। =» Дета
। *=» СистемныйБлок
• =» Мастер
< = Склад
Номер
Дета
СистемныйБлок
Мастер
Склад
Па аметрь. Макеты Вложенные схемы
, ।
; <Сбср^а системных блоков № [Номер] от[Дата]>
]<Систем0Ый блок “[СистемныйБлок]" собрал мастер [Мастер]
’<склад. [(Ьклад]>
Настройки
7 ч»
4
Параметры макета:
Имя параметра Выражение
б
Б
7 '
8 .
9 '
Ж.
11
12
13
ЙГ
15
16^
17_
18
20
22 |
23
Нмап
: Н2:Я6
2
3
2
3
4 б
6
Рис. 2.263. Определение границ области макета
По умолчанию платформа присвоит выражения для расчета значений параме-
тров. Переопределим выражение для параметра Дата, чтобы дата документа
отражалась в привычном формате (листинг 2.44).
Листинг 2.44. Выражение для параметра «Дата»
Формат(Дата,"ДФ=‘сЗс5.ММ.уу"')
ВНИМАНИЕ
Список параметров, заданных для макета, появится в окне Параметры макета
только после определения границ диапазона области. При переопределении
диапазона список параметров формируется заново, и выражения параметров
заменяются значениями по умолчанию.
Для группировки с именем Табличная часть потребуется создать три макета
оформления:
макет заголовка группировки - для вывода шапки группировки,
макет группировки - для вывода значений группировки,
макет группировки - для вывода общих итогов группировки.
Добавим макет заголовка группировки для вывода шапки группировки (см.
рис. 2.260). В открывшемся диалоге выберем имя группировки Табличная часть
и тип макета Заголовок. Зададим элементы оформления ячеек заголовка груп-
пировки - шрифт, цвет текста, фона и границы. У всех ячеек в строке Текст
укажем произвольный текст шапки, а в строке Заполнение - Текст (рис. 2.264).
Рис. 2.264. Свойства ячейки заголовка группировки «Табличная часть»
Определим границы диапазона области заголовка группировки. Параметров
для этой области мы не использовали.
Добавим макет группировки для вывода значений группировки (см. рис.
2.260). В открывшемся диалоге выберем либо имя группировки Табличная
часть, либо список полей этой группировки и тип макета Заголовок. Зададим
элементы оформления ячеек значений группировки - шрифт, цвет текста,
фона и границы. У всех ячеек в строке Заполнение укажем Параметр,
а в строке Параметр - имя конкретного параметра (рис. 2.265).
Порядок
Обвести
ЦветРамки -М153,51,0
ГраницаСлева , — Сплошная
ГраницаСверку Сплошная
ГраницаСправа [— Сплошная
ГраницаСнизу \— Сплошная
Нет заливки
Нет линии
Рис. 2.265. Свойства ячейки группировки «Табличная часть»
1ГЖ11! * ’ \Й
Ячейки т.г^-ьХ.1 )
* Основные:
Размещение! екста {Авто л‘[
Имя ;ЯВС1 Защита Щ Гиперссылка О РежимИ змененияРазмераКолонки 'Обычный
т Макет: 1
аметг
араметр
П. асшифровки
ИспользованиеРасшиФровки Ячейка
► Значения:
► Положение:
/* Оформление:
| Шрифт [Шрифт диалогов и меню
ЦветТ екста
АетоОтметкаНезаполненного О
В ыделятьОтрицате льные
ЦветФона ;ГП Авто
ЦветУ зора И Авто
х
Узор
С-
Определим границы диапазона области заголовка группировки. Платформа
сформирует список параметров для этой области и заполнит значениями
по умолчанию. Так как для поля порядкового номера не найдено соответ-
ствия, зададим его значение, нажав кнопку выбора (рис. 2.266).
Й’ х
Параметры мекета.
Имя параметра Выь жение
“ Порядок
“ Номенклатура Номенклатура
““ Количество Количество ,
- -- — —{
> «* Цена Цена
I «" Сумма , Сумма
I
I
I
(
Ю! ЙН а .. ‘ ЛЙЛ. : .
Наборы данных Связи наборов д.. Вычисляемые по... Рео/ сы Парамет ы Макеты Вложенные схемы Настра’Ки
Рис. 2.266. Установка выражения для параметра «Порядок»
Добавим макет группировки для вывода итогов по группировке (см. рис.
2.260). В открывшемся диалоге выберем имя группировки Табличная часть
и тип макета Общий итог заголовок, который используется для оформления
итогов группировки, выводящихся в начале группировки. Зададим элементы
оформления ячеек итоговой строки группировки - шрифт, цвет текста,
фона и границы. Зададим ячейку Итого с заполнением Текст и ячейку Сумма
с заполнением Параметр. Определим границы диапазона области заголовка
группировки. Параметр этой области Сумма определится автоматически.
Чтобы общие макеты оформления не влияли на макет нашего документа,
в режиме настроек на закладке Другие настройки установим макет оформления
(стр. 393) Без оформления. Запустим «1С:Предприятие» и откроем доку-
мент СборкаКомпьютера. Нажмем кнопку Печать. Документ будет оформлен
созданным нами макетом оформления (рис. 2.267).
- Т. ПС. Д 71 М м+ М- х . - — X
| Сборка системных блоков № 000000003 от 11.01.12
I Систетлный блок: "Компьютер игровой" собрал мастер Соколов Авдрей
| склад: Основной
Ие Номенклатура Количество Цена Сумма
1 1 Жесткий диск 1 4 000 4 000
1 2 Материнская плата 1 3 000 3 000
1 3 Память 1 2 000 2 000
1 4 Сборка компьютера 1 1 500 1 500
Итого: 10 500
Руководитель Алексеева Дарья
маа
Таким образом, на этом примере мы научились:
использовать в схеме компоновки наборы данных - объекты;
заполнять объекты встроенного языка данными и осуществлять
программную компоновку отчета, используя внешние наборы данных;
разрабатывать собственный общий макет оформления;
разрабатывать предопределенный индивидуальный макет оформления
в схеме компоновки данных.
Пример 16
Система компоновки данных позволяет выводить в отчете иерархические
данные. Более подробно о работе с иерархией рассказывается в третьей
главе на стр. 291.
Допустим, пользователю нужно видеть информацию в отчете с промежуточ-
ными итогами:
по группам номенклатуры, созданным в иерархическом справочнике;
по другому признаку иерархии, построенному произвольным способом.
Вывод иерархических данных
Для решения первой задачи откроем отчет Продажи номенклатуры в режиме
1 С:Предприятие. Выполним команду Все действия ► Изменить вариант...
и выделим в структуре отчета группировку Номенклатура. На закладке
Группируемые поля для группировки Номенклатура укажем Тип группировки -
Иерархия (рис. 2.268).
«ь В^мт- » а Прада -и момент атурь" - Лем «г рационная конфигурация "Си. {1С Предприятие' X
[ Вариант "Оснпенои^* отчета "Продажи номенклатуры"
1
Все действия
Структура отчета.
& Отчет
© У*®0 Контрагент
5
..К/ ад
Период
поп
I , < I I юл ..
Отб Сор..
Выбрать
Все действия •» • ) Новое поле ; Новое авто поле ! X < ❖
Все действия
К-
Тип группировки
Номенклатура
I .К •
Без иерархи
И водам*
Только иерархия
Доступные поля
* Номенклатура
“ Период
& Количество
"$ Л Стоимость
' Завершить редактирование Отмена Все действия ’ I
Нажмем Завершить редактирование и сформируем отчет. Информация в отчете
представлена с промежуточными итогами по группам справочника Номен-
клатура — Комплектующие, Услуги, Собранные компьютеры (рис. 2.269).
М М* М-
25 Началопериода
® '> ь5 Конец периода
01.12 2011
15.12.2011
Продажи номрмюотуры
Вариант отчета' 'Основной
> Сформировать ; 2^ Настройка...
Продажи товаров и услуг
а
9
П.. (ЮПредпри
'Параметры: Начало периода: 01:12.2011
Конец периода: 15.12.2011
Все действия-
Контрагент Номенклатура Период Количество Л.Л- Стоимость
,ООО '‘Автоматика" 11 500,00
Собранные компьютеры 1 10 000.001
Компьютер для дома 10 000,00
1 11 декабря 2011 г. 1 10000,00
I Услуги 2 I
Диатостика компьютера „ 2
5 декабря 2011 г. 1 1 000.00!
11 де-абря2011 г. 1 Г 500.001
ООО "Система' 10000.00
! Собранные компьютеры 1 10000,00 |
| Компьютер для офис* 1 10 000,00
Г 9декгбря2011 г. 11 10 000,00
.ООО "Стиль” 10 000,00
Комплектующие 1 10 000,001
1 Монитор 1.С0 1 10000,00
| 6 де сабря2011 г. 10 000,00
Итого 31 560.00
! * Г | 1
Рис. 2.269. Результат отчета с иерархической группировкой по номенклатуре
Вывод данных в собственной иерархии
Теперь рассмотрим пример построения собственной иерархии. Создадим
отчет, который будет отражать поступление товаров по складам с иерархией
номенклатуры, построенной по собственному принципу (рис. 2.270).
, —_—™ склад! Приход
Номенклатура .. Л. 13ДОЗ
1 Товары для сборки 13,000
' ОЗУ 5,000
। Память 5,000
Основные детали 8,000
Жесткий диск 3,000
Материне ая плата 5X00
Е и -НИЧНЫЙ „ ,, „ г _ , Товары для сборки 24/МЮ 24/300
• Мониторы 4,000
Монитор КС
Прочие детали 20,000
' Веб-ка лера 10,000'
Микрофон 1 к
1-'»' . •; МП
Для этого в справочнике Номенклатура создадим еще один реквизит
МойРодитель, указав тип данных СправочникСсылка. Номенклатура
(рис. 2.271).
Свойства* МойРодитель
Синоним
Основные:
Имя
Иьщексировать
Использование:
Использование
Рис. 2.271. Создание поля для построения иерархии
Комментарий
МойРодитель
Мой родитель
Для элемента
Не 14шексировать
Полнотекстовый поиск Использовать
► Представление:
В режиме 1С:Предприятие создадим в справочнике Номенклатура новую
группу Моя иерархия для хранения списка элементов собственной иерархии.
Внутри этой группы создадим элементы и заполним у них поле Мой родитель
(табл. 2.1).
Таблица 2.1. Заполнение поля «Мой родитель» у элементов группы
«Моя иерархия» справочника «Номенклатура»
Наименование Значение поля «Мой родитель»
Товары для сборки
Мониторы Товары для сборки
ОЗУ Товары для сборки
Основные детали Товары для сборки
Прочие детали Товары для сборки
Далее откроем группу Комплектующие и заполним у них поле Мой родитель
(табл. 2.2).
Таблица 2.2. Заполнение поля «Мой родитель»
у элементов группы «Комплектующие» справочника «Номенклатура»
Наименование Значение поля «Мой родитель»
Жесткий диск Основные детали
Материнская плата Основные детали
Память ОЗУ
Монитор ЬСВ Мониторы
Веб-камера Прочие детали
Микрофон Прочие детали
Таким образом, мы подготовили данные для построения новой иерархии.
Конечно, можно было организовать такую иерархию с помощью групп
и получить отчет, используя стандартную иерархию справочника, но мы
хотим показать пример, который можно использовать для любого, в том
числе неиерархического, объекта данных.
Теперь перейдем к созданию самого отчета. Добавим новый объект конфи-
гурации Отчет и назовем его ПоступлениеТоваров. Откроем конструктор
схемы компоновки данных и добавим новый набор данных - запрос. Назовем
его Приход. Откроем конструктор запроса. В качестве источника данных для
запроса выберем виртуальную таблицу регистра накопления ОстаткиНомен-
клатуры. Обороты. В список полей перенесем поля:
Склад,
Номенклатура,
КоличествоПриход.
На закладке Объединения/Псевдонимы изменим имя у поля КоличествоПриход на
Приход. Из этого запроса мы будем получать нужные нам данные о поступлении
товаров. Нажмем ОК и вернемся в конструктор схемы компоновки данных.
Чтобы выполнить иерархическую группировку, процессору компоновки данных
требуется информация об источнике данных для построения иерархии. Поэтому
нам необходимо создать набор данных, содержащий информацию о текущем
элементе справочника Номенклатура и его родителе, с последующим указа-
нием связи набора к самому себе. Выделив корневой элемент наборов данных,
добавим набор данных - запрос. Назовем его Иерархия. Откроем конструктор
запроса. В качестве источника данных для запроса выберем объектную таблицу
справочника Номенклатура. В список полей перенесем поля:
Ссылка,
МойРодитель.
Перейдем на закладку Условия, раскроем таблицу Номенклатура и перетащим
мышью поле Ссылка в список условий. В предложенном по умолчанию
условии выберем вид сравнения - В (рис. 2.272).
Й.1 Койефуктер
. Таблице'и
Группировка Условия"*) Дополн-те. .» Лт-одинен.
Поря®
, Комлем
!11 Поля .
» ।! О Номенклатура
Ссылка
130 ВерсияДанных
ПометкаУдаления
'=» Предопределенный
'₽,* а» Родитель
ЗтоГруппа
“» Код
Наименование
® “ ВодНоменклатуры
>. 3 |Номер]И. {Условие
! 4 1 1'0;®“ Номенклатура.Ссылка
| - С--------------------- „ ----
I <>
’ Ссылка
। В Иеремии
’ — —Между
Подобно
Г Отмена
Справка
1‘Же’ сИТ
4
Н
I г
.131
е
На закладке Объединения/Псевдонимы изменим имя у поля Ссылка на Номен-
клатура. Это важно, так как мы будем использовать это поле для связи наборов
данных, и оно должно в обоих наборах иметь одинаковый путь (рис. 2.273).
• Имя , Безду.,.;
' Запрос 1 ; О г
.... .........,
1
1 ИЫЯПОЛЯ
Номенклатура
; «я» Мо^одитель
•I. - ~
I
Т~~--------------------------”-------
Запрос!
• • - в!С< -Ту« г. I—« С-М
; “и НоменклагураСсылка
; °® НоменклагураМойРодитель
Запрос.: ]
“и;
< Назад ; |Г Далее5~] ( ОК | ГТ^тмена. | I Справка ] Т
Рис. 2.273. Изменение псевдонима поля в запросе
Нажмем ОК и вернемся в конструктор схемы компоновки данных. Текст
запроса набора Иерархия примет вид (листинг 2.45).
Листинг 2.45. Текст запроса набора «Иерархия»
ВЫДАТЬ
Нен ленклатура Ссылка КАК Номенклатур*
Номенклатура МоиР^дителс
ш
Справочник;Номенклатура КАК Номенклатура
Ж
Номенклатура Ссыпка В{&Ссылке);
На закладке Связи наборов данных необходимо добавить связь:
между наборами данных Приход и Иерархия по полю Номенклатура;
для набора данных Иерархия нужно установить связь к самому себе от
поля МойРодитель к полю Номенклатура. Это условие позволит последова-
тельно получить всех родителей элемента.
В настройках связи зададим параметр Ссылка, который был определен для
запроса набора данных Иерархия. В этот параметр будет помещено значение
связи источника (рис. 2.274).
ВНИМАНИЕ
Поле для связи наборов данных обязательно должно иметь одинаковое имя
в обоих наборах, иначе наименования родителей в отчете будут пустыми!
На закладке Ресурсы определим ресурсы отчета (стр. 370).
ЙГ1г годом ЧжДОде:''•=тг^Л*в ввивйкгйаик " . *...... ............•. СЗ X
Н^бо^ыданньи ; Свяеи наборов д., Вычисляаиыепр, ' Ресурсы ) Параметры » , МаквгЫ» Вложение схемы . Настройки
Рис. 2.275. Окно ресурсов отчета
На закладке Параметры (стр. 376) мы видим параметры компоновки данных,
созданные платформой. Для параметра Ссылка по умолчанию установ-
лена недоступность для пользователя. Мы будем использовать стандартный
период для указания периода отчета. Добавим параметр с именем Период
типа СтандартныйПериод, а для параметров НачалоПериода и КонецПериода
укажем Выражение для расчета и запретим их редактирование пользователем
(листинг 2.46).
Листинг 2.46. Выражение для расчета параметров «НачалоПериода»
и «КонецПериода»
&Гэрибд,ДатаНыала
&Перйод.ДатаО^лнчания
В результате параметры компоновки данных примут вид (рис. 2.276).
П X
Имя
Чабсгыданных ' ' Связь набфсрд
I, Вычисляемые по
I гастроьки
‘ Д... Д Значени
пёрЛ-..тоГ[з,..
Тип
. Заголовок
< *
Конец периода Дета
1ериод
Речей <] Параметры Макеты
Вложенные см .ль.
Ссылка
' Период
Выражение
"лПериодДетаНачала
^Период. ДетаОкончанич
СправочникСсылка.Номенклетура ; 1; Справочник
СтандартныйПериод
Рис. 2.276. Установка параметров отчета
' КонецПериода
>-----------
, Ссылка
Определим структуру отчета. На закладке Настройки выделим корневой
элемент Отчет и добавим в него группировку по полю Склад. Затем добавим
вложенную в нее группировку Номенклатура. При выборе поля группировки
укажем тип группировки Иерархия. На закладке Выбранные поля перенесем из
списка доступных полей поле Приход (рис. 2.277).
Настройки
Связи наборов а
Ив» варианта: Представив
Основной
Условное.
Параметры
Доступные поля
Поле
4
Г'риш
«8>
Основной
Н .бренные поля
Привод
О СистемныеПоля
Ез Параметры Данных
“ Номенклатура
«• Склад
*
Отчет
© Склад
Настройки: Отчету Номенклатура (Иерархия)
Вычисляемые по Ресурсы
Выбранные... Отбор Сортировке
——------— -----------------„---
Параметры Макеты Влаж иные схемы
1 Отчет Поступление? старое: О « наяГхемаКомпоноекиДанных
Наборы данных
Пользоваг. Другие нас..
Рис. 2.277. Определение полей и группировок отчета
На закладке Параметры установим значение параметра Период - Прошлый
месяц и включим этот параметр в состав быстрых пользовательских настроек
(рис. 2.278).
Параметры ) Выбранные Отбор
Ссгщ овка Условное...
Пользоваг..
О Отображать недоступные параметры (устанавливать значения недоступных параметров не рекомендуется) &
| Параметр
' Дата начала
Период
01.12.2011
Рис. 2.278. Настройка периода отчета
Заметим, что реальные значения дат стандартного периода определяются
во время исполнения отчета. Поэтому период отчета будет автоматически
меняться в зависимости от фактической даты запуска отчета. На закладке
Другие настройки установим макет оформления (стр. 393) отчета Радуга и заго-
ловок отчета Поступление товаров. Выполним отчет (рис. 2.279).
Мы видим, что данные в отчете выводятся с заданной нами новой иерар-
хией, кроме того, отчет оформлен созданным нами в предыдущем примере
макетом оформления.
т~—---------
? Прошлый месяц
| Выбрат^вариант
Все действия »;
Поступят. е товаров
Вариант отчета: [Основной
Сформиров^гъ 'I [гЦ Настройка...
Рис. 2.279. Результат отчета
Поступление товаров
Еездйиипдай: ' ' ' " ' ЛЗДМ
I Товары для сборки 13,000
ОЗУ 5,000
1 Память 5,000
। Основные детали 8,000
| Жесткий диск 3,000
Материнская плата 5.000
.... с.к..
* Товары для сборки 24,000
' Мониторы 4,000
I Монитор ЕСО 4,000
I Прочие детали 20,030
; Веб-камера 10,000
{ Микрофон 10 000
Стандартная расшифровка полей отчета
Продемонстрируем теперь на этом же примере работу с расшифровко|1
(стр. 309). Предположим, мы хотим иметь возможность открывать из отчета
первичные документы по поступлению товаров. Для этого нам нужно дета-
лизировать записи в отчете по полю Регистратор, то есть документу, котор 1,1
произвел движения о поступлении товаров в регистре накопления Остатки Но-
менклатуры. Откроем схему компоновки данных на закладке Наборы данньфс
и вызовем конструктор запроса набора данных Приход. Вызовем диалог
параметров виртуальной таблицы ОстаткиНоменклатуры.Обороты. Для этогр
в списке таблицы нужно нажать кнопку Параметры виртуальной таблицЦ.
В открывшемся окне параметров зададим значение параметра
ность - Регистратор (рис. 2.280).
Периоду
В список полей запроса добавим поле Регистратор. Нажмем ОК и вернемся
в конструктор схемы компоновки данных. Поле Регистратор появится
в списке доступных полей набора данных Приход. Теперь добавим его
в структуру отчета. На закладке Настройки выделим группировку Номенкла-
тура (Иерархия) и добавим вложенную в нее группировку Детальные записи
без указания группировочного поля. На закладке Выбранные поля перенесем
из списка доступных полей поле Регистратор (рис. 2.281).
Наборы<
СВЯЗИ НЭбОрОЕД. ,
]Вычй(Ш^-1Ь®по4. ,р Ресурсы Параметры Макеты . . ВяджвнНдесжмы. I Настройки [
КС®
Имя варианта' Представле.
Основной
» I
’ха< <» 1ч?
л Отчет
0 Склад
0 Номенклатура (Иерархия)
Ош н >
!
Настройки: Нт кт < Детальные записи>
Параметры ! Выбранные..,
Отбо{ р Сортировка . йсУйвно^х,. ^Попызовет.
Другие нас:...
Доступные поля
в® Номенклатура
Поле
Л-оЧ--ЛЛЛГ А4
! ® Выбранные поля
*
»
Р
И
( {
вал
Регистратор
да
С®
ЕЙ
Склад
Приход
СистемныеПоля
ПараметрыДанных
9 Приход
Рис. 2.281. Добавление группировки «Детальные записи» и поля «Регистратор» в отчет
Выполним отчет. Записи в нем будут детализированы по документу-
регистратору. Двойным щелчком мыши на этом поле мы можем открыть
соответствующий документ о поступлении товаров, а правой кнопкой мыши
вызвать выпадающее меню расшифровки. Двойным щелчком на поле ресурса
(колонка Приход) можно вызвать диалог выбора поля для расшифровки
(рис. 2.282).
Таким образом, если мы хотим расшифровывать информацию по какому-
либо детальному полю, мы должны добавить его в список доступных полей
отчета.
Переопределение поля для расшифровки
В некоторых ситуациях необходимо, чтобы при расшифровке, выполняемой
пользователем над одним полем, расшифровка выполнялась над другим
полем. Рассмотрим эту возможность на примере отчета Сборка системных
блоков (стр. 81). Допустим, необходимо, чтобы при расшифровке по полю
Номер открывалось значение документа-регистратора.
Поступление товаров- . (1С’Предприятив]
м,
Н М* Н~
Посгупленнр товаров
Вариант отчета Основной
> Сформировать1 а® Настройка.
* ,- Д| Период
Выбрать ва->иант1,1
Все действия» кЭ
Прошлый месяц
'.Т“*
Поступление товаров
Параметры Период: 0112.2011 - 3112.2011
Склад Н (ненкпатура ' Привод I
Регистратор (ХНРДОЙ ...:И » ...... . й: <3,0011
|Говэр|| для сб; .эки 13.000
; ОЗУ 5,000
1 Память 5,000
Приходная накладная 000000002 от 05122201115:5317 5.000
| Основные детали 6,000
| Жесткий диск 3,000
| Приходная накладна1 Ю0000001 от 05.12 2011 1222.39 3,000
Материне кая пла"*. 5,000
5,000
Походная накПаднаг ' ТЮРООГГ от 0512 2011 15-53.17 |
Расшифровать..
Открыть "Регистратор = Приходная накладная 000000002 от 05.12 2011 15:53’17'
Отфильтровать
Упорядочить
Сгруппировать
Оформить
Копировать
Свойства
Т1
Ж-
3
В
0
Я
►
Рис. 2.282. Результат отчета
Для того чтобы переопределить расшифровку для поля Номер, создадим для
этого поля макет. Для этого откроем схему компоновки данных отчета, пере-
йдем на закладку Макеты и создадим макет поля Номер (рис. 2.283).
Набор
>’ Связи,
Добавить макет поля
йя| Добавить макет группировки
Добавить макет заголовка группировки
Добавить макет ресурсов
Отчет СборкаСмстемныхБлоков: ОсновнаяСиемаКомпонощу*Донных
Ресурсы Паэгм Макеты I Ело.*
Вычис..
Настр.
Параметры макета:
I-----------------------------
Имя параме... Выражение
8
_9_
_10_
11
1?2
1з_
14
15
16
_17_
1{Г
ЛЯ.
После этого в добавленной строке, в поле ввода колонки Область нажмем
кнопку выбора. При этом табличный документ с макетом перейдет в режим
выбора области. Выберем ячейку, в которой будем располагать макет поля,
и нажмем клавишу Еп1ег. Колонка Область при этом заполнится адресом
выбранной области. В свойствах ячейки области укажем заполнение ячейки
Параметр, имя параметра Номер и укажем имя параметра расшифровки
Расшифровка (рис. 2.284).
: ^Ячейки
«▼Основные
О тйства. Ячейки
Заполнение
Параметр
Защита
Гиперссылка
РежимИзмененияРазмераКолонки {Обычный
▼ Макет:
1 Параметр
!Номер
I
П зраметрР-зсшифроэк^
Размещение! екста
Имя
й
'.Авто
в |С1
Э
О
I ИспользоеаниеРасшиФроёки < Я чейка
▼ Значения:
СодержитЗначение
I ипЗначения
3 лементУлоаЕпениэ
Формат
Ф орматРедакпроеания
Маска
► Положение:
? „
► Оформление:
Рис. 2.284. Свойства ячейки поля макета
В выражении параметра Расшифровка введем выражение для поля Регистратор
и зададим для поля основное действие расшифровки - Открыть значение
(рис. 2.285).
Чабот ы дан.. Связи набор.. , < Вычисляем.,, Ресурсы
Макет
Г*| Номер
та
Параметры макета:
----------------------------
"Лма параметра Выражение
' « Номер ! Номер
; (32 Расшифровка
Г
I
Область
; Параг®,пь! Макеты Вложенные... Настойки
маалл
Выполним отчет. При двойном щелчке мыши на детальных записях отчета
в колонке Номер будет сразу же открыт документ-регистратор Сборка компью-
тера с соответствующим номером (рис. 2.286).
С )рге. темны бл и {1 _ Предприятие)
Сборка системных блоков
Вариант отчета Основной
$»« Сформировать 1Настройка...
”) Начато .ери оа
Конец периода
ПС-1 Сортировка
Е=1
Сборка системных блоков
Параметры: Начало периода: 01 12 2011
Конецпериода' 15.012012
Системный блок
Мастер
Количество
Компьютер для офиса
‘ Соколов Андрей
Компьютер для дома
Ильин Сергей
Компьютер игровой
Соколов Ацдреи
Итого
1
1
1
1
1
1
1
1
1 ~Т
3
15.012
Дата, --
Номер
Дата
8 500,00
8500,00
8500,00 06122011
9 000,00
9000,00
9 000,00,11.1" 201*
10 500,00
10 500,00
10500,00111 012012
28 000 00
Расшифровать..
Открыть “Рег'-стрзтор » Сборка ко пыотера 000000001 от 0612 201115.33.40
Отфильтровать
Упорядочить
Сгруппировать
Оформить
Копировать
Свойства
Ц I
Я
I
Рис. 2.286. Результат отчета
При этом для всех полей отчета выполняются стандартные действия расшиф-
ровки. Двойным щелчком на поле ресурса вызывается диалог выбора поля
для расшифровки, двойным щелчком на поле не ресурса открывается
значение поля, а также при нажатии правой кнопки мыши вызывается выпа-
дающее меню расшифровки, которое состоит из возможных действий над
расшифровкой: Расшифровать, Открыть, Отфильтровать, Упорядочить, Сгруппи-
ровать, Оформить. Действие Расшифровать недоступно, если данный элемент
расшифровки - Детальные записи, кроме случая, когда он содержит поля-
ресурсы.
Изменение действий расшифровки
Однако разработчик может реализовать и свой, нестандартный, вариант
расшифровки. Продемонстрируем этот вариант на примере отчета Сборка
системных блоков. Откроем форму отчета. Создадим обработчик события
ОбработкаДополнительнойРасшифровки для поля табличного доку-
мента Результат (рис. 2.287).
Свойст!иЬЙййгё
Основные:
Заголссог
Доступность
Т олькоПрссмстр
П ропус ка г ьП рнВ воде
Вид
ПутьКГ.ан! 1Ы1.-1
Положе ниеЗаголоека
Видимость.
Пользовательская видимость Открыть
Активе зировэтьП оУ молчанию 0
► Использование:
► Офор| уяснив:
► Расположение:
Собьл ия.
ПриИзг 1СгГ?ЬИИ
Выбор
О бработт аРас шифровки
Обработт а ДополнительнойРасшиФровки;
ПриИзмеменииСодержимогоОбласти ;
0
□
1Авто
4П оле табличного документа
‘Результат
1Нет_____
0
Рис. 2.287. Обработчик события «ОбработкаДополнительнойРасшифровки»
для поля «Результат»
В процедуре этого обработчика и будет формироваться контекстное меню
расшифровки отчета и определяться поведение отчета при возникновении
события ОбработкаДополнительнойРасшифровки, когда пользователь
нажатием правой кнопки мыши на ячейке результата отчета вызывает меню
расшифровки. Заполним его следующим образом (листинг 2.47).
Листитг 2.47. Процедура обработчика события
«ОбработкаДополнительнойРасшифровки» для поля «Результат»
Резулы иОбр^ббтк^полнйТефна^ Расшифровка, С|андартнаяОбработка)
1рем Выбр< нноеДействие;
й ПараметрыВыбран! югоДеиствия;
8 4 Ч“.|
:СЙ1- артнаяОбработка = Рожь;
г- т^отка! асшифровки > Новый Обработка₽асшифровкиКо1ИпоновкиДанны/(Д^нныерасшифровки.
Новый ЛсточникДоступнЬ|ХНасроек’.(омг^новь/Данных(Отчет)):
< ‘ тЛ г -
ДоступныеДействия = Новый Массив();
ДослпныеДействия.ДобавигьЩействиеОбработки-'асшифровкиКомпоновкиДанных.ОткрытьЗначение);
ДосглныеД<.'йтвия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Отфильтровать);
ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Расшифровать);
ДополнительныеДействия = Новый СписокЗначений;
ДололнительныеДействия.Добавить(''Действие 1");
ДополнительныеДействия.Добавить(’Действие2");
ДополнительныеДействия.Добавить(пДействие 3");
II Осуществим выбор действия расшифровки пользователем.
ОбработкаРасшифровки.ВыбратьДействие(Расшифровка,ВыбранноеДействие1
ЬламетрыВыбранногоДействия, ДоступныеДействия, ДополнительныеДействия);
Если ПараметрыВыбранног<ействия о Неопределено Тогда
Если ВыбраньоеДейс^ие =
ДействиеОбработкиРасшифровкиКомлоновкиДанных.ОткрытьЗначение Тогда
ОткрыгьЗначение(ПараметрыБыбранногоДейсшия);
Иначе
1араметрыФормы = Новый Структура;
ПараметрыФормы.Вставить(“С4юрмироватьПриОткрытии", Истина);
ПараметрыФормы.Вставить("Расшифровка", Новый
Списание >брабсгкиРас шифровкиКомпоновкиДанных(ДанныеРасшифрэвки,
Расшифровка, ПараметрыВыбранногоДействия));
ОткрытьФорму("Отчет.СборкаСистемныхБлоков.Форма", ПараметрыФормы,, Истина);
КонецЕсли;
Иначе
Сообщить(ВыбранноеДействие);
КонецЕсли;
КонецПроцедуры
В процедуре обработчика мы сначала отменяем стандартную обработку
расшифровки. Затем создаем новый обработчик расшифровки - объект Обра-
боткаРасшифровкиКомпоновкиДанных и инициализируем его данными
расшифровки отчета (реквизит формы ДанныеРасшифровки) и источником
доступных настроек для отчета.
Затем задаем список доступных действий расшифровки - ОткрытьЗначение,
Отфильтровать, Расшифровать, а также задаем список дополнительных
действий расшифровки, например, «Действие 1», «Действие 2», «Действие 3».
После этого мы вызываем интерактивный выбор действия расшифровки,
используя метод ВыбратьДействиеО объекта ОбработкаРасшифров-
киКомпоновкиДанных. Мы передаем в него идентификатор расшифровки
(параметр Расшифровка обработчика события ОбработкаРасшифровки),
список доступных действий (ДоступныеДействия) и список дополни-
тельных действий (ДополнительныеДействия) меню расшифровки.
После выбора пользователем действия расшифровки мы получаем значение
выбранного действия во втором параметре ВыбранноеДействие. Если
выбрано действие Открыть, то третий параметр ПараметрыВыбранно-
гоДействия содержит значение, которое нужно открыть. Если выбрано
действие Расшифровать, Отфильтровать, Упорядочить, Сгруппировать, Офор-
мить, то параметр ПараметрыВыбранногоДействия содержит настройки,
применяемые к отчету. Если выбрано дополнительное действие, то параметр
не заполняется.
В зависимости от выбранного действия (ВыбранноеДействие) мы либо
открываем выбранное значение, либо формируем новую форму отчета
с параметрами СформироватьПриОткрытии и Расшифровка. Пара-
метр СформироватьПриОткрытии, установленный в значение Истина,
обеспечивает формирование отчета сразу при открытии формы. В параметре
Расшифровка мы описываем расшифровку, которую нужно применить
к открываемому отчету, и передаем в конструктор объекта ОписаниеОбра-
боткиРасшифровкиКомпоновкиДанных данные расшифровки (реквизит
формы ДанныеРасшифровки), идентификатор расшифровки (параметр
Расшифровка обработчика события ОбработкаРасшифровки) и новые
настройки, применяемые к отчету (ПараметрыВыбранногоДействия).
Выполним отчет. Нажав правую кнопку мыши на поле отчета, мы можем
вызвать меню собственной расшифровки и выполнить перечисленные в нем
действия расшифровки (рис. 2.288).
Сборка системный блико.. (1С:Предприятие|
избрать вариант.
Все действия ; I
Сборка системных блоков
Вариант отчета. Основной
г । Формировать5' [•& Настройка...
ВНИМАНИЕ
Переопределять действия по расшифровке отчета, вызываемой при нажа-
тии правой кнопки мыши, нужно в обработчике события ОбработкаДо-
полнительнойРасшифровки. А в обработчике события ОбработкаРас-
шифровки нужно переопределять действия, происходящие при двойном
щелчке мыши на поле отчета.
Таким образом, на этом примере мы научились:
выводить в отчете данные, отражающие структуру иерархического спра-
вочника;
задавать собственную иерархию по произвольному реквизиту и отобра-
жать ее в отчете;
выводить данные с детализацией по первичному документу-
регистратору;
переопределять стандартную расшифровку для поля;
создавать собственные обработчики события расшифровки отчета.
Пример 17
На этом примере мы рассмотрим использование в отчетах языка выражений
системы компоновки данных. Разработаем отчет о продажах номенклатуры
и покажем на нем применение языка выражений для расчета различных
показателей продаж.
Создадим новый объект конфигурации Отчет и назовем его РасчетПоказа-
телей Продаж. Откроем конструктор схемы компоновки данных и добавим
новый набор данных - запрос. Источником данных для запроса будет служить
виртуальная таблица регистра накопления Продажи.Обороты. Не будем поль-
зоваться конструктором запроса, а сразу внесем в поле Запрос следующий
текст (листинг 2.48).
Листинг 2.48. Текст запроса
ВЫБРАТЬ
ПродажиОбороты.Период КАК Период,
ПродажиОбороты.Номенклатура,
ПродажиОбороты.Контрагент,
ПродажиОбороты.СтоимостьОборог КАК Стоимость
ИЗ
РегистрНакопления.Продажи.Обороты(,, День,) КАК ПродажиОбороты
В набор доступных полей отчета добавятся поля:
Период,
Номенклатура,
Контрагент,
Стоимость.
На закладке Настройки определим следующую структуру отчета - отчет будет
содержать группировку по полю Контрагент с вложенной группировкой
Номенклатура, содержащей группировку Период (рис. 2.289).
Отчет
- И*113 Контрагент
Е,вв Номенклатура
Период
Рис. 2.289. Структура отчета
Язык выражений
Для расчета различных показателей продаж будем использовать вычисля-
емые поля (стр. 358), то есть поля, которых изначально нет в наборе данных
отчета, но которые вычисляются на основе доступных полей отчета.
Система компоновки данных предоставляет возможность вычисления выра-
жений для родительских группировок. Например, с помощью функции
ВычислитьВыражение () можно вычислить для каждой вложенной группи-
ровки (Номенклатура, Период) процент продаж по родительской группировке
(Контрагент).
Для реализации этой возможности перейдем на закладку Вычисляемые поля
и добавим вычисляемое поле ПроцентПродажПоКонтрагенту. Выражение для
его расчета мы здесь определять не будем, а зададим его на закладке Ресурсы,
так как у нас в отчете нет детальных записей (рис. 2.290). В колонке Оформ-
ление зададим формат поля, чтобы ограничить число выводимых десятичных
знаков. Вызовем диалог Формат поля и в строку Формат введем выражение
(листинг 2.49).
Листинг 2.49. Формат поля «ПроцентПродажПоКонтрагенту»
ЧДЦ=2
Перейдем на закладку Ресурсы и определим доступные поля ресурсов отчета
(стр. 370), рис. 2.291. В колонку Выражение для ресурса ПроцентПродажПоКон-
трагенту введем следующий текст (листинг 2.50).
Т* Отчет Расче"Пт» йзатеяейПродаж: ОснсжнаяСиемаКомгиэиоикиДан .^ ....... 11 .ГЛ X
- - — - * - - Г - - -. —— - — —I ЦП 1 >1 • * л- ~ Л . *а>< Гн*' " В
Наборы данных ' Связи наборов дан.. ' Вычисляемые поля Ресурсы Параметры Макет Вложенные схемы Настройки
Рис. 2.290. Создание вычисляемого поля
Листинг 2.50. Выражение для расчета ресурса на основе вычисляемого поля
«ПроцентПродажПоКонтрагенту»
Сумма(Стоимость)*100 / ВычислитьВыражение("Сумма(Стоимость)", “Контрагент”)
О х Р
(Путь к данным Выражение ] Заголовок Ограничение до.. Выражение Выражения Тип Доступные Офор<>гление I
1 1 ' ’ ,г ,, представ, упорядоч.. значения значения ' 1 П.„. У...1 Г... У... Параь^тр.
по контрагенту 1 <
▼
Рис. 2.291. Определение ресурсов отчета
Функция ВычислитьВыражение() вычисляет выражение в контексте
некоторой группировки. В качестве первых трех параметров в нее передается
выражение для расчета (например, "Сумма (Стоимость)"), имя труп ^ировки,
в которой вычисляется выражение (например, "Контрагент"), и область
вычисления - "ОбщийИтог", имя группировки или "Иерархия" (в нашем
случае третий параметр опущен).
В других параметрах, передаваемых в функцию, имеется возможность
указать, с какой записи начинать и какой записью заканчивать массив, записей
для расчета (возможно указание первой, последней, следующей, предыдущей,
текущей записи). Более подробно о функциях языка выражений системы
компоновки данных можно прочитать в книге «1С:Предприятие 8.2. Руко-
водство разработчика», гл. 10.3.7.2.11.
В настройках отчета на закладке Выбранные поля перенесем из списка
доступных полей поля Стоимость и ПроцентПродажПоКонтрагенту. На закладке
Другие настройки установим макет оформления (стр. 393) отчета - Арктика.
Запустим и сформируем отчет в режиме 1 С:Предприятие (рис. 2.292).
Р [1 (/Предприятие)
Расчет показателей продаж
Вариант отчета [Основной_
!> Сформировать ИЙ Настройка...
_] | Выбрать вариант..?"}
Все действия’ | -7-
В
I
I
т
г
к к
Я<ОИТР,НУНТ 3 Стоимость Процент продаж по контрагенту
Номенклатура Период
ООО "Автоматика" 24 500,00 100,00
Диагностика компьюте е . 1 500,00 6,12
5 декабря 2011 г. 1 000,00 [ 4,08
11 Декабря 2011 г. 500,00 2,04
«оьпыотер для дома 10 000,00 40,82
11 декабря 2011 г 10 000,00 г 40,82
Компьютер играв! 13 000,00 53,06
12 января 2012 г. 13 000,00 53,06
ООО “Атлант" 9 000,00 100,00
Восстановление д , иых 5000,00 55,51)
15 ян_ар°2012 г. 5 000,0С 55,56
Ренон компьютера 3 000,00 33,33
13 января 2012 г. 3000,00- зз,зз
Сопутствующие услуг и 1 000,00 11,11
13 января 2012 г. 1 000,00 11,11
ООО "Система" 10 000,00 100,00
Компьютер для офис; । 10 000,00 100,00
9 декабря 2011 г. 10 000,00 100,00
ООО "Стандарт" 4 500,00 100,00
Диагностика компьютера 500,00 11,11
14 января 2012 г. 500,00 11,11
Ремонт компьютера 3 000,00 66,67
14 января 2012 г. 3 000,00 66,67
Соггут твующие услуги 1 000 00 22,22
14 января 2012 г. 1 000,00 22,22
ООО "Стиль" 28 500 00 100,00
Веб-камера 4500,00 15,79
12 января 2012 г 4 500,ОС 15,79
Микрофон 2000 00 7,02
12 января 2012 г. 2 000,00 7,02
Монитор ЬСО 22 000,00 77,19
6 декабря 2011 г. 10 000,00 35,09
12 янваоя2012 г. 12000,00 42,11]
Итого 76 500 00 100 00
ч
г
ы.
Л
х
Рис. 2.292. Результат отчета
В колонке Процент продаж по контрагенту мы видим процентное отношение
стоимости продаж по группировке Период и Номенклатура к стоимости
продаж по группировке Контрагент.
Теперь продемонстрируем обратную возможность. Система компоновки
данных предоставляет возможность вычисления выражений для вложенных
группировок. Например, с помощью функции ВычислитьВыраже-
ниеСГруппировкойМассив() для каждого контрагента можно вычислить
максимальную сумму продаж купленного им товара.
Для реализации этой возможности на закладке Вычисляемые поля добавим
вычисляемое поле МаксимальнаяСуммаПродажТовара.
На закладке Ресурсы добавим вычисляемое поле в список ресурсов отчета.
В колонку Выражение для ресурса МаксимальнаяСуммаПродажТовара введем
следующий текст (листинг 2.51).
Листинг 2.51. Выражение для расчета ресурса на основе вычисляемого поля
«МаксимальнаяСуммаПродажТовара»
Максимум(ВычислитьВыражениеСГруппировкойМассив("Сумма(Стоимость)", "Номенклатура"))
Функция ВычислитьВыражениеСГруппировкойМассив() возвращает
массив, каждый элемент которого содержит результат вычисления (выра-
жения для группировки по указанному полю. Более подробно о функциях
языка выражений системы компоновки данных можно прочитать в । книге
«1С:Предприятие 8.2. Руководство разработчика», гл. 10.3.7.2.11.
В нашем случае для родительской группировки Контрагент возвращается
массив, содержащий стоимость продаж по вложенной группировке Номенкла-
тура. Затем из этого массива берется максимальный элемент и отображается
в вычисляемом поле.
Добавим поле МаксимальнаяСуммаПродажТовара в список полей отчета.
Выполним отчет (рис. 2.293).
Мы видим, что в колонке Максимальная сумма продаж товара для каждого
контрагента отражена максимальная сумма продаж купленного им товара.
Рассмотрим еще пример. В некоторых аналитических отчетах требуется срав-
нить объем продаж каждого товара с объемом продаж заданного товара.
Создадим вычисляемое поле, в котором для каждого товара будет выведено
процентное отношение его суммы продаж к сумме продаж исследуемого
товара.
Для демонстрации этой возможности создадим новый вариант отчета Рас-
четПоказателейПродаж. Для этого на закладке Настройки схемы компоновки
данных нажмем кнопку Добавить слева над списком вариантов отчета. Зададим
имя варианта и его представление как СписокПродаж и добавим в структуру
нового варианта отчета одну группировку по полю Номенклатура.
На закладке Вычисляемые поля добавим вычисляемое поле ПроцентПро-
дажОтИсследуемогоТовара. В колонке Оформление зададим формат поля,
чтобы ограничить число выводимых десятичных знаков. Вызовем диалог
Формат поля и в строку Формат введем выражение (листинг 2.52).
Листинг 2.52. Формат поля «ПроцентПродажОтИсследуемогоТовара»
ЧДЦ=2
На закладке Ресурсы добавим вычисляемое поле в список ресурсов отчета.
В колонку Выражение для ресурса ПроцентПродажОтИсследуемогоТовара
введем следующий текст (листинг 2.53).
Листинг 2.53. Выражение для расчета ресурса на основе вычисляемого поля
« П ро центП родажОтИ сел едуемогоТовара »
Сумма{Стоимость)*10б / ВычислитьБыражение("Сумма Выбор Когда Номенклатура =
йИсследуемыйТоеар Тогда Стоимость Конец)",, "ОбщийИтог")
На закладке Параметры (стр. 376) добавим параметр ИсследуемыйТовар
и укажем тип значения параметра СправочникСсылка. Номенклатура
(рис. 2.294).
Добавим поля Стоимость и ПроцентПродажОтИсследуемогоТовара в список
полей отчета. Для того чтобы пользователь мог вводить значение иссле-
дуемого товара, добавим параметр Исследуемый товар в состав быстрых
пользовательских настроек.
Запустим отчет на исполнение, выберем вариант отчета Список продаж, введем
значение параметра Исследуемый товар и получим следующий результат
(рис. 2.295).
Рис. 2.294. Добавление параметра отчета
I * Р..;. рс.Предпри . ыЗ к* 1. . М Ж М" * - -С X
Расчет показателей продаж
Вариант отчета: Список продаж
к Сформировать | ц# Настройка...
Вад ать ва пакт ГЗ
Все действия* 1 (?
У I .. . -.1
I Параметры: Исследуемый товар: Монитор 1_С0
01
Номенклатура .. . Стоимость Процент продаж от исследуемого товара
Веб-камера 4 500.00 20,45
Восстановление данных 5 000,00 22,73
Диагностика компьютера 2 000,00 < 9,09
Компьютер для дома 10 000,00 45,45,
компьютер для офиса 10 000,00 45,45
К >мпьютер игровой 13 000.00 59.09
Ми рофсн 2000,00 9,09
Мони ОР ЬСО 22 000,00 1ООРО|
1 Ремонт компьютера 6000.0О 27,2;
С01 .утствующие услу <и 2 000,СО 0,09
Итого 76 500 00 347/3
Рис. 2.295. Результат отчета
Мы видим, что в колонке Процент продаж от исследуемого товара выводится
процентное отношение суммы продаж по каждому товару к сумме продаж
товара, заданного в параметре Исследуемый товар.
Теперь на этом же варианте отчета продемонстрируем возможность вывода
в ячейке отчета списковых данных. Допустим, рядом со стоимостью продаж
по каждому товару требуется вывести список контрагентов, которые поку-
пали этот товар. Для этого можно использовать функцию языка выражений
системы компоновки данных Массив ().
На закладке Вычисляемые поля добавим вычисляемое поле СписокКонтр-
агентов. На закладке Ресурсы добавим вычисляемое поле в список ресурсов
отчета. В колонке Рассчитывать по... укажем, что ресурс нужно рассчитывать
для группировки Номенклатура. В колонку Выражение для ресурса СписокКон-
трагентов введем следующий текст (листинг 2.54).
Листинг 2.54. Выражение для расчета ресурса на основе вычисляемого поля
«СписокКонтрагентов»
Массив(Разл1"чНые контрагент)
Результатом работы функции Массив () является массив, в котором
элементом является значение параметра для каждой детальной записи. Перед
параметром функции допустимо указывать ключевое слово Различные,
в этом случае получаемый массив не будет содержать одинаковых значений.
Более подробно о функциях языка выражений системы компоновки данных
можно прочитать в книге «Ю.Предприятие 8.2. Руководство разработчика»,
гл. 10.3.7.2.6.
Добавим поле СписокКонтрагентов в список полей отчета. Выполним отчет
(рис. 2.296).
I ^.четчюгдаатедейп^т’Демснятра..- [1СЛ |редприягие] Д.
Г2 Л
Расчет показателей продаж
Вариант отчета:
' Монитор ЬСО
А-
[ | Параметры: Исследуемый товар: Монитор ЬСО
Номенклатура
^Веб-камера _ __ _
! Восстано в ление данных_
Ди( । гностика компьютера
Компьютер для дома ___
Кф С^ормирогаг- Настройка...
I ® Исследуемый товар
20,45 ЮОО "Стиль"
22/3 ЮОО ^Атл^
9,09*000 "Автоматика"; ООО "Стандарт"
45,45 ЮОО "Автоматика"
(5,45 :ОО( "Система"
59,09 00 5 "Автоматика1
~ 9,09’СОО^Стиль*
100,00Тобо "Стиль" "
27,27:000 "Стандарт',.ООО "Атлант"
9,09 ООО “стандарт" ООО “Атлан-1
347,73
В се действия » ?
лоимопс Пр. цент продаж от Список контрагентов
исследуемого
е.__ }товара х-
мпьютер игровой
-Микрофон __________
'Монитор ВСЕ)
[Ремонт компьютера__
Сопутствующие услуги
/ТОГО
4 500,001
5 000,00
2 000,00.
10 000,001
ЮиОО.ОО' I .. .
1зооо,оо(
2 000,00
22 000,00
6 000,00
2 000,00;
76 ^00 Др
Мы видим, что в колонке Список контрагентов для каждого товара через
запятую выводится список контрагентов, покупавших этот товар.
Теперь на этом же варианте отчета продемонстрируем возможность расчета
ресурсов по интервалу. Например, с помощью функции ВычислитьВыра-
жение () можно вычислить стоимость продаж номенклатуры с накоплением
по указанному интервалу.
На закладке Вычисляемые поля добавим вычисляемое поле СтоимостьПро-
дажСНакоплением. На закладке Ресурсы добавим вычисляемое поле в список
ресурсов отчета. В колонку Выражение для ресурса введем следующий текст
(листинг 2.55).
Листинг 2.55. Выражение для расчета ресурса на основе вычисляемого поля
«СтоимостьПродажСНакоплением»
ВычислитьВыражениеССумма^тоимость)’1,, "Первая", "Текущая")
Таким образом, суммарная стоимость продаж для ресурса будет вычисляться
с первой по текущую запись отчета.
Добавим поле СтоимостьПродажСНакоплением в список полей отчета.
Выполним отчет (рис. 2.297).
Рис. 2.297. Результат отчета
Мы видим, что в колонке Стоимость продаж с накоплением для каждого товара
выводится стоимость продаж с накоплением с первой по текущую запись
отчета.
Теперь рассмотрим возможность группировки записей отчета по значению
ресурса, определенного с помощью языка выражений системы компоновки
данных.
Для демонстрации этой возможности создадим новый вариант отчета
РасчетПоказателейПродаж. Для этого на закладке Настройки схемы компо-
новки данных нажмем кнопку Добавить слева над списком вариантов отчета.
Зададим имя варианта и его представление как ОбъемПродаж.
На закладке Вычисляемые поля добавим вычисляемое поле ОбъемПродаж.
На закладке Ресурсы добавим вычисляемое поле в список ресурсов отчета.
В колонку Выражение для ресурса-введем следующий текст (листинг 2.56).
Листинг 2.56. Выражение для расчета ресурса на основе вычисляемого поля
«ОбъемПродаж»
Выбор Коща Сумма(С1Оимость) 3000 Тогда"Малый” Ина1
Выбор Когда Сумма(Стоимость) >-10000 ТедаКонец Конец
В выражении для расчета ресурса ОбъемПродаж мы задаем градацию
суммарной стоимости продаж - <= 3000 («Малый»), от 3000 до 10000
(«Средний»), >= 10000 («Большой»).
На закладке Настройки определим следующую структуру нового вари-
анта отчета — отчет будет содержать составную группировку по полям
ОбъемПродаж и Номенклатура с вложенной группировкой Номенклатура.
Добавим поля Стоимость и ОбъемПродаж в список полей отчета (рис. 2.298).
Запустим отчет на исполнение, выберем вариант отчета Объем продаж
и получим следующий результат (рис. 2.299).
1
Лтого
в
Номенклатура
1Большой
Рис. 2.299. Результат отчета
В се действия
стоимость Обоем
^продаж
55 600,00 Большой
Расчет пока гелей продаж
Вариант отчета: {Объем продаж_____
СфСфнифММяь । {Настройка...
1 Компьютер для дома 10 600,00'Большой I
1 Компьютер для офиса 10 000,00' Большой
; Компьютер игровой 13 000; Ю Большой *
Мо1 итор ЬСб 22 000,00' Большой
малый 6000,00 Средний -з
। Диагностике компьют ;ра 2 000,00;Малый
; Микрофон 2* 000,00-Малый
1 Сопутствующее услуги 2 000,00 'Малый
;редний 15 500,0~' Боль шой ’ 4
; Веб-камера 4 500,00 (Средний
Восстановление данных 5 000,001 Средний
! Ремонт компьютера 6 ООО.ПС редний
76 600,00 большой Я
Мы видим, что в колонке Объем продаж выводится значение выражения,
которое мы задали для ресурса в листинге 2.56. Кроме того, записи отчета
группируются по значению ресурса Объем продаж - сначала выводятся записи
с большим (Сумма (Стоимость) >= 10000) объемом продаж, затем записи
с малым (Сумма(Стоимость) <= 3000) объемом продаж и затем записи
со средним (3000 < Сумма (Стоимость) < 10000) объемом продаж.
Таким образом, мы рассмотрели некоторые примеры использования в отчетах
языка выражений системы компоновки данных:
вычисление выражений для родительских группировок,
вычисление выражений для вложенных группировок,
а расчет ресурсов для определенного значения измерения,
вывод в ячейке отчета списковых данных,
расчет ресурсов по интервалу,
возможность группировки записей отчета по значению ресурса.
Вывод отчета в общую форму
В заключение мы покажем возможность использования общих форм в каче-
стве формы отчета. Платформа предоставляет возможность создать, например,
общую форму конфигурации типа Форма отчета, описать в ней некоторые
общие алгоритмы поведения форм отчета и назначить ее основной формой
для конкретных отчетов или для всей конфигурации в целом.
Например, при разработке большинства отчетов мы не создавали для них
специальных отчетных форм. Поэтому при их открытии используется автома-
тически сгенерированная платформой форма, которая обладает стандартными
свойствами и поведением форм отчета. После открытия таких форм нам
приходилось нажимать кнопку Сформировать, чтобы получить отчет.
В отчетах Сборка системных блоков (стр. 81), Отчет по системным блокам (стр.
78) мы разработали основную форму отчета, в модуле которой написали
программный код, обеспечивающий формирование отчета сразу при открытии
формы. Однако эти формы предназначались не только для этого. В них реали-
зовался индивидуальный алгоритм поведения форм конкретных отчетов.
Если же ряд отчетных форм должен обладать сходным поведением, например,
отчет в них должен формироваться сразу при открытии формы, то имеет
смысл описать этот алгоритм в общей форме отчета и затем назначить ее
основной формой для конкретных отчетов или для конфигурации в целом.
Для реализации этой возможности раскроем ветвь Общие дерева объектов
конфигурации. Выделим ветку Общие формы и нажмем кнопку Добавить
в командной панели окна конфигурации. В открывшемся конструкторе
общих форм выберем тип формы Форма отчета, зададим произвольное имя
общей формы и нажмем кнопку Готово (рис. 2.300).
Имя
I о» структур I бщЫк №рм
*• Назначить Форму основной
) Ф орма настроек отчета
| О Форма варианта отчета
—Выберите тип Формы
! О Произвольная Форма
1 ) Форма констант
Форма отчета
Общая*? рмаОтчета
Синоним: Общая форма отчета
Комментарий.
Рис. 2.300. Создание общей формы отчета
Расширенное представление.
Пояснение:
' Далее > । Готово ; Отмена ! Справка
Поскольку при создании общей формы флажок Назначить форму основной
был установлен (см. рис. 2.300), то общая форма ОбщаяФормаОтчета стано-
вится основной формой отчета для конфигурации в целом (рис. 2.301). Это
свойство конфигурации можно использовать, например, при отправке отчета
по электронной почте.
'"зой^ а
X
Командный интерфейс рабочего стола Открыть
Основной язык
Краткая информация
Подробная информация
[Русский
А.1
Логотип
Заставка
Авторские права
Открыть
Открыть
1
Г
Г
Адрес информации о поставщике ।
Адрес информации о конфигурации;
а
г
Основная форма настроек отчета I
Основная форма варианта отчета [
► Разработка:
► Гправочнс,1 нформация
» Совместимость:
Режим управления блокировкой данных [Управляемый
х. и ’
Режим автонумерации объектов
Режим совместимости
{Не освобождать автоматичс
[Не использовать (х [
-а
$
Рис. 2.301. Свойства конфигурации
Открыв форму ОбщаяФормаОтчета, мы видим, что по внешнему виду
и свойствам она ничем не отличается от индивидуальных форм отчета,
кроме того, что основной реквизит формы имеет тип ОтчетОбъект, а не
ОтчетОбъект.<ИмяОтчета> (рис. 2.302).
В модуле формы создадим обработчик события формы ПриСозда-
нииНаСервере и заполним его следующим образом (листинг 2.57).
Листинг 2.57. Обработчик события формы «ПриСозданииНаСервере»
.^Сервере
Процедура 1риСозданииНс ервере(Отказ, СтандартнаяОбраб( тха)
Параметры.СформироватьПриОткры ’ии = Истина;
ХсзецПрсцедуры
В обработчике события параметр СформироватьПриОткрытии устанавли-
вается в значение Истина. Таким образом, отчет будет формироваться сразу
при открытии формы отчета.
После этого форму ОбщаяФормаОтчета можно назначить в качестве основной
формы для конкретного отчета (рис. 2.303).
Рис. 2.303. Основная форма отчета
Но в данном случае можно было этого и не делать. Поскольку форма
ОбщаяФормаОтчета является основной формой отчета для конфигурации
в целом (см. рис. 2.301), то для любого отчета, вне зависимости, назначена
для него основная форма отчета или нет (см. рис. 2.303), будет открываться
ОбщаяФормаОтчета, и отчет будет автоматически формироваться сразу же при
ее открытии. При этом если для отчета разработана индивидуальная форма,
то она имеет приоритет и будет открыта именно она.
Фоновое выполнение отчета
Создадим еще одну общую форму конфигурации ФоновыйОтчет типа Форма
отчета и назначим ее в качестве основной формы для отчета РасчетПоказа-
телейПродаж (рис. 2.304).
Рис. 2.304. Основная форма отчета
Таким образом, при вызове отчета Расчет показателей продаж будет открыта
форма ФоновыйОтчет, на которой мы покажем возможность формирования
отчета в фоновом режиме. Для этого в модуле формы создадим обра-
ботчик события формы ПриОткрытии и заполним его следующим образом
(листинг 2.58).
Листинг 2.58. Обработчик события формы «ПриОткрытии»
&НаКлиенте
Процедура ПриОт{(рь!тии(отка?)
Скомпонова7ьРезупьгйт(РежимКлмпоновкиРезулЕ1ата.Фоно8ый);
// Элемен. ОтобоажениеОостояния.Видямость =Шина-
КонецПроцедуры
В обработчике события мы вызываем метод формы отчета СкомпоноватьРе-
зультат() с параметром, определяющим фоновый режим компоновки
результата (РежимКомпоновкиРезультата .Фоновый).
Таким образом, отчет Расчет показателей продаж будет формироваться при
открытии формы ФоновыйОтчет в фоновом режиме. Все остальные отчеты, для
которых не назначена форма отчета, будут формироваться сразу при открытии
формы ОбщаяФормаОтчета (поскольку она является основной формой отчета
для конфигурации в целом) в непосредственном обычном режиме (это стан-
дартный режим компоновки). А для отчетов Сборка системных блоков (стр. 81),
Отчет по системным блокам (стр. 78) будут открываться конкретные, разра-
ботанные для них формы, при открытии которых происходит программная
установка значений параметров и автоматическое формирование отчета.
Все сказанное относится также и к общим формам настроек отчета,
и к общим формам варианта отчета. Таким образом, мы показали, как можно
обеспечить однотипное поведение форм без лишних усилий и дублирования
кода. Этот дополнительный сервис для разработчика очень удобен и экономит
много времени при разработке отчетов.
Пример 18. Работа с системой компоновки
данных из встроенного языка
В этом примере мы продолжим работать с объектами встроенного языка
и рассмотрим их объединение в наборе данных. Такое решение нам
подходит, так как мы хотим разработать отчет, содержащий объединенную
информацию о поступлении и расходе комплектующих на сборку системных
блоков. Этот отчет будет вызываться из документа СборкаКомпьютера и пред-
ставлять информацию о списке комплектующих, содержащихся в документе
(рис. 2.305).
Анализ цен комплектующих
Номенклатура Р-жгупилг '..Собрано’ в Выручка
<. /Количество Цёна~Количество .Щена. |
Жесткий диск ' Материнская плата ; 3] ' 3 000; _ _ 3 3 600’. "Твоо!
'2О0б1“7 '' """з 2 833Г~ ' 2 50СЦ
Память _ [ 5! <200]77 / 3 1 667Г 1 ад»
Рис. 2.305. Требуемый вид отчета
Решив поставленную задачу средствами схемы компоновки данных, мы затем
осуществим программную настройку и компоновку отчета.
Итак, сначала создадим схему компоновки данных, позволяющую полу-
чить нужный отчет. Затем программно заполним используемые в ней
наборы данных. Далее с помощью встроенного языка осуществим компо-
новку данных. Затем попробуем выполнить программную настройку отчета и
программное описание схемы компоновки данных.
Выделим ветку Макеты документа СборкаКомпьютера в дереве объектов конфи-
гурации и нажмем кнопку Добавить в командной панели окна конфигурации.
В открывшемся конструкторе макета зададим имя макета АнализЦенКом-
плектующих и выберем тип макета Схема компоновки данных. Нажмем кнопку
Готово. В окне конструктора схемы компоновки данных добавим новый набор
данных — объединение (рис. 2.306).
Рис. 2.306. Добавление набора данных - объединение
Затем выделим его и добавим два вложенных в него набора данных - объект.
Назовем первый набор ЦеныСборки и такое же имя зададим в поле Имя
объекта, содержащего данные. Этот набор данных будет отражать информацию
о расходе комплектующих, указанных в документе, на сборку системных
блоков. Нажимая кнопку Добавить, создадим список полей набора данных
с аналогичными именами (рис. 2.307):
Номенклатура,
ЦенаСборки (Цена),
Собрано (Количество).
я омпьютера' АнализЦенКомптм-тйкичьж
Наборы данных ' Сеааинаборсг Вычисляемые , } Ресурсы ‘ Параметры
Макеты ' Вложенные сх.« ’• Настройки
. ..и _ |
Рис. 2.307. Список полей набора данных
Второй набор назовем ЦеныПоступления и такое же имя зададим в поле
Имя объекта, содержащего данные. Этот набор данных будет отражать
информацию о поступлении комплектующих, указанных в документе, на
сборку системных блоков. Нажимая кнопку Добавить, создадим список полей
набора данных с аналогичными именами (рис. 2.308):
Номенклатура,
ЦенаПриход (Цена),
Поступило (Количество).
Рис. 2.308. Список полей набора данных
ПРИМЕЧАНИЕ
Обратите внимание, что имена полей (Цена, Количество) табличной части
документов СборкаКомпьютера и Приходная Накладная, данными которых
будут заполняться объекты, одинаковы, но мы дали им разные имена, чтобы
использовать их в ресурсах и настройках отчета.
Дальше выполним уже знакомые действия по формированию настроек
схемы компоновки данных. На закладке Вычисляемые поля (стр. 358) добавим
поле Выручка, но не будем указывать выражение для его расчета, так как мы
зададим его позже при определении полей ресурсов (стр. 370). На закладке
Ресурсы перетащим в список ресурсов доступные поля отчета и введем
вручную Выражения для них (табл. 2.3).
Таблица 2.3. Заполнение полей ресурсов и выражений для их расчета
Поле ресурса Выражение ’ -1
ЦенаПриход Среднее(ЦенаПриход)
ЦенаСборки Среднее(ЦенаСборки)
Выручка Сумма(Собрано) * (Среднее(ЦенаСборки) - Среднее(ЦенаПриход))
Собрано Сумма(Собрано)
Поступило Сумма(Поступило)
В отчете мы будем группировать данные по полю Номенклатура, а в итогах
по группировке хотим получать суммарные сведения о количестве и средние
сведения о ценах поступления и расходования комплектующих. Ресурс
Выручка рассчитывается как произведение разницы между ценами сборки
и поступления на сумму количества комплектующих, израсходованных на
сборку. В результате окно ресурсов схемы компоновки данных примет вид
(рис. 2.309).
Наборыданных наборов.2
, Доступные поля
«20
Номенклатуре
Поступило
Собрано
ЦенаПриход
| “ ЦенаСборки
I <<!
Вычисляемые | Ресурсы 1| Параметры Ь Макеты
‘ Поле Выражение ? Рассчитывать по...
» ЦенаПриход ' ЦенаСборки Снеднее(ЦенаПриход) Среднее(ЦенаСборки) ! ; — —I— — — Сумма(Собрано) “ ! ; (СреднееЩенаСборки) - ( Среднее(Ц енаПриход)) Сумма(Собрано) ; Сумма(Поступило) !
выручке
- - - - —- I =» Собрано I Поступило г - - Г
Рис. 2.309. Определение ресурсов отчета
На закладке Настройки добавим в отчет группировку по полю Номенкла-
тура, так как по этому полю будут группироваться данные о количестве и
ценах поступления и расходования комплектующих. На закладке Выбранные
поля создадим многоуровневую структуру полей отчета. Сначала, нажав
кнопку Добавить, создадим две группы: Поступило и Собрано. Затем в первую
группу из списка доступных полей перетащим поля Поступило и ЦенаПриход,
во вторую - Собрано и ЦенаСборки. В заключение перетащим в основной
уровень отчета поле Выручка (рис. 2.310).
Ч аннье ] I Связи нгбсрсл ,, Вьмиёлйемыв
С Кй
Ресурсы Па амегрв Макеты Вложенные ех,, Настройки
Сортиревка Усс~зн фо.
Отбор
, Поле
I
Авто
Ф 5
Авто
4
****Й*М
Вьтачка
3
Поступило
Собрано
ЦенаПриход
ЦенаСборки
СистемныеПоля
Г®
1Л'
р.
Пользователе... з Пп“п® частр.. 1
Выбранные поля
<? Сл Поступило
Поступило
ЦенаПриход
& * Собрано
I Собрано
$ ЦенаСборки
Рис. 2.310. Определение полей и группировок отчета
| Имя вариа. I Представл
Номенклатура
Настройки: Отчет
Выбранные п..
I Доступные поля
Номенклатура
На закладке Другие настройки установим заголовок отчета-Анализ цен комплек-
тующих и параметр вывода Расположение общих итогов по вертикали - Нет.
На закладке Наборы данных изменим заголовки у полей ЦенаПриход
и ЦенаСборки на Цена, Собрано и Поступило на Количество, так как мы ввели
для них в шапке отчета поясняющее общее поле (рис. 2.311).
Рис. 2.311. Определение заголовков полей в шапке отчета
Для полей ЦенаПриход и ЦенаСборки на закладке Наборы данных и поля Выручка
на закладке Вычисляемые поля в колонке Оформление зададим формат, чтобы
значения отображались без копеек. Вызовем диалог Формат поля и в строку
Формат введем выражение (листинг 2.59).
Листинг 2.59. Формат полей «ЦенаПриход», «ЦенаСборки», Выручка
ммдмя*
ЧД Ц-0
На этом закончим работу со схемой компоновки данных.
Заполнение наборов данных и компоновка отчета
Теперь разместим в документе СборкаКомпьютера кнопку Анализ цен,
при нажатии которой будет исполняться программный код, заполняющий
внешние наборы данных и выполняющий компоновку и представление
отчета. Откроем форму документа ФормаДокумента, созданную нами ранее.
Затем создадим команду АнализЦен и соответствующую ей кнопку формы
и поместим ее в командную панель формы документа (рис. 2.312).
Рис. 2.312. Добавление в форму документа кнопки «Анализ цен»
В обработчике команды АнализЦен напишем следующий код (листинг 2.60).
Листинг 2.60. Обработчик команды «АнализЦен»
3' !аКл юнте
Процедура АнализЦен(Команда)
Результат5 Анализ |енОокумента();
Результа г.ОтображатьСепу ® Ложь;
Результат^ ображатг Золовки =Ложь;
Результат.Показать();
КонецПроцедуры
Отчет формируется в серверной функции АнализЦенДокумента(). Затем
заполненный данными табличный документ возвращается на клиента и пока-
зывается пользователю (листинг 2.61).
Листинг 2.61. Функция «АнализЦенДокумента()»
&НаСервере
Функция Ана л изЦенДокумен-аО
Документ Объект = РеквизитФорь<ыВЗначение'Юбъег’);
Запрос ₽:ШвыйЗап^
ЬфеШт^'ВЫБРАГЬ
ГэиходнаяНакладна! (Говары.Номенклатура КАК Чомеиклатура,
Г1риходнаяНакпадк.дяТовары.Количе€тво КакПрступилр,
/ИЗ
Номенклатура в (&СписокНбменклатурЬ1)н^
Запрос.УстановитьПараметр "СпжокНоиенклатурьГ
ДокументОбъект Пе|^ньНжнйЭД
Результат = Запрос.Выполнить( );
Поступление ~ Результат.Вы|фувить ()
Запрос ~ ИовыйЗапрос
Заппос Текст = "ВЫБРАТЬ
СборкаКомпьютераТовары Номенклатура КАК Номенклатура
СборкаКбмпцютёраТовары. Копдатво 'КАК Собрано,
СборкаКомпьютераТовары Цена КАК I ЦенаСборки
ИЗ
Докуме! .лСборкаКомльютера г;ереченьНоменклатурь. КАК СборкаКомпьютераТовары
ГДЕ
Номенклатура в Жписою 1оменклнту ты) И
Кюменкла^ураВидНоменкла уры ~ ^ш^енклатуры’';
Запрос УстановитьПарам9тр; СлисокНоменкпатурых,
ДокументОбъект.Перс ,еньНоме й-уры.ВыгрузитьКоло;ку("Номе' кпатура’*));
Запрос Установи! ьГ.араметр("ВидНом^нклатуры , Перечгаения.В^ ф
Результат = Запрос. Выполним);
Сборка = Результат вьгрузитьр*
ВнеюлиеНаборыДанных = Новый Структ /ра;
Внешние? ^аборыДаньых Вставить '"ЦеныПоступления", Поступление);
ВнешниеНаборь Данных ВставиьГЦе ныСборки", Сборка);
СхемаКо^по' ювкиДанных = ДокументОбъект.По11учитьМакет;"Анал 4зЦенКомплектующих"\
На-гройки '= СхемаКог' лновкиДанных.НастройкиПсШолча» ию;
КомпоновьдикМакета - новый * 'ок>поновщикМакетаКим “новкиДанных;
ДанныеРзсшифрг вки »НовыйДанныеРасшифровкиКс. чоновкиДанных;
к'!акетКо.лпоновки ь Ко1лпоновцикМакетпВьтолнить(СхешКомпода Настрой! ;и
Да 1ныеРасшифров ;и)
ПроцессорКом .зновхиДаннь^ - Новый Проце.хх рКомпоновкиДанн 1х,
ПроцессорКомпоновкиДанных ИниЦиализировать(МакстКомпоно ки,
ВнешниеНабор. Данных. Да’ ныеРасшифровм,;
Доиум® ;тРезультат * Новый ТабличныйДокумент;
ПроцессорВ.чвода = Новый I юсц€ ссорВыеодаРезупьтатаКокпочсвкиДанныхБТаблич ыйДокумент;
ПроцессорВыво^Установит^окументДскументРезультат);
Пр цессорВывода.Выве' ги(ПроцессорКомпоновк1^Данных
Возврат ЛокументРезульгат:
КонецФункции
Прокомментируем процедуру обработчика. Сначала определяется запрос
для выбора поступлений комплектующих из документов ПриходнаяНа-
кладная. При этом полям табличной части Цена и Количество присваиваются
псевдонимы ЦенаПриход и Поступило. В качестве параметра запроса исполь-
зуется список номенклатуры табличной части текущего документа. Затем
определяется запрос для выбора расхода комплектующих из документов
СборкаКомпьютера. При этом полям табличной части Цена и Количество
присваиваются псевдонимы ЦенаСборки и Собрано. В качестве параметров
запроса используется список номенклатуры табличной части текущего доку-
мента и вид номенклатуры - Материалы, так как в отчете нужно отображать
только комплектующие. Затем создаются два внешних набора данных -
ЦеныПоступления и ЦеныСборки и заполняются результатами запросов. Затем
программно выполняется компоновка данных с использованием внешних
наборов данных и выдача результата в табличный документ. После этого
заполненный данными табличный документ возвращается на клиента и пока-
зывается пользователю.
Запустим «1С:Предприятие». Откроем документ СборкаКомпьютера. Нажмем
кнопку Анализ цен. На экране появится наш отчет (рис. 2.313).
X
4
(Анализ цен комплектующих
Номенклатура
Поступило Собрано Яыручка
Кож Цеьа /)ли\ о 'Цен' I ...
|Жесткий диск 3 3000 3} 3 600!
|Материнская плата 5 2 000 з| 2833}
|Память { 5 1 200! зТ 1 667}
1 800
2 ГС"
1 490
:
•>
I *
Рис. 2.313. Результат отчета
Настройка отчета
Теперь продемонстрируем возможность программной настройки нашего
отчета. Для этого сначала удалим все настройки, которые мы сделали в схеме
компоновки данных.
СОВЕТ
Советуем перед удалением настроек сохранить схему компоновки данных
в файл.
На закладке Настройки нажмем кнопку & (Заменить настройки стандартной
настройкой), расположенную вверху командной панели окна настроек.
На запрос конфигуратора о подтверждении потери текущих настроек ответим
утвердительно. В результате все сделанные нами настройки будут очищены,
а мы восстановим их программным образом.
В модуле формы документа откроем функцию АнализЦенДокументаО
и отредактируем фрагмент кода следующим образом (листинг 2.62).
Листинг 2.62. Фрагмент функции «АнализЦенДокументаО»
СхемаКомпоновкиДанных = ДокументОбъект.ПолучитьМакет(’'АнализЦенКомплекТующих‘');
И Настройки * СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
Настройки = УстановитьНастройки(СхемаКомпоновкиДэнных);
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
Как видим, мы закомментировали использование стандартных настроек
схемы компоновки данных АнализЦенКомплектующих и добавили вызов
функции УстановитьНастройкиО, которая будут возвращать программно
установленные настройки схемы компоновки данных. В функцию передается
схема компоновки данных АнализЦенКомплектующих, содержащаяся в макете
документа.
Функцию УстановитьНастройкиО будем вносить и комментировать
по частям для лучшего восприятия материала. Сначала получим настройки
по умолчанию схемы компоновки данных, которые мы предварительно
очистили. Создадим группировку по полю Номенклатура и назначим для нее
автовыбор полей (листинг 2.63).
Листинг 2.63. Процедура программной установки настроек
&НаСервере
Функция УстановитьНастройки(СхемаКомпоновкиДанных)
Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
ГруппировкаНоменклатура = Частройки.Структура.Добавить(Т ип(ТруппировкаКомпоновкиДанных’’))
Г|руппировкаНоменклатура.Использование = Истина;
ПолеНоменклатура = Г рулпировкаНоменклатура.ПоляГр^ллировки.Элементы.Добавить(
Т ип(пПолеГруппировкиКомпоновкиДанных"));
ПолеНоменклатура.Использование = Истина;
ПолеНоменклатура.Поле = Новый ПолеКомпоновкиДанных("Номенклатура");
Выбран ыеГюляДляНоменклатурЬ‘= ГруппировкаНоменклотура.Зыбо: .Элементы Добавить^
Тип(нАвтоВыбранноеПолсКомпоновкиДанных‘’));
Вь!браннь1еПг. (ЯДлгНоменкла^рн.Использование == Истина;
•
В общем списке выбранных полей создадим группу Поступило и добавим
в нее поля Поступило с заголовком Количество и ЦенаПриход с заголовком
Цена. Затем создадим группу Собрано и добавим в нее поля Собрано с заго-
ловком Количество и ЦенаСборки с заголовком Цена. Затем в общий список
выбранных полей добавим поле Выручка (листинг 2.64).
Листинг 2.64. Процедура программной установки настроек
Г руппаВыбранныхПолей = Настройки.Выбор.Элемеигы .Добавить)
Т ип(’Т руппаВыбранныхПолейКомлоновкиДанных"));
ГрулпаВыбранныхПолей.Использование = Истина;
ГруппаВыбранныхПолей.Заголовок = "Поступило";
Поле1 = ГруппаВыбранныхПолей .Элементы.Добавить(Т ип("ВыбранноеПолеКомпоновкиДанных"));
Поле1 .Использование = Истина;
Поле1.Заголовок = "Количество";
Поле1.Поле = Новый ПолеКомпоновкиДанных("Поступило");
Поле2 = Г руппаВыбранныхПолей.Элементы.Добавить(Тип(,,ВыбранноеПолеКомпоновкиДанных"));
Поле2.Использование Истина;
Поле2.3аголовок = "Цена";
Поле2 Поле = Новый ПолеКомпоновкиДанных "ЦенаПриход");
ГруппаВыбранныхПолей = НастройкиЪыбор.Элементы.Добавить(
Тип(ТруппаВыбранныхПолейКомпоновкиДанныхп)):
ГруппаВыбранныхПолей. Использование = Истина;
ГруппаВыбранныхПолей.Заголовок = "Собрано";
Поле! ГруппаВыбранныхПолей.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
Поле1.Использование = Истина;
По е1 .Заголовок = "Количество";
Поле1.Поле = Новый ПолеКомпоновкиДанных("Собрано");
Поле2 = ГруппаВыбранныхПолей.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных")):
Поле2.Использование = Истина;
Поле2 Заголовок = "Цена";
ПолеЗ.Поле = Новый ПолеКомпоновкиДанных("ЦенаСборки");
Вь1бранныеПоля = Настройки.Вь1бор.Элементы.Добавить(Тип("ВыбранноеПолёКомпоновкиДанных"));
ВыбранныеПоля.Использование = Истина;
ВыбранныеПоля.Заголовок = "Выручка";
ВыбранныеПоля.Поле = Новый ПолеКомпоновкиДанных("Выручка");
• » •
Настроим параметры вывода Заголовок и ВертикальноеРасположе-
ниеОбщихИтогов. Обратите внимание, что названия некоторых параметров
вывода не совпадают с названиями в окне настроек схемы компоновки
данных. Список имен параметров для программного использования можно
увидеть в разделе синтакс-помощника Общие объекты ► Система компоновки
данных ► Настройки компоновки данных ► ЗначенияПараметровВыводаКомпонов-
киДанных (листинг 2.65).
Листинг 2.65. Процедура программной установки настроек
Настройки.ПараметрыВывода.УстановитьЗначениеПараметра("ВертикальноеРасположениеОбщихИтогов",
РасположениеИтоговКомпоновкиДанных.Нет);
Настройки.ПараметрыВывода.УстановитьЗначениеПараметраС'Заголовок", "Анализ цен комплектующих").;
Возврат Настройки;
КонецФункции
Чтобы продемонстрировать программную настройку отбора, уберем отбор
по виду номенклатуры на уровне запроса для набора данных ЦеныСборки.
В модуле формы документа откроем функцию АнализЦенДокументаО
и отредактируем фрагмент кода следующим образом (листинг 2.66).
Листинг 2.66. Фрагмент функции «АнализЦенДокументаО»
ГДЕ
Номенклс гура в (йСписокНоменкпатуры)’';
/[Номенклатура ВидНоьюнклатуры - &ВидНоменклагуры‘
Запрос.УстановшъП^^
Г ,ереченьНоменк.г’атурь.ЗыгрузитьКолоику,/,'Номенкпатура));
/ Запрос,Установ! тьПарамет '"ВидНоменклатуры', Перечисления.ВидыНоменкла'уры.Материалы);
Как видим, мы закомментировали использование в отборе параметра
ВидНоменклатуры. Запустим «1С:Предприятие». Откроем документ Сбор-
каКомпьютера. Нажмем кнопку Анализ цен. В отчете будет присутствовать
услуга Сборка компьютера, которой не должно быть по условию задачи.
Поэтому мы добавим отбор в функцию УстановитьНастройкиО так,
чтобы в отчет попадала только номенклатура из группы Комплектующие,
и отключим вывод информации об отборе (листинг 2.67).
Листинг 2.67. Процедура программной установки настроек
ЭпементОтбора-Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
Эл$ментОтбора.ЛевоеЗначе,11,е - Новый! ‘"леК°мпоновкиДанных(’,Н шнклатура");
Элемент Отбора .ВидСравнения к ВидСуавьениякомпоновкиДснных ВИерарх: и;
ЭлементОтбора.ПравоеЗначение = Справочники Номокклагура.11? ижПоНаименова! ию("Комллектующие");
Настройки ПараметрыВыводг.Установитв^начсниеГ1апаме1ра("ВыводитьОтбор*'1
ТилВыводаТекстаКомпо ювкиДанных НеВыводить
Возврат Настройки;
КонецФу^кцни
Проверим результат. Вид отчета в точности соответствует разработанному
ранее в схеме компоновки данных отчету (см. рис. 2.313).
Описание схемы компоновки данных
Попробуем теперь программно описать саму схему компоновки данных, ее
наборы данных, поля, ресурсы и вычисляемые поля, используемые затем
в настройке отчета. Эта задача довольно трудоемкая, но полезная с точки
зрения освоения методов и свойств объектов системы компоновки данных.
Информацию о них можно увидеть в разделе синтакс-помощника Общие
объекты ► Система компоновки данных ► Схема компоновки данных...
В модуле формы документа откроем функцию АнализЦенДокументаО
и отредактируем фрагмент кода следующим образом (листинг 2.68).
Листинг 2.68. Фрагмент функции «АнализЦенДокументаО»
II СхемаКомпоновкиДанных = ПолучитьМакет("АнализЦенКомплектующих’’);
СхемаКомпоновкиДанных = УстановитьСхему();
Настройки = УстановитьНастройки(СхемаКомпоновкиДанных);
Как видим, мы закомментировали использование схемы компоновки данных
АнализЦенКомплектующих, содержащейся в макете документа, и добавили
вызов функции УстановитьСхему (), которая будет возвращать программно
созданную новую схему компоновки.
Функцию УстановитьСхему () будем вносить и комментировать по частям
для лучшего восприятия материала. Сначала создадим новую схему компо-
новки данных. Добавим локальный источник данных информационной базы.
Затем создадим НаборДанныхОбъединение с именем НаборДанных1 и два его
элемента НаборДанныхОбъект с именами ЦеныСборки и ЦеныПоступления.
Обратите внимание, что имена наборов и их полей должны совпадать
с указанными именами в процедуре их программного заполнения при
нажатии кнопки Анализ цен (листинг 2.69).
Листинг 2.69. Процедура программной установки схемы компоновки
&НаСервере
Функция УстановитьСхему()
СКД = Новый СхемаКомпоновкиДанных;
ИД = СКД.ИсточникиДанных.Добавить();
ИДИмя = "ИсточникДанных”;
ИД.ТипИсточникаДанных = ТосаГ;
НаборДанных = СКД.НаборыДанных.Добавить(Тип(,'НаборДанныхОбъединениеСхемыКомпоновкиДанных,,ж
НаборДанных.Имя = "НасорДанныхГ;
Набор1 =НаборДанных.Элементы.Добавить(Тип(,'НаборДанныхОбъектСхемыКомпоновкиДанных"));
Набор1.Имя = "ЦеныСборки";
Набор1.ИмяОбъекта = "ЦеныСборки”;
Набор1.ИсточникДанных = "ИсточникДанных";
Набор2 = НаборДанных.Элементы.Добавить(Тип(,’НаборДанныхОбъектСхемыКомпснозкиДанных"));
Набор2.Имя = "ЦеныПоступления";
Набор2.ИмяОбъекта ®"ЦеныПоступления”;
Набор2.ИсточникДанных = "ИсточникДанных";
« •
В первый набор - объект добавим поле: Номенклатура, ЦенаСборки с заго-
ловком Цена и Собрано с заголовком Количество. Во второй набор - объект
добавим поле: Номенклатура, ЦенаПриход с заголовком Цена и Поступило
с заголовком Количество. Обратите внимание, что имя поля и путь к данным
у полей внешних наборов данных совпадают (листинг 2.70).
Листинг 2.70. Процедура программной установки схемы компоновки
Поле! = Набор! .Поля.Добавить(Тип(',ПолеНабораДанныхСхемыКомпоновкиДанных"));
Поле!.Поле = "Номенклатура";
Поле1 ЛутьКДанным = "Номенклатура”*
Поле!.Заголовок = "Номенклатура";
Поле2 = Набор! .Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанныхи));
Поле2 Лоле ~ "ЦенаСборки";
Поле2.ПутьКДанным = "ЦенаСборки";
Поле2.3аголовок = "Цена";
ПолеЗ = Набор! Лоля.Добавить(Тип(Т1олеНабораДанныхСхемыКомпоновкиДанных"));
ПолеЗ.Поле = "Собрано";
ПолеЗЛутьКДанным = "Собрано";
ПолеЗ.Заголовок = "Количество";
Поле! = Набор2.Поля.Добавить(Тил("ПолеНабораДанныхСхемыКомпоновкиДанных"));
Поле!.Поле = "Номенклатура";
Поле! ЛутьКДанным ~ "Номенклатура";
Поле!.Заголовок = "Номенклатура";
Поле2 = Набор2.Поля.Добавить(Т ип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
ПолеЗ.Поле = "ЦенаПриход";
Поле2.ПутьКДанным = "ЦенаПриход";
ПолеЗ.Заголовок = "Цена";
ПолеЗ = Набор2Лоля.Добавить(Тип(’’ПолеНабораДанныхСхемыКомпоновкиДаннь:х''));
ПолеЗ.Поле = "Поступило";
ПолеЗ Луч ьКДанным = "Поступило";
ПолеЗ.Заголовок = "Количество";
Далее добавим вычисляемое поле Выручка и зададим его формат без вывода
дробной части. Затем добавим поля ресурсов ЦенаПриход, ЦенаСборки, Посту-
пило, Собрано и Выручка и зададим выражения для их расчета (листинг 2.71).
Листинг 2.71. Процедура программной установки схемы компоновки
ВычПоле = СКД.ВычисляемыеПоля.Добавить();
ВычПолеЛутьКДанным * "Выручка";
ВычПоле.Заголовок = "Выручка";
ВычПоле.Оформление.УстановитьЗначениеПараметраС'Формат", ‘ЧЦ=6; ЧДЦ=О”);
ПолеРесурса = СКДЛоляИтога.Добавить();
ПолеРесурса ЛутьКДанным = "ЦенаПриход";
ПолеРесурса.Выражение = "Среднее(ЦенаПриход)”;
ПолеРесурса = СКДЛоляИтога,Добавить();
ПолеРесурса ЛутьКДанным = "ЦенаСборки";
ПолеРесурса.Выражение = "Среднее(ЦенаСборки)";
ПолеРесурса = СКД.ПоляИтога.Добавить();
ПолеРесурсаЛутьКДанным - ‘'Поступило";
ПолеРесурса.Выражение = “Сумма(Поступило)";
ПолеРесурса = СКДЛоляИтога Добавить^;
ПолеРесурсаЛутьКДанным = "Собрано”;
ПолеРесурса.Выражение = "Сумма(Собрано)";
ПолеРесурса = СКДЛоляИтога. Добавить();
ПолеРесурсаЛутьКДанным = "Выручка";
ПолеРесурса.Вь ажение = "Сумма(Собрано) * (Среднее(ЦенаСборки) - Среднее(ЦенаПриход7";
В заключение нам осталось задать формат полей ЦенаПриход и ЦенаСборки
также без вывода дробной части. Но поскольку на уровне наборов данных-
объектов нет возможности задать оформление, эти поля сначала нужно
добавить в набор данных - объединение. Автоматически, как в конструк-
торе компоновки данных, в родительский набор они не добавляются
(листинг 2.72).
Листинг 2.72. Процедура программной установки схемы компонпркм
ПолеЦены = НаборДанныxЛоля.Добавить(Тип("ПолеНабораДанныxСxемыКомпоновкйДан^^ыx,,));
ПолеЦены Лоле = "ЦенаСборки”;
ПолеЦеныЛутьКДанным = "ЦенаСборки";
ПолеЦены.Оформление.УстановитьЗначениеПараметраС'Формат", "ЧЦ=6; ЧДЦ=О");
ПолеЦены = НаборДанных Лоля.Добавить(Т ип(<,ПолеНабораДанныхСхемыКомпоновкиДанных"));
ПолеЦены Лоле = "ЦенаПриход";
ПолеЦеныЛутьКДанным = "ЦенаПриход”;
ПолеЦены.Оформление.УстановитьЗначениеПараметра("Формат", "ЧЦ=6; ЧДЦ=0");
Возврат СКД;
КонецФункции
Проверим результат. Мы получим абсолютно такой же отчет, как и при
использовании схемы компоновки данных (см. рис. 2.313). Таким образом,
мы убедились, что каждый этап процесса компоновки данных можно сфор-
мировать программным образом. Стоит ли это делать - зависит от конкретной
задачи и подхода разработчика. В большинстве случаев при разработке
отчетов можно обойтись интерактивными возможностями платформы.
Итак, на этом примере мы научились:
использовать в схеме компоновки наборы данных - объединения
объектов,
выполнять программную настройку отчета,
программно создавать и описывать схему компоновки данных.
Пример 19. Консоль системы компоновки
данных
В заключение этой практической главы покажем возможность отладки схем
компоновки данных с помощью консоли системы компоновки данных.
Консоль опубликована на ИТС (Ьйр://П8.1с.ги/с1Ь/те1ос181#соп1еп1:3401:1), ее
можно получить как внешний отчет/обработку и добавить в свою конфигу-
рацию или открыть как внешний файл.
Консоль системы компоновки данных позволяет загрузить и выполнить
уже готовый отчет или разработать новый отчет с нуля, используя встро-
енный конструктор схемы компоновки данных. При этом можно просмотреть
ХМЬ-текст схемы компоновки данных и проанализировать результирующий
запрос к информационной базе, который формирует платформа для полу-
чения данных отчета после применения всех настроек, параметров и т. п.
Это бывает нужно для анализа сложных схем компоновки данных, когда
в результате отчета появляются непонятные ошибки и требуется понять
изнутри, что же делает система компоновки данных.
Для примера рассмотрим схему компоновки данных разработанного ранее
отчета ОстаткиИПродажиТоваров (стр. 112). Напомним, что в данном отчете
использовалась связь наборов данных (Остатки и Продажи) по периодам
с использованием параметров связи. Во втором наборе данных мы отключали
свойство Автозаполнение (стр. 346) и сформировали набор полей и их роли
самостоятельно в тексте запроса. Дело в том, что автоматическое заполнение
полей и значений параметров не всегда оптимально и иногда может привести
к ошибкам. Чтобы это увидеть, проанализируем текст запроса платформы
в сгенерированном макете компоновки данных при помощи консоли системы
компоновки данных.
Сначала сохраним в файл схему компоновки данных нужного нам отчета
ОстаткиИПродажиТоваров (рис. 2.314).
Запустим «1С:Предприятие» в режиме Толстый клиент (управляемое
приложение). Консоль системы компоновки данных добавлена в нашу демон-
страционную конфигурацию в качестве обработки, и ее можно вызвать из
группы команд Сервис. Запустим ее и добавим новый отчет в консоль системы
компоновки данных. Для этого нажмем кнопку Добавить в командной панели
консоли (рис. 2.315).
Жч аййг иТййарв» 0<л' ч-' м^Й1** «йы4л*йг
Наборы данных Сваям нйбпплв пан
Вычисляемые поло Рргцпгь1 Папйметпн Макеты Вложенные пх^^мы
анить схе1
в Наборы данных
Остатки
РУ*эччргол
Мгм
д онты
Сет вое
окружение
&ои
КО-1Г» 'О-
в файл
Пайк® Ьаза
р1Су8РТхГ
□^1Субкод
5 анализ □поступления□продаж
настройкм_анализЦен_СБ
| наст; ойкх'мпродажи-номенкпатуры
цстатки_продажи_това; в
предопределеный_макет
: примермакета
। схема_анализЦен_СБ
:хема_макетСБ
с (ема_оказание_услуг
с'вма_остаткиноменклатуры
схема_остаткиноменклатуры_макет
схема_поступление_товаров
Настройки
. (। :хема_продажи
|а?*{ схема_продажи_контрагентам
схема_продажи_номенклатуры
|§схема_СБ
^1 схема_СБ_мастера
схема_составСБ
*= 'схема_список_номенклатуры
,Х'; схема_цены_комплектующих
э иерархии
иных
Имя файла : !остаггки продажи_товаров
____________________________________
Тил/Фей/й: Я Документ ХМЬ Г.хп11)
К, — - " " ' " ~
Сохранить
иструктор запроса..
р» КАК КонецПе КАК Начальнь :АК Конечный*^ — • ► >
Автозаполнение **!
—~1
Рис. 2.314. Сохранение схемы компоновки данных в файл
Консоль системы компоновки данных - Г емонстр
Консоль системы компоновки данных
Файл- Ъ тормирск
Добавить ’ 4 & X | ф Все действия’
добавить отчет
Добавить вариант отчета
Добавить пользовательские настройки
Добавить папку
Рис. 2.315. Добавление отчета в консоль системы компоновки данных
После этого нажмем кнопку Загрузить схему из файла и загрузим из файла
ранее сохраненную схему компоновки данных. В верхнем правом окне
консоли мы увидим ХМЬ-текст загруженной схемы компоновки данных.
Затем нажмем кнопку Сформировать. В нижнем окне консоли на закладке
Табличный документ мы увидим результат выполнения отчета в виде таблич-
ного документа (рис. 2.316).
Откроем конструктор схемы компоновки данных и введем значения параме-
тров отчетного периода (рис. 2.317).
> ^Кснепль ^ пень ;о» пнрь 'пь. “ «.'ет’снстр-ац и ая онфигурацвд “ т сте . (1С., .рел> ртетг-е
* Консоль системы комюновки данных *
Файл
, С «рормиров иг
11анелн резуль атс
Добавить»! (х? X ! Ф. Все действия
Отчеты
!^Л |
Йт'уег!
: Конструктор схемы компоновки данных
дг: 1 <?хи!1 Vе^з^оп=',1.0', епсой±пд=’,иТГ-8',?> <СасаСои1роз1С1опЗс11еп1а хю1пз="11СС.р: /Лт8.1с. ги/8.1/йаса-сотроз1с.1оп-зузс.его/з< <йасаЗоигсе> А.
<паше>ИсточникДанных 1</ пе<те> <йасаЗоигсеТуре>Ьоса1</йасаЗоигсеТуре> </йаса5оигсе>
сйаьаЗеС хз±: С.уре=',0ас.а5еС.0иегу"> <па1ие>Остатки</ паше> <:Е 1е 1й хз1: Суре= "СасаЗеьЕ 1е 1йГ 1е 1й,г>
<йаСаРасЪ>КонецПериода</йасаРасИ> СЕ 1е1й>КонеиПериода</±±е1й> <го!е>
Ж “ 1 Л! ' 1 ! 1 1 ! ; ) 1 I1 1 I Г 1 ! । । 1 ! 1 !: I к.
н
Сохранить эталон , Сравнить с эталоном
! Табличный доку... гд МакеТ для таблиц/I Результат линт,.., ? ;ЙфЬлняайь1ен.- Н Исполняемые н... /' Коллекция Ц Ма1Йдлякоядч^^РеЙ?Ь'Лщд|^^;
Рис. 2.316. Результат отчета в консоли системы компоновки данных
Файл
Ко соль системы компоновки данных *
к 1 Фйрмчрс ь
Панель раи^ь. ап»
Настройки [
* х я§ ♦
> Цмя.варианга Представление
Основной
3 Отображать недоступные параметры (устанавливать значения недоступных параметров не ре, оменщет ся]
Набсвьимнна^?; я <я нй&яа лент лх.
@ах Номенклатура
Ц|1ха НачалоПермода
Добавить’1 X ! Все действия^ (у ^онструктор схемы комюноекиданны^
. Настройки: ;ййетЧ Отчет
'-[ Параметры • (, . Выбранные па ) (Мрр, \ рт,да. ка „.ЫсловнойрФол чвапм* Оргмв.яср
г|^а*
Дита
01112011 6:00:00
^Значение:
Произвольная дата
Произвольная дата
I : ^Параметр
г® Начало периода
’: КонецПериода
Ок ,
Рис. 2.317. Редактирование настроек отчета в конструкторе схемы компоновки данных
Нажмем ОК, сформируем отчет и в нижней части консоли перейдем на
закладку Макет для табличного документа ХМ1_. Здесь мы видим ХМЬ-текст
сгенерированного макета компоновки данных, внутри которого мы можем
найти и проанализировать текст запроса, выполняемого платформой для
получения данных отчета (рис. 2.318).
Рис. 2.318. Сгенерированный макет компоновки данных
Поскольку схема компоновки данных, макет компоновки и т. п. представлены
в виде ХМЬ-текста, разработчик должен представлять структуру описания
этих объектов в ХМЬ-формате. Рассмотрим структуру описания схемы
компоновки данных:
между тегами <?> и </?> располагается служебный комментарий;
тег <Ба11аСотро81111оп5с]тета> открывает описание схемы компо-
новки данных. Сначала идет описание типа схемы компоновки данных
в пространстве имен «1С:Предприятия»;
в между открывающим и закрывающим тегом <<5а1:а8оигсе> находится
описание источника данных схемы компоновки;
тег <с1аРа8еР> открывает описание набора данных схемы компоновки.
Здесь определяется имя набора, список полей и текст запроса. Описание
полей, их имени, роли, формата представления и т. п. заключено между
открывающими и закрывающими тегами <Не1с1>;
между открывающим и закрывающим тегом < диегу> находится
описание текста запроса набора данных;
тег </с1аРа8еР> закрывает описание набора данных схемы компоновки;
между открывающими и закрывающими тегами <с1аРа8еРЫпк> нахо-
дится описание связей между наборами данных;
между открывающими и закрывающими тегами <са1си1акес1Е1е1с1>
находится описание вычисляемых полей схемы компоновки данных;
между открывающими и закрывающими тегами <Рока1Е1е1с1> нахо-
дится описание полей ресурсов схемы компоновки данных;
между открывающими и закрывающими тегами <рагатеЕег> находится
описание параметров схемы компоновки данных;
тег <зекМпдз\7аг±апк> открывает описание настроек варианта отчета;
между открывающими и закрывающими тегами <с1сззеЕ:зе1есЕ1оп>
находится описание списка выбранных полей настроек схемы компоновки
данных;
между открывающими и закрывающими тегами <с!сззеЕ:с1а-
ЕаРагатеЕегз> находится описание настроек параметров данных
схемы компоновки данных;
между открывающими и закрывающими тегами <с!сззеЕ:Д1Еег> нахо-
дится описание условий отбора настроек схемы компоновки данных;
между открывающими и закрывающими тегами <с1сззеЕ:соп-
сНМопа1Арреагапсе> находится описание условного оформления
настроек схемы компоновки данных;
между открывающими и закрывающими тегами <с1сззеЕ:оиЕриЕРа-
гашекегз> находится описание настроек вывода схемы компоновки
данных;
между открывающими и закрывающими тегами <с1сззеР:1Реш> нахо-
дится описание элементов структуры настроек схемы компоновки
данных;
тег </зеРМпдз\7аг±апР> закрывает описание настроек варианта
отчета;
тег </РаЕаСотроз1‘Ыоп8сИета> закрывает описание схемы компо-
новки данных.
ПРИМЕЧАНИЕ
Некоторые символы, зарезервированные в ХМЬ, отображаются в тексте
при помощи специальных обозначений. Так, символ «&» отображается как
«&атр;», символ «<» отображается как «&1Ц», символ «>» - как
Найдем в тексте схемы компоновки данных (в верхнем правом окне консоли)
запрос для первого набора данных Остатки (листинг 2.73).
Листинг 2.73. Запрос для набора данных «Остатки» в схеме компоновки данных
<циегу>ВЫБРАТЬ
ОстаткиНоменклатурыОстаткиИОборотыЛериод КАК НачалоПериода,
КОНЕЦПЕРИОДА(ОстаткиНоменклатурыОстаткиИОбороты.Период, МЕСЯЦ) КАК КонецПериода
Ос гаткиНоиенклатурыОа эткиИС^роты.Шмежлатура,
ОстаткиНоменклатурыОстаткиИОбороты.КоличествоНачальныйОстаток КАК НачальныйОстаток,
ОстаткиНоменклатурыОстаткиИОбороты.КоличествоКонечныйОстаток КАК КонечныйОстаток
ИЗ
РегистрНакопления ОстаткиНоменклатуры ОстаткиИОбороты(,, Месяц,,)
КАКОстатииНс*ленклатурыОстаткиИОбороты</циегу>
Теперь посмотрим, как изменился текст этого запроса в макете компоновки
данных (в нижнем окне консоли, на закладке Макет для табличного документа
ХМЬ), листинг 2.74.
Листинг 2.74. Запрос для набора данных «Остатки» в макете компоновки данных
<циегу>ВЫБРАТЬ
ОстаткиНоменклатурыОстаткиИОбороты.Период КАКНачалопериода,
КОНЕЦПЕРИОДА(ОстаткиНомеи;спатурь/?статк,лИоборо1ы1ериод МЕСЯЦ) КАК КонецПериода
ОлтаткиНоменклатур>|Ое^аткиИОбороты. Номенклатура КАК 1 Номенклатура,
ОстаткиНоменклатурыОстаткиИОбороты.КоличествоНачальныйОстаток КАК НачальныйОстаток,
Остатки! юменклат урыОстаткиИОбороты.КоличествоКо! вчныйОстатск КАК КонечнгйОстаток,
: ПРЕДО! АВЛЕНИЕССЫЛКИ(ОстаткиНоменклатурыОста гкиИОбороты.Ноыенклатура)
КАК НоменклатураПредставление,
ОоткиНоменклатурыОстаткиИОоороты.Нсче клатура.Яаименование
КАКНоменклатураНаименование
ИЗ
РегистрНакопления.ОстаткиНоменклатуры/Эс.сГгкиИОбороты(&атр;П, &атр;П2,
Месяц,,) КАК ОстаткиНоменклатурыОста<киИОборо;ы</цьегу>
Измененные фрагменты запроса выделены в листинге 2.74 жирным
шрифтом. В результирующем запросе получается представление ссылки
и наименования измерения Номенклатура, а также параметры НачалоПериода
и КонецПериода виртуальной таблицы ОстаткиНоменклатуры.ОстаткиИОбороты
заполняются значениями, введенными в настройках отчета на закладке Пара-
метры (см. рис. 2.317). В макете компоновки данных параметры заполняются
следующим образом (листинг 2.75).
<рагате(ег\/а1ие>
<пате>КОнецПериода</пате>
<^а!ие х811уре=”х8:йа1еТ1те“>2012-01-31Т00:00:00</уа1ие>
</рагате1ег\/а1ие>
<рагате1егМа1ие>
<пате>КсчецПериодаПродаж</п^1пе>
<уа1ие х81:1уре="х8:да1еТ|те”>0001-01-01 Т00:00:00</уа1ие>
</рагате1ег\/а1ие>
<рагате(ег\/а1ие>
<пате>НачалоПепиода</пате>
<уа1Ю '<811уре='’Х8:(1а1еТ|те">2011-12-01Т00:00 00< уа1ие>
</рагате(егУа,ие>
<рагате1ег\/а1ие>
<пате>НачалоПеоиодаПродаж</пате>
<уа!ие хз!: 1уре~’хэ с!а1еТ1теи>0001-01-01Т00:00 00</уа1ие>
</рагате1егУа1ие>
<рагаг.е!ег\/а111е>
<пате>П</пате>
<уа1ие х81:1уре="х8^аШТ1Гпе’’>2011-12-01Т00:00 00< уа1ие>
< рага.1е(ег\/а1ие>
<рагате1ег\/а1ие>
<пате>П2</лате>
<уа!ие хз 1: (уре="х8 :ба1еТ|те”>2012-01-31 ТОО :00:00<А/а!ие>
</рагате1егУа1ие>
Теперь проанализируем текст второго набора данных Продажи. В схеме компо-
новки данных он имеет следующий вид (листинг 2.76).
Листинг 2.76. Запрос для набора данных «Продажи» в схеме компоновки данных
<цоегу>ВЫБРАТЬ
&атр;НачалоПериодаПродаж КАК НачалоПериода,
&атр;КонецПериодаПродаж КАК КонецПериода,
ПродажиОбороты.Номенклатура,
ПродажиОбороты КоличествоОборот КАК Количество
{ВЫБРАТЬ
НачалоПериода,
КонецПериода,
Номенклатура.*,
Количество}
ИЗ
РегистрНакопления.Продажи.Обороты(&атр;НачалоПериодаПродаж,
&атр;КонецПериодаПродаж , {(Контрагент)Д (Номенклатура).*})
КАК ПродажиОбороты</диегу>
Посмотрим, как изменился текст этого запроса в макете компоновки данных
(листинг 2.77).
<диегу>ВЫБРАТЬ
&атр;НачалоПериодаПродаж КАК Началопериода,
&атр;КонецПериодаПродаж КАК КонецПериода,
ПродажиОбороты.Номенклатура КАК Номенклатура,
ПродажиОбороты.КоличествоОборот КАК Количество
ИЗ
РегистрНакопления. Продажи,Обороты(&агпр;НачалрПериодаПродаж,
&атр;КонецПериодаПродаж,,) КАК ПродажиОбороты</диегу'
Поскольку связь исходного набора данных Остатки с набором Продажи
выполняется по полям НачалоПериода и КонецПериода, с использованием
параметров связи НачалоПериодаПродаж/КонецПериодаПродаж, значения
полей НачалоПериода и КонецПериода набора данных Остатки (в данном
случае начало и конец месяца) будут использоваться в качестве значений
параметров НачалоПериодаПродаж/КонецПериодаПродаж виртуальной таблицы
Продажи.Обороты.
При разработке отчета опытным путем мы выяснили, что установка свойства
Автозаполнение для набора данных Продажи приводит к ошибке - данные
в колонке Количество (Продано) увеличиваются пропорционально количеству
периодов в отчете. Разберемся, почему это происходит.
Сначала на закладке Макет для табличного документа ХМЬ сохраним правильный
вариант макета компоновки данных, нажав кнопку Сохранить эталон (см. рис.
2.318). Затем в конструкторе схемы компоновки данных включим свойство
Автозаполнение для набора данных Продажи (рис. 2.319) и установим следу-
ющий текст запроса (листинг 2.78).
Листинг 2.78. Запрос для набора данных «Продажи»
в конструкторе схемы компоновки данных
ВЫБРАТЬ
&НачалоПериодаПродаж КАК Началопериода,
&КонецПериодаПродаж КАК КонецПериода,
ПродажиОбороты.Номенклатура,
ПродажиОбороты.КоличествоОборот КАК Количество
ИЗ
РегистрНакопления.Продажи.Обороты(&НачалоПериодаПродаж,
&КонецПериодаПродаж,,) КАК ПродажиОбороты
Наборы данных Связи небо ®д.
Конс^рут-тор схенъ1Крг<1снс1ки данных- Дитоне-... (1.Е:Пр1едпд1НЯТ _, &
41
Маке 1 Вложенные схемы
« л- С *' -Я
I. Настройки
к“ * * । 1 I Ё> Наборы данных Остатки
I Г1лр
’ 1 5
и >
Я ?
г
1 I
Г 1 1 1 1 || 1
1 1 1
“» - КонецПериода
Поля:
Поле
В
“• Контрагент
«®! НачалоПериода
«ИИЧВСТВО
. Вычисляемые поля Рес I о ' I Парамет—
Ограничение поля Роль
Путь
ДвтозаголоЕок П... | у... • г., у Ограничение рек п..Ау„. :г.. У...
Количество Г Т Количество : □ □ О1С : ? и*
' КонецПериода ;О Конец пелисда о. □ со •г
— Контрагент V О Контрагент > й НачалоПериода : С (3 Начало. 1ермода Номенклатура ; ГТ □ □ о с х/ 'ОС о
; Выражени. Проверка иерархии ] П
> Выражения ' Набор данных
* упорядочи... „
. Параметр
: Измерение
4:
•»' Номенклатура
Конструктор запроса...
Г
РегистрНакопления.Продажи.Обороты(еНачалоПерисдаПродеж, ЕКонедПериодаПродк
Запрос:
ВЫБРАТЬ
ЕНачалоПериодаПродэж КАК НачалоПериода,
ЕКснеиПериодаПродаж КАК КонецПериода,
ПродажиОбороты.Номенклатура,
ПродажиОбороты.КоличествоОборот КАК Количество
Рис. 2.319. Изменение запроса в конструкторе схемы компоновки данных
ОК Отмена Справка
X I
Добавим в ресурсы схемы компоновки поле Количество, так как этот ресурс
исчезнет при изменении запроса. Сформируем отчет. Найдем текст запроса
для набора Продажи в сгенерированном макете компоновки данных (в нижнем
окне консоли, на закладке Макет для табличного документа ХМ1_), листинг 2.79.
Листинг 2.79. Запрос для набора данных «Продажи» в макете компоновки данных
<9иегу>ВЫБРАТЬ
&атр;; ]ачалоПе^пдг.Г1родаж КАК НачалоПериода,
&атр;КонецПериодаПродаж КАК КОнедГериад
ПродажиОбороты.Номенклатура КАК Нсмклатура,
ПродажиОбороты Кс ячестве' Оборот КАК Количество
ИЗ
РегистоНакоплемич.Продажи.Обороты(&атр;П, &атр;П2,>)
КАК ПродажиОборогы</диегу>
Измененные фрагменты запроса по сравнению с листингом 2.77 выделены
жирным шрифтом. Чтобы быстро найти отличия макета, сгенерированного
в результате изменений, нажмем кнопку Сравнить с эталоном (рис. 2.320).
и1 езпйчдамелц.“* *Л"
А ₽$ < > < ! Л
1 98 <йаСаРаЫ1>НачалоПериода</йаСаРаГЪ> Г7 Г: 98 <йаГаРаГЬ>НачалоПериода</йаГаРаГк> )*Л
99 <пате>НачалоПериода</пагое> 99 <пагое>НачалоПериода</пагое>
100 <го1е> * 100 <го1е>
к 101 <йсзсогп:й1тепз1опАггг1Ьиге>ггие</йсзссп к, 101 <йсзсот: ййпепзшпАссг Нэйсе >Сгие</йсзс<- 1
X 102 </го1е> 102 </го1е>
4 103 </11е1й> н 103 </Ие1й> | I
104 <Ие1й> ; к 104 СЕ1е1й>
1' 105 <йаСаРаСЪ>Номенклатуре</йасаРеС11> й 105 <йаСаРаСЪ>Номенклатуре</йеСаРеСЪ>
106 <пагое>Номенклатура</пагое> К ’ *. 106 <пагое>Номенклатура</пагое>
Г 107 <го1е> 1 Ё : 107 <го1е> ! 1
н- - 108 <йсзсош:ййпепз1оп>ссие</йсзсот:ййпепзсо; 1 ; 108 <йсзсот:йсшепз1оп>сгие</йсзсот:ййпепз!
109 </го1е> ь 109 </го1е> !
110 </Ле1й> 110 </С1е1й> { Л
111 <йесеЗоигсе>ИсточникДанных1</йаСе5оигсе> 4 г. 4* ? 111 <йасаЗошгсе>ИсточникДанных1</йагаЗоигсе>
112 «Зиесу>ВЫБРАТЬ 112 <аиегу>ВЫБРАТЬ ! |
113 багор;НачалоПериодаПродаж КАК Началопериода, к * 113 с агор; НачалоПериодаПродаж КАК Началопериода,
114 багор;КоненПериодаПродаж КАК Конецпериода, г 114 Сатр;КонецПериодаПродаж КАК КонецПериода, ПродажиОбороты.Номенклатура КАК Номенклатура,
115 ПродажиОбороты.Номенклатура КАК Номенклатура, 115
116 ПродажиОбороты.КоличествоОборот КАК Количество Г 116 ПродажиОбороты.КоличествоОборот КАК Количество ; |
’К 117 ИЗ 117 ИЗ
118ф| РегистрНакопления. Продажи. Обороты («агпр; Начало Период, 118 РегистрНакопления. Продажи.Обороты(«агар;П, сатр;П2< д
119 </йаСаЗес> 119 </йаеаЗеС>
к’ 120 сйагаЗеГ Ь 1пЮ- 120 <йаГаЗегЬ±пк>
121 <зоигсеРасаЗеС>Остатки</зоигсеРаСаЗес> Г 121 <зоигсеРеСаЗеС>Остетки</зоигсеРеСаЗес> ! К
К® > 122 <йезс спас топРеС аЗес >Продажи</ йезс 1паС топРеС аЗеС I / 122 <йезс ±пас сопПагаЗеоПродажиС/йезг шаг сопРаг аЗ;
аг 123 <зо игсеЕхргезз1оп>Остатки.Номенклатура</зоигсеЕ: 123 <зоигсеЕхргезз1оп>Остатки.Номенклатура^зоигс; ।
и 124 <йезс1пас±опЕхргезз1оп>Продажи.Номенклатура</йе; | * 124 <йезс1пас1опЕхргезз1оп>Продажи.Номенклатура^;
125 <рагагоегегП1зсА11оыей>^е1зе</регатеСегЫзсА11ои! 125 <рагамегегП1зсА11оыей>4а1зе</рагатесегП1згА11; и
126 </йеСаЗесБ1пк> 1 126 </йаСаЗесЬ 1иЬ
127 <йасаЗесЬ1пк> 1 127 <йаГаЗегЬШк>
128 <зоигсеРеСаЗеС>Остатки</зоигсеРеСаЗеС> 128 <зоигсеРаСаЗег>Остатки</зоигсеРагаЗес>
-?Т“Ч . • & И
Рис. 2.320. Сравнение двух макетов компоновки данных
Из текста запроса мы видим, что параметры НачалоПериодаПродаж/
КонецПериодаПродаж виртуальной таблицы Продажи.Обороты будут запол-
няться не значениями полей НачалоПериода и КонецПериода набора данных
Остатки, а значениями настроек отчетного периода НачалоПериода и КонецПе-
риода. То есть в нашем случае (когда данные выбираются с периодичностью
Месяц) период продаж не разбивается по месяцам, а включает сразу два
месяца, из-за чего и получается дублирование данных в колонке Количество
(Продано).
Рассмотрим теперь другую важную особенность системы компоновки
данных: система исключает из результирующего запроса поля, не участву-
ющие в настройках отчета. Это также может приводить к ошибкам.
Рассмотрим пример. Разработаем простой отчет по продажам и проанализи-
руем текст запроса в макете компоновки данных в зависимости от изменения
настроек отчета.
Нажмем кнопку Добавить в командной панели консоли системы компоновки
данных и добавим новый отчет. Откроем конструктор схемы компоновки
данных и добавим набор данных - запрос. Заполним текст запроса для набора
данных следующим образом (листинг 2.80).
Листинг 2.80. Запрос для набора данных в конструкторе схемы компоновки данных
ОЫЕРА-ТЬ
Пр^ ,ажи.Обороты() КАК Проййжйббсро .ы
На закладке Вычисляемые поля добавим вычисляемое поле (стр. 358) Сумма
и зададим выражение для его расчета как Количество * Стоимость (рис. 2.321).
> т т 1лл^рукгсрсх^ь«.комтоноЕ иданны ’емонстр, (ТСЯрсдпрАЯг^ ’-М-ТГ-.Я' а/. .с .X
Наборы данных \ . Связи набйрое дан,, . 11 Вычисляемые поля I -“есурсу { Параметры Маке ты ({ Вложе! иные схемы | В истрст 5
| ст х р
1 $ Путь к данным | Выражение заголовок {)Ограничение дост... . Выражение ! Выражения । Тип значения 1 | Доступные !. Оформление ! |к
! ' 7 'п"|77г »и‘ представле... 1 упорядочив..., В ?- 1 А»’. У*-.- I .... = Ул.._. 1 * ! ,1 значения ?' - ’ 1 Параметры .„| 1:
1 |^^^^^ДД^Количество,‘Стоимость^ Сумма ; С О С ’ О | ИИИИГ 1 1_ 1. _ ...к к , 1 1 1 .4. _ .1
II || - - 1 > г 1 - К:
1 ОК Отмена Справка 1
Рис. 2.321. Вычисляемые поля в конструкторе схемы компоновки данных
Выражение для расчета вычисляемого поля задано просто для примера и не
несет никакой смысловой нагрузки. На закладке Ресурсы добавим поле Сумма
в ресурсы отчета (стр. 370).
' (аборы денных
? г систрукторс,хемь) Компоновки данных -.. |ТС
?вязй наборов.., Вычисляемые.. у | Ресурсы [
Параметры ц. М кеты 1 Вложенные ок ... .1; Настройки
шые поля
О | ®“ Количество
11 ет Контрагент
| "• Номенклатура
| I ва> Стоимость
цу
Поле
Гй Гумма
Выражение
' Сумма(Сумма)
Рассчитывать по...
ОК Отмена Справка
Рис. 2.322. Ресурсы в конструкторе схемы компоновки данных
На закладке Настройки добавим в настройки отчета группировку Детальные
записи и в список выбранных полей — поля Контрагент, Номенклатура и Сумма
(рис. 2.323).
У
-дв-. гЯ"* ‘ & КадтЯй^ч^каг^ кампрцоя^
= Наборы данНъкЯ < Связи на&да данн<.,:< | / . 0^исяяемь1е пол1я Ййчрсьг
Имя варианта, Представл'
ц#®® «Детальные записи»
I Настройки: ГтЧёГ’ Отчет
I
I Параметры ] Выбранные
1е ...
Дос "упные поля
таа
Т1арйг.,етры
«₽та.^ *ки*-*,: ^-' -
* Яакеты р 1 *1 Настройки
г
<
Поле
Ысйрен&гб:.у л р Пошзрвате... [ *..;Дру№ё;Нает..
} 4*4 *
«к
а
с®
Количество
Контрагент
Номенклатура
Стоимость
& Выбранные поля
е® Контрагент
=» Номенклатура
Сумма.
Й?
Ймбй
® ЗЭ СистемныеПоля
<*? ЕЙ Параметры Данных
ОК Отмена правка
!
I
а
?.1
X
4
Рис. 2.323. Структура и выбранные поля отчета
Нажмем ОК и сформируем отчет, нажав кнопку Сформировать (рис. 2.324).
Контрагент . : Номенклатура : Сумма Й
ЮОО "Стандарт1^ [ООО "Стандарт” |6од "Автоматика" {Ремонт камоьютеиа опутст1зуЮи1^ услуги ч,.;=^| Диагностика компьютера ; 3 000,00001 :7~2Г2ООО.ОООо1 ' 3000,0000;
!ООО '^Система" ! Компьютер для офиса [ 10 000,0000;
ЮОО “Автоматика" 1 Компьютер для дома 1 ; 10 000,0000;
ЮОО "Автоматика" 'ООО "Стит" [ООО "Стиль" Компьютер игровой \ ; 13 ООО.ббоО;.
Монитор ССО _ _ _ ' Веб-камера ! 44 000,0000: : 13 500,бобо!
;ооо "Стиль" Микрофон 4 000,0000'
ООО “Атлант" 'Ремонт компьютера —.— —. — —^..— {Сопутствующие услуги 3 000,0000;
|ООО “Атлант" 2 000,0000!
|ООО "Атлант" {Восстановление данных 5 000,0000!
|ООО "Стандарт" диагностика компьютера 50б,0ббб'|
;ИТОГО г-: •- - - . г _ 113 000дюп
Сохранить эта лон ; Сравнить с эталоном
Т аблмчный доку.
- Макет длятабпы . 1I Резуль гаг для . ; г М< едлняшыр н -. !
К..-Ч- V-, '. ЙИФН4, >-+-н. . • ' _;у -,»!•• -^-.- . V-
Рис. 2.324. Результат отчета в консоли системы компоновки данных
Найдем текст запроса для набора данных в сгенерированном макете компо-
новки данных (в нижнем окне консоли, на закладке Макет для табличного
документа ХМ1_), листинг 2.81.
<цьегу>ВЫБРАТЬ
ПподажиОборотьь Номенклатура КАКНоменклатур.
' ЪодажиОбороты.Контрагент КАК Контрагент,
ПродажиОбороты СтоимостьОборот КАК Стоимость
П1 гДСТАВЛЕНИЕССЬ!ЛКИ(ПрадажиОборо1 ы Контрагент) КАр Сел агентПредставленио,
| * Р0ЕДСТАБЛЕНИЕСОЬ1ЛКИ(ПродажиСблроты.Номенклатура) КАК Я юнклатураПредотавление
Рогигтг.Накопления.Продаж" ОЬороты(,,, ) КАК I .подажгФбротьк/зиегу*
Поскольку свойство Автозаполнение включено, в описании полей набора
данных для полей Контрагент и Номенклатура установлена роль — Измерение
(листинг 2.82).
Листинг 2.82. Роль поля «Номенклатура» в макете компоновки данных
<йеЙ>
<ба(аРа№-Номенклатура<
<пагпе>Нс^^
<го!е>
<дсзсопт:й1теп8юп>1гие</с^8ссгпд?гг1еп81оп>
</го!е>
</М>
Теперь в конструкторе схемы компоновки данных изменим настройки
отчета - отключим использование поля Номенклатура (рис. 2.325).
।—------------
[Доступнье толя
Количество
Контрагент
Номенклатура
Стоимость
Сумма
Ф
И СистемныеПоля
О ПараметрыДаьиых
| П к Рорйфгёка; ] | ' а Долыэрйа^
'; Поле
Э Выбранныеполя
«и Контрагент
«» Номенклатура
Сумма
ф
3
Рис. 2.325. Изменение настроек отчета в конструкторе схемы компоновки данных
Сформируем отчет и сравним его с правильным вариантом на рис 2.324
(рис. 2.326).
Контрагент7
ООО "Стандарт'
ООО “Стиль"
ООО “Автоматика1
ООО "Система”
ООО “Атлант*
| Итога
Сумма,
рртеооодзсю-
Г 3® 000.0000;
12 ‘’ОООО^боО'
~ 36 роб,бобо;
джгэдоэдб!
Мы видим, что суммы продаж, не учитывающие разрез по номенклатуре, -
неправильные. Почему так происходит?
Найдем текст запроса для набора данных в макете компоновки данных
(листинг 2.83).
Листинг 2.83. Запрос для набора данных в макете компоновки данных
Мы видим, что в запросе нет поля Номенклатура, так как это поле не показы-
вается в отчете. Однако это поле является измерением оборотного регистра
накопления Продажи, служащего источником данных для запроса. Поэтому
при расчете любых вычисляемых полей отчета данные должны учитываться
в разрезе номенклатуры. То есть поле Номенклатура должно обязательно
присутствовать в тексте запроса, и у этого поля должна быть установлена
роль - Измерение.
Чтобы этого добиться, откроем конструктор схемы компоновки данных и на
закладке Наборы данных установим свойство Обязательное в роли поля Номен-
клатура (рис. 2.327).
Рис. 2.327. Установка признака «Обязательное» в роли поля «Номенклатура»
Сформируем отчет. Теперь результат правильный, поскольку данные в нем
разрезаются по номенклатуре (рис. 2.328).
Контрагент Сумма
ООО “Стандарт" | 3 'ТОО Г' ОС
ЮОРХтёидарт" ; ~ 2 000 ,0000
;ООО "Автоматика" 3 000,0000
(ООО "Система" ! ТООООДТОСЮ;
(ООО "Автоматика" » 10 000,0000^
:ООО "Автоматика" 13 000,0000*
>ООО “Стиль" ; 44 000,0000:
(ООО "Стиль" ~ I 13500 ДХЮ:
рЭОО "Стиль" " ' ‘4 000,0000:
ООО “Атлант" з 000,0000:
!ООО "Атлант1 2 000,0000 '
ООО "Атлант" “ 5000,0000'
ООО "Стандарт" " " ~ 500^000
итого | пзейоуйш!
>
и— . ыгкМ.-> ' ——1^Иаа
Сохранить эталон | Сравнить с эталоном
Табличный докц„ С Макет для табли
Рис. 2.328. Результат отчета в консоли системы компоновки данных
Найдем описание роли поля Номенклатура в макете компоновки данных
(листинг 2.84).
Листинг 2.84. Роль поля «Номенклатура» в макете компоновки данных
<йе1<3>
<ба1аРа!Ь>Номенклатура</ба1аРа!Ь>
<пате>Номенклатура</пагпе>
<го1е>
^с!с5соп1:д1теп8юп>1гие</бсБсотс!|теп81оп>
<бс8сот:гери1геб>!гие</бс.8сот:гери1гес!>
</го1е>
</Ие1с1>
В описании роли поля указаны свойства Измерение и Обязательное. Это
значит, что поле Номенклатура обязательно будет присутствовать в списке
полей запроса, независимо от настроек отчета (листинг 2.85).
Листинг 2.85. Запрос для набора данных в макете компоновки данных
<риегу>ВЫБРАТЬ
ПродажиОбороты.Номенклатура КАК Номенклатура,
ПродажиОбороты.Контрагент КАК Контрагент,
ПродажиОборотьг.КоличествоОборот КАК Коги ествс,
ПродажиОбороты.СтоимостьОборотКАКСтоимость,
ПРЕДСТАВЛЕНИЕССЫЛКИ(ПродажиОборотЕ Контрагент) КАК КонтрагентПредставление
ИЗ
РегистрНакопления.Продажи.Обороть|(,,, ).КАК ПродбжиОборотьк/рьегу>
Обратите внимание, что хотя поля Количество и Стоимость не выводятся
в отчете, они все равно присутствуют в запросе, так как участвуют в расчете
поля Сумма.
В заключение посмотрим, как будет влиять на текст результирующего запроса
отбор, установленный в настройках отчета. Откроем конструктор схемы
компоновки данных и установим отбор по номенклатуре — <Номенкла-
тура> <В Группе> <Услуги> (рис. 2.329).
Параметре Вь^зннысп.
| I Левое значение
'! Отбор
Номенклатура В । руппе
Отбор | •< ° условное, оф... 7 т, Пользоват^я
Другое наст.
Вид сравнения -Правое значение Режу.
Услуги
з1:
I т? I
Рис. 2.329. Создание отбора в конструкторе схемы компоновки данных
Сформируем отчет (рис. 2.330).
Р-? г- Отбор: Номенклатура В группе "Услуги" 1!
Контрагент 77 _ ООО "Стандарт" ООО ‘Стандарт" ООО "Автоматика" '11м* лигатура Ремонт компьютера Сумма Г _ зооо.оооо; 2 666,6666; 77 зббб.ООТб’- з 660,6000:.
^Сопутствующее услуги Тдиа гностика компьютера {Ремонт компьютера
ООО "Атлант"
ооо"Атлант"... ООО "Атлант" _ обб"с'" дагг" •Сопутствующие услуги 2 666,0000 П
Восстановление данных Диагностика компьютера 5 ОТО,0001 500ГОГ 13 560С31
Итого 7 - - "
Рис. 2.330. Результат отчета в консоли системы компоновки данных
Посмотрим, как изменился текст запроса для набора данных в макете компо-
новки данных (листинг 2.86).
<диегу>ВЫБРАТЬ
ПродажиОбороты Номенклатура КАК Номенклатура,
ПродажиОбороты.Контрагент КАК Контрагент,
ПродажиОбороты.КоличествоОборот КАК Количество,
ПродажиОбороты Стой остьОборот КАК' Стоимость,
ПРЕДСТАВЛЕНИЕССЫЛКИ(ПродажиОбороты.Контрагент)КАК КонтрагентПредставление
ИЗ
РегистрНакопления.Продажи.Обороты(, ,, Н менклатура В ИЕРАРХИИ(&атр;П))
КАК ПродажиОбороты</риегу>
<Ша8е>
<рагате1егУа1ие>
<пате>П</пате>
<уа!ие хт1п8:бЗр1 =’Ъйр://у8.1 с.ги '8.1/да!а/еп1егрп8е/сиггепНсопГ|д"
х81:1уре=’’с13р1:Са!а1одПе>.Номенклатура’,>
561б7а13-Т50Ь-11бсЧ>151-001617с01с17с!</уа1иб>
</рагагпе1ег\/а1ие>
Мы видим, что условие отбора добавлено в параметр Условие виртуальной
таблицы Продажи.Обороты, а параметр (&П) заполняется значением ссылки на
элемент справочника.
Глава 3. Справочник
разработчика
В данной главе подробно рассказывается об отдельных функциях системы
компоновки данных. Глава не содержит сквозных примеров, поэтому ее
можно использовать как справочник.
Общие возможности
Получение итогов по всем датам
в выбранном периоде
При разработке отчетов с использованием системы компоновки данных,
имея детальные записи, мы можем надстраивать над ними итоговые записи,
формируя их по какому-то признаку. Если детальные записи обладают перио-
дичностью (например, имеют поле Дата), то мы можем формировать итоговые
записи, суммируя значения детальных записей, например, за каждый день.
При этом отчет будет выглядеть красиво только в том случае, если у нас есть
детальные записи для каждого дня. В противном случае итоговые записи
будут сформированы только для тех дней, для которых есть детальные записи
(рис. 3.1).
Обычно пользователи хотят видеть отчет, в котором итоговые записи присут-
ствуют в отчете для всех дней, независимо от того, есть ли внутри детальные
записи или нет (рис. 3.2).
Зяетдаттв "V. й;;Д '>" 4 **? И ? - Й
I Отчет по продажам
— — 4.^.^.. -— --------------------+ р К-
1 Вариант отчета- ^Основной ______________________!' Вьйре « чжант '•
;':: йормираватц б)§ Настройка..
'^Е^отнрммям
Все действия-;
Р штяяиг ее' .
'Переметры: Период: 01.01.2012 - 31.012012
> мгска*
.20-;
•V 1 !.О12О12
(Ва^йй^ ?&0о?Ылмйг1,г“
; Ж1варь.2И2 „
;( 13.01.2012
!\, 15.012012
биообобсу' Ид^'.'СйМЙЗД?8'
.2012
! 1 012012
13000,00,
13 000.п
“УЖоо*
'‘"запру
4000,00]
5~оооро!
"451№,00.
^4ЙИуМ
4500.001
ЗДЙЖ
18500,001
100.00'
тем
28,89;
28,89.
1 01. '01
18500 ОС
Итого
!45 000,ОД^
100,00^
_44,ад!
~ 55,5бТ
100,01),
1о6,боГ
100,00
100,00)
160,038
200®
-ад®;
ими?
1?Ж
20-М’
~8Д9;
ИМИ?
1?Ж
1ОД.ОД
100,ОД
ли№ъаь_-
Рис. 3.1. Группировка по периоду без дополнения
1~г“г’^^®г •’.«ияв«1т зсуЦ „
11 |м «• шаг ; 25 Настройка.-
| Прошлый месяц
1ерицд
Отчет но продажам
Вариант отчета: 'Основной
Вы&вть вариант
Все действия -1 у
15012012
16012012
17.012012
8.012012
19О1?2012
20.012012
С< юст
18.01.2012
19.01.2012
20012012
^ООрОЖк0бЪ*^анг"
в ;ЯнварьЭЙ2 .
заде
гоое
' } : 19.01 2012__________________
[ [ <_ 20012012
В .пптгоотЮОООЧСтацзарГ
; й чциарь.2012 ___
I ; Г 1001. <012
11012012
«О12Й2
13.СЙ2012
10,00
?ЯРМЧЕ „
зотодоГ
100,оп
{ 18.012012
14.01.2012
4500,00|
I
-------+
1
--------г
10)00;
- | 15012012
' 18012012
} ! 17.01.2012
| ___16.012012
17.012012
4ьии,00
'ЭД«о
Г.1ЦЮ
юро
13012012
14.01.2012
1401.2012
15.01.2012
^Параметры: Период: 01.01.2012 - 31012012
100,00
28,89|
10.012012_
1Г.612012
_ 12.01.2012
~ 13?0Г 2012
8Д9
11.11
ЙК18а
100,01)
>В,«9
"а
4000,00;
44,44
5 000,00:
55,56
Ян₽0рь«2О13
Г-Ч^Й ГИК-141 — , 1^—>Л У—I"
1 012012
I 11012012
н 1НГ К= ,
.... дзтюаде
"13 10,ОТ
13000,00
1201.2012
КрМТр то ИТ
Й«триад, месяц
._,.Л I гхимф:
в общий
КУ **и >ю
Для решения этой задачи система компоновки данных позволяет указы-
вать для группировок дополнение периодов с заданной периодичностью
в указанном интервале. Для примера рассмотрим Отчет по продажам
(стр. 135), который выводит информацию о продажах номенклатуры за
указанный период. Например, необходимо получать данные о продажах
по дням, вне зависимости от того, были ли движения за эти дни.
Для отчета разработан вариант настроек Основной, содержащий группи-
ровку по контрагентам с вложенными в нее группировками ПериодМесяц
и ПериодДень, и вариант настроек ДинамикаПродаж, содержащий диаграмму
с группировкой в сериях по полю Контрагент, а в точках - по полю
ПериодДень (рис. 3.3).
[Вариант "Основной" отчета "Отчет по продажам"
Добавить » | | X I Ф Ф ! ФЯ С®
.труктура отчета
Отчет
0 ии Контрагент
е- Период, месяц
0™ Период, день
Вариант "Динамика продаж" отчета "Отчет по продажам"
Добавить ’ I I X ' # ; 09 В®
Структура отчета
и. ош
© 01г4 Диаграмма
Э Точки
Период, день
в Серии
Контрагент
Рис. 3.3. Структура отчета
Результат отчета с группировкой по периоду без дополнения будет выгля-
деть следующим образом (рис. 3.4, 3.5).
1>четп прод., . рС Лредт ияп^ - □ X
Отчет по продажам
Вариант отчета' ^Основной | ^Вьфеть вариант.
Сфо пировать $ Настройка.. Все действия-•-"З
[58Период ; Прошльй месяц I
(•7 ! Параметры Период' 01.01 2012 - 31.01 2012 [ I Ь 1
Контрагент Стоимость Стоимость.% Стайность.%
И к । мо^. месяц । ч- ио. день в ,общий группировке
% (0000 .ОТ’ ООО "Автоматика** 13000,00 28,89 28.89
Январы2012 13000,00 100,00. 28,89
! 1. 12 01 2012 13 000,001 100,00; 23,85
гаошинбмд ООО “Атлант * ™20,00 ' 20,0»
I р с.яварь.2О12 9000,00 100,00 20 00
13.01.2012 4000,00! 44,44; 8.09
1.1 ’г01 201” 5 000,00' 5556 -1-1 -|4 1 1
У 00000008) О'о5 -С ркади' 4500,00 10,во ,< < . 10,00
1? Январь.201 4600,00 100,4 1000
14Л1.2012 4 500,00* 100 00. 10,90
1 т3 (000000007) ОООЮтиль" 18 600. “0 41,11, П-11
Январь 201 18600,00 140.00 4111
11 1201 2012 1В 300,00 10С 1 1 41 1
Итого 15 000 ВО 100.М ТОО 9В
ж-- »; 1
Все действия » 1
Прошлый месяц
Б
Отчет по продажам
Вариант отчета {Динамика продаж _
Настройка..
| И / 11Й Период
Рис. 3.5. Диаграмма с группировкой по периоду без дополнения
1
Как видно, дни, за которые отсутствовали движения, не выводятся в ойНет! чт|
не позволяет оценить динамику продаж. Чтобы включить данные о ярэдЕжа|;
за любые периоды, воспользуемся дополнением периодов. Выберем вариант
отчета Основной и выполним команду Все действия ► Изменить вариант
. Затеи
выделим в структуре отчета группировку ПериодДень и на закладке Групг]|/1р^|
емые поля установим тип дополнения День (рис. 3.6).
Нажмем кнопку Завершить редактирование, снимем признак исполь|зов^нв),г
отчетного периода и выполним отчет. В нем выводятся данные о пррд^жарг
с периодичностью в день, даже если за эти дни не было движений (рис. Е.7[^
Однако, как мы видим, периоды дополняются только в интервале дат, за
которые были движения. Чтобы изменить ситуацию, можно указать фиксн!
рованный интервал, в котором будут дополняться периоды. Для этогр нужнс
ввести даты в колонки Начальная дата периода и Конечная дата пер^од^
(рис. 3.8).
Вариант',Сс1орной’,'тгчетя' Луче: .по продажам Демонстрационная г знфчгур и.< Система комгюнг идг ДС родпрутрий .3
Вариант "ОсновноР?* отчета “Отчет по продажам"
Добавить ’ I I X I Ф I
Все действия ’
< Структура отчета
I -А<. . ' С- ----- -
б Й™3 Контрагент
5 Период, месяц
Завершить редактирование Отмена Все действия • ;
Рис. 3.6. Установка дополнения группировки
Отчет по продажам
Вариант отчета: (Основной
~-чгп< -т ода па.
п ..
( Выбрага .ариант, •
Все действия
Прошлый месяц
а
► Сформировать'; ПУ Настройка...
С СЁ Период
1 Контрагент [Период месяц Стоимость СтОИМвСТЬ,1]! е СтбимостьЛ общий
|и |.'«ма' виц группи|и>вке
(в? ®аоо >оо Автоматик? 24500.00 .,. .... 32.03 . 32,03
, Декабрю.2011 11 500,00 ч6,94 15.031
1 /46.12.2011 1 000,00 6,70 1,31>
06.12.2011 ! {
07.12.2011
08122011
1 09.12.2011 !
1 10.122011 .
' \Л .12.2011 10500,00 91,30 13,7311
1 Январь.2012 13 000,00 53,00 16,99.'
! 12.01.2012 13 000,00 100 ДО 16,99'
(0 мншойазу О&О КышМ** -л: 11,?6 .. 11,76
Г Январь 2012 9000,00 100,00 М 76'
! /43.01.2012 4 000,00 44,44
{ { 14.01.2012 Г
Г \15.012012 5000,00 55,56 6541,
(ООДОШОД >00’Г|-стем?" 19000,00 13,07 .. 11,07
Г Декабрь.2011 10 000,00 180ЛИ 13Л7;
1 09.12.201-> 10000,00 100,00
ИМНЮОВД) ООО "Стандарт , г; (500,00 М>« 5,88
Январь. 7012 Г 4500,00 100,00 5,88;
; 14012312 4 500 00 100,00 5.88'
(0000000871 ООСХТИЯЬ’ С.,., гв40в,оо : 5‘ 37,25'
1 ЬекаЦн^ТОИ 10 000,00 35.09 13.07
[ 06 > 2.2011 10000,00 100,00 13,07'
! ЯНварь.2012 18500,00 64.9-. 24,18!
1? 01.2012 16 5Ц0.00 100,00 24,16'
| Итого гб 500 да 1С0ВД Ш
!| г! Лер...
Выбрать
ЙЗ 'По^Гйй Гру"-
ь.
Усл
Доступные поля
* оНт.
В се действия» Новое поле [ Новое авто поле | X : ♦ Ф
Все действия
Период, день
Период, месяц
Количество
| Поле
начали в1-, юта грисда
<= Период день
1001 20120:00:00 .
Тип дополнения
Конечная дата перт ода
День
| ® Стоимость
<________________
Рис. 3.8. Установка интервала дополнения периодов
При этом периоды будут дополняться не только в интервале дат, полученном
из набора данных, но и с начальной даты до конечной даты (рис. З.Я).
Рис. 3.9. Группировка «ПериодДень» с дополнением «День»
в интервале 10.01.2012-20.01.2012
В качестве начальных и конечных дат периода можно использовать не только
даты, но и перечисление ТипДополненияПериодаКомпоновкиДанных (день,
неделя, месяц, год и т. п.), а также Поле компоновки данных, например, поля
параметров отчета. Для выбора типа следует очистить содержимое поля и
воспользоваться кнопкой выбора типа. Подробнее об этом рассказывалось во
второй главе на стр. 148. Рассмотрим эти варианты на примере диаграммы
этого отчета. Для этого выберем вариант отчета Динамика продаж и выполним
команду Все действия ► Изменить вариант... Установим для группировки
диаграммы ПериодДень тип дополнения Неделя и выберем тип Поле компо-
новки данных (рис. 3.10).
Польз.. .
: Групп... । Г/^Пвля ' Дтбор &Ж|: СйрпИо...-, ? .Услов...
Выбрать
Все действия^ (^Новоеполе 1 Новое авто поле ; X I & Ф
Все действия
р-—--------—
< Доступные плед
Период, день
Период, месяц
Количество
Стоимость
Поле
! Тип дополнен^ з
.* .'.Л: ~ «; •жм л-л. л. лл Гк>
Конечна >'ета триода. . .
(Оделя
? Начальная дета периода
ТЖ«д,Де.нь
Рис. 3.10. Выбор типа данных для указания интервала дополнения
^рнтруенГ
$
I
1 I
Если в качестве начальной и/или конечной дат периода используется
поле компоновки данных, то дополнение будет осуществляться до даты,
полученной из этого поля. Им может быть поле параметра или поля отчета -
владельца (если дополнение происходит во вложенном отчете). Для примера
воспользуемся для установки интервала дополнения параметрами - начало и
конец периода (рис. 3.11).
ч
Выбрать
Все действия” Новое поле I Новое авто поле . М ! Ф
/ГТ-Й’-. И
рЗ Допеги..
Все действия-
Доступные поля
! Поле
Кангрэген?
Период, день
Период, месяц
Количество
Стоимость
Начальная дата периода
Я*; Период,, день
. теп>ы.Начаяытеоиод:
! Тип допо нения
I Конечная дата периода
Неделя
8
I
к
Т
I
Е»
0
к
Рис. 3.11. Установка интервала дополнения периодов
с помощью полей компоновки данных - параметров
При этом результат будет дополняться в том периоде, который указан
в параметрах данных отчета, то есть интервал дополнения периодов будет
динамически меняться в соответствии с тем, какой период формирования
отчета задаст пользователь (рис. 3.12).
Отчету ррс!"а?кйг1 Двмрнсзрациоеиар он иг Ч* рейцзи ие. *.’
1 Г
Все действия’'' ,
; Прошлый месяц
Отчет по продажам
Вариант отчета: | Динарка продаж
‘ ► СфорМнр©рйть ! | Настройка...
Г
Рис. 3.12. Диаграмма по периоду с дополнением «Неделя»
в интервале отчетного периода
Если в качестве границы интервала используется значение, имеющее тип
ТипДополненияПериодаКомпоновкиДанных, то дополнение будет осущест-
вляться до ближайшей границы выбранного типа периода. Так, если
в качестве начальной и конечной дат периода выбрать Месяц, то дополнение
будет осуществляться с начала месяца первой даты, присутствующей в груп-
пировке и до конца месяца последней даты, присутствующей в группировке.
Изменим Основной вариант отчета. Установим для группировки ПериодДень
дополнение День и в качестве границ интервала выберем значение Месяц,
имеющее тип ТипДополненияПериодаКомпоновкиДанных (рис. 3.13, 3.14).
г **' Г 4» т.Н Пр,ты
Групп.
Все действия
| Новое поле | Новое авто поле X |
-------- 1
Все действия ▼ ?
| Выбрать
доступные -оля
1
3
Период, день
Период, месяц
Количество
Стоимость
: Поле
1 *
Начальная дата периода
Тип ДОПОЛНА (Я
I .очечная дата периода
1ень
т
Рис. 3.13. Выбор типа данных для указания интервала дополнения
X
Пара,.. ДЙ Польз, : Гипп?'"^ , Поля 5 От^ор . Серпе. ' г Дорал.
। Выбрать Все действия •»
Н' Доступные тол
® ЕЯ д
| ; в» Период, день
| Период, месяц
| & Э Количество
* ® $ Стоимость
Новое поле 5 Новое авто поле < X ! Ф
Все действия ~
Рис. 3.14. Установка интервала дополнения периодов с помощью перечисления
«ТипДополненияПериодаКомпоновкиДанных»
Нажмем кнопку Завершить редактирование, установим произвольный отчетный
период и выполним отчет. В результате дополнение произойдет по дням
в пределах месяца, хотя отчетный период задан с 10.01.12 по 20.01.12
(рис. 3.15).
Г 4 • ~ -,сг "*т>' С ' »' - " <—, " =т
Отчет г ‘ Вариант отч ю продажам
ета: [Основной 1 ( Выбра . в^ианг л
Все действия ▼ | ? ' р 1 ! 1 ь в * 1 I
™ С Ьармыьоваг } Настройка...
1 1Й 1Период 110.01.2012 - 20.01.2012
1 к 1 1 1 X Ж 1 Параметры: Период: 10.01.2012 - 20.01.2012 -к й1|^ш1.?Г1/1^ 1 '*.Ыц 1--'2 _ ... _ — _ ,...<? .'.Г
Нй яграгент рипд, месяц Ч ио 1 иге Стйчмоьп Стоимость в ^•угшировке СгоимостьЛ'- обшди
г* 3 о (000000005) ОЙО^яаш* й?г йоаода , 2<»,ео 10,00
: Янвзйь.2912 [. ь ч 9000,00 ' < . 4 юод»1* 20 00
! - С*0Т0Т2012 Э
02.01.2012
03.01.2012
04.01.2012
05.01.2012
06.01.2012 •
07.01.2012
-— 08.01.2012
09.01.2012
10.01.2012
11.01.2012
12.01.2012 I 1 5: 1 р 5
13.01.2012 4 000.00 44,44 8,89
14.01.2012
15.01.2012 5 000,00 55,56 11,11
16.01.2012
17.01.2012
18.01.2012
19.01.2012
20.01.2012
21.01.2012
22.01.2012
23.01.2012
24.01.2012
25.01.2012
26.01.2012
27.01.2012
28X11.2012
29.01.2012 Ж
3&Ж2012
31.01.2012
:&]
Рис. 3.15. Группировка «ПериодДень» с дополнением «День» в интервале «Месяц»
Изменим вариант отчета Динамика продаж. Если выбрать в качестве границ
значение Неделя, то периоды будут дополняться с начала недели и до конца
недели (рис. 3.16).
.| Депол.
Выбрать Все действия » Новое поле < Новое авто поле । X I Ф Все действия ’
Выполним отчет. Диаграмма будет выглядеть следующим образом (рис.
3.17).
Отчет по продажам
Вариант отчета: ' Динамика продаж
1;
г
I
.1-
л
г
л | Настройка...
Выбрааг. вадкщнт..^
Все действия ▼ I .?
1
I
Рис. 3.17. Диаграмма по периоду с дополнением «День» в интервале «Неделя»
Существует следующая особенность для отчетов, в которых группировка
по периоду вложена в группировку по объемлющему периоду. Если для
дочерней группировки установить в качестве начальной и конечной даты
конкретные даты, то дополнение произойдет в рамках указанного периода,
то есть в отчет могут попасть данные, которые вовсе не находятся в роди-
тельской группировке. Для того чтобы дополнение дочерней группировки
происходило только в интервале родительской группировки, нужно указать
в качестве начальной и конечной дат дополнения периода тип дополнения
периода - период родительской группировки.
Характеристики
В платформе «1С:Предприятие» есть специальный объект - План видов
характеристик. С помощью него можно создавать механизмы для того,
чтобы пользователь имел возможность создавать и описывать произвольные
характеристики для каких-либо объектов информационной базы. Например,
для описания свойств номенклатуры пользователь может создать такие виды
характеристик, как Цвет, Качество и т. п., и задать их значения.
Система компоновки данных позволяет использовать эти характеристики
при разработке отчетов. То есть пользователь может отобразить поля харак-
теристик в отчете, установить по ним отбор, условное оформление и т.д.
Однако применить характеристики можно только после запуска отчета
из режима 1 С:Предприятие. Это связано с тем, что сначала должен быть
выполнен запрос, извлекающий характеристики из базы данных.
Характеристики объектов конфигурации можно описывать в свойстве
Характеристики этих объектов, а можно описывать в каждом конкретном
отчете. Существуют различные варианты хранения дополнительных характе-
ристик объектов конфигурации и их значений:
когда в качестве источника характеристик указывается план видов харак-
теристик, а значения характеристик находятся в регистре сведений.
При этом один план видов характеристик хранит виды характеристик
только для одного объекта конфигурации;
когда план видов характеристик хранит виды характеристик для разных
объектов конфигурации, а значения характеристик находятся так же, как
и в предыдущем варианте, в регистре сведений;
когда значения характеристик хранятся не в регистре сведений, а в спра-
вочнике, например, или в табличной части справочника;
когда в качестве источника характеристик указывается не план видов
характеристик, а табличная часть справочника, которая хранит ссылки
на виды характеристик.
Подробнее о дополнительных характеристиках объектов конфигурации
и способах их хранения можно прочитать в книге «Реализация прикладных
задач» из серии «Профессиональная разработка».
Описание характеристик в отчете
Рассмотрим вариант, когда характеристики объекта конфигурации описы-
ваются в запросе конкретного отчета (более подробно этот пример
рассматривается во второй главе на стр. 126). Для визуального описания
характеристик в системе компоновки данных используется конструктор
запросов, закладка Характеристики (рис. 3-18).
Рис. 3.18. Описание характеристик в конструкторе запроса
В описании характеристики указывается:
» тип, для которого определяются характеристики;
описание видов характеристик;
описание значений характеристик.
Характеристики описываются для определенного типа. Например, можно
описать характеристики для типа СправочникСсылка.Контрагенты или Справоч-
никСсылка. Номенклатура.
Описание видов характеристик
Для того чтобы система компоновки данных выдала пользователю список
полей-характеристик, необходимо описать, откуда получать виды характери-
стик.
О каждой характеристике системе необходимо знать следующую инфор-
мацию:
из какой таблицы или запроса получать виды характеристик;
и Поле ключа - ключ характеристики. По данному ключу характеристика
будет находиться в списке значений характеристик. Поле ключа может
иметь любой тип, для которого может использоваться сравнение в языке
запросов;
Поле имени характеристики - имя, под которым пользователь вводил
характеристику. Например, «масса», «длина», «рост» и т. п. Значение этого
свойства будет использоваться в качестве имени поля, создаваемого для
характеристики;
Поле типа значения характеристики - значения какого типа могут содер-
жаться в характеристике. Данная информация используется в отборе
для фильтрации по полю-характеристике. Может иметь тип Описа-
ниеТипов либо произвольное значение. Если тип значения характери-
стики не указан, то типом будет считаться тип Булево.
Описание значений характеристик
При выполнении отчета системе компоновки необходимо получать значения
выбранных пользователем характеристик.
Для получения характеристик системе необходима следующая информация:
из какой таблицы или запроса получать значения характеристик.
в Поле объекта - объект, для которого требуется получить значение характе-
ристики;
« Поле вида характеристики. В данном поле будет искаться значение ключа,
полученного в списке видов характеристик;
Поле значения характеристики. Из данного поля будет получаться значение
характеристики. Если поле значения не указано, то значение характери-
стики будет иметь значение Истина, если в таблице будет найдена запись
для характеристики объекта, и Ложь в противном случае.
В приведенном примере рассмотрен самый простой и распространенный
случай, когда виды характеристик хранятся в плане видов характеристик,
а значения характеристик - в регистре сведений. Характеристики описыва-
ются для типа Справочник-Контрагенты, список видов характеристик получается
из таблицы ПланВидовХарактеристик.ВидыХарактеристик, в качестве ключа
характеристики используется поле Ссылка, в качестве имени характери-
стики используется поле Наименование, в качестве типа значения - поле
ТипЗначения. Значения характеристик получаются из таблицы РегистрСве-
дений.ДополнительныеХарактеристики. Объектом характеристики в данной
таблице является поле Объект, видом характеристики - поле ВидХарактери-
стики, а значение находится в поле ЗначениеХарактеристики (рис. 3.19).
В результате визуального описания характеристик в конструкторе запроса
платформа добавит в запрос секцию описания характеристик, начинающуюся
с ключевого слова ХАРАКТЕРИСТИКИ. В следующем запросе описываются харак-
теристики для полей типа Справочникесылка.Контрагенты (листинг 3.1).
Листинг 3.1. Текст запроса с использованием характеристик
.ГПАфааг е ‘ УМ*
ВЫБРАТЬ
ПродажОбороты.контрагент,
РегистрНакопления.Продажи.Обороты КАКПродажиОбороты
ТИП* Справочник.Контрагёнты)
ПОЛЕЙЮМА Ссылка ' 7 '
ПОЛЕИМЕНИ Наименование
ПОЛЕТИЛАЗНАЧЕНЙЯ ТМначения
ЭШИЙЯ5ЙВЙ1Ж
ПИбВЬЙКТА Объект ‘
ДОДЕВИЙАВЛДХарактёрис-ш^
ПОЛЕЗНАЧЕНИЯ ЗначениеХарактеристики}
Справвчтйжи
б? Ох! Номенклатура
Ф Й2 Контрагенты
® 0 : Склад
Й а) Планы видов хавактеристи
§ Регистры сведений
ЕЗЖЯВ
Измерения
'• —1-, Объек^
, .-> 1-» ВидХа^актеритуики
$ Ресурсы ! I
I <
I ЗначефсХаракгерисп^и
Йч I ом ।Чдсгор 1.лОр№а
ты н-поля ;Группировка .
«-и. - г~ тп - -.л- . гяг^мТтъ*!',. л в г^т-. г> .«я:
.^ловия < .^ополн|-тейьнр рбьекинёниаЯ1се
Пйря ок^/ КотййнфкДдам, Характеристики } *. П^етзапр^сда.
Таби
«и
в
Н!
И точник
Таблица : ПланВидоХарактеристик.Видь$<арактеристик
'Ссылка -Наименование -ТипЗначения
В, дыхэрактеристи..
Пода ключа.. Пеле имени I Поле.типа значения
Исто ник
знач, чин
ч--------------.
Значения характеристик
ПйсЛс5ъе{-а '.Поле вид^
Пода значений.
“ т- г я * Д
Таблица РегистрСЕ^дений.ДополнйсельныеХарактерио|Ики
I Объект
ц:
Бихарактеристики ЗначениХарактеристики
И!
азад ; { Далее >
Рис. 3.19. Связь объектов конфигурации и описания характеристик
в конструкторе запроса
ОК
] ! Отмена . I Справка
& X
4
(
5
!
В предложении ХАРАКТЕРИСТИКИ тип указывается в скобках после ключевого
слова ТИП. Типы, входящие в составной тип, перечисляются через запятую.
Виды характеристик описываются при помощи ключевых слов ВИДЫХАРАК-
ТЕРИСТИК, ПОЛЕКЛЮЧА, ПОЛЕИМЕНИ, ПОЛЕТИ НАЗНАЧЕН ИЯ. После ключе-
вого слова ВИДЫХАРАКТЕРИСТИК идет имя таблицы, из которой будут полу-
чаться виды характеристик, либо в скобках текст запроса, при помощи
которого получаются виды характеристик. После ключевых слов ПОЛЕКЛЮЧА,
ПОЛЕИМЕНИ, ПОЛЕТИПАЗНАЧЕНИЯ указываются имена полей для получения
ключа, имени и типа значения характеристики соответственно.
Значения характеристик описываются при помощи ключевых слов ЗНАЧЕ-
НИЯХАРАКТЕРИСТИК, ПОЛЕОБЪЕКТА, ПОЛЕВИДА, ПОЛЕЗНАЧЕНИЯ. После
ключевого слова ЗНАЧЕНИЯХАРАКТЕРИСТИК указывается имя таблицы, из
которой будут получаться значения характеристики, или, в скобках, текст
запроса, при помощи которого будут получаться значения характеристики.
После ключевого слова ПОЛЕОБЪЕКТА указывается имя поля, в котором
содержится объект. После слова ПОЛЕВИДА указывается поле ключа харак-
теристики, а после слова ПОЛЕЗНАЧЕНИЯ - имя поля, из которого будут
получаться значения характеристики.
В данном примере (см. рис. 3.19) виды характеристик можно напрямую полу-
чать из плана видов характеристик, а значения характеристик - из регистра
сведений. Но возможны более сложные случаи, когда, например, значения
характеристик могут храниться не в регистре сведений. Или в плане видов
характеристик может храниться список характеристик не только для одного
нужного нам типа данных, но и для других типов.
В этом случае можно воспользоваться запросом, который получает нужные
данные, но более простым и универсальным вариантом является описание
характеристик в метаданных, которое будет рассмотрено ниже.
В приведенном примере виды характеристик получаются при помощи
запроса, в котором получаются только записи с неустановленной пометкой
удаления. Указание полей происходит так же, как и в случае с таблицей,
только используются не поля таблицы, а поля запроса (листинг 3.2).
Листинг 3.2. Получение списка характеристик с помощью запроса
ВЫБРАТЬ
ПродажиОбороты.Контрагент,
ПродажиОбороты.СтоимостьОборот
ИЗ
РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты
{ХАРАКТЕРИСТИКИ
ТИП(Справочник.Контрагенты)
ВИДЫХАРАКТЕРИСТИК (ВЫБРАТЬ
ВидыХарактеристик.Ссылка,
ВидыХарактеристик.Наименобание,
ВцдыХарактеристикТипЗначения
ИЗ
ПланВидов>'арахтеристик ВидыХарактеристик КАК ВидыХарактеристик
ГДЕ
ВидыХарактеристик ПометкаУдаления - ЛОЖЬ)
ПОЛЕКЛЮЧА Ссылка
ПОЛЕИМЕНИ Наименование
ПОЛЕТИПАЗНАЧЕНИЯ ТипЗначени.
ЗНАЧЕНИЯХАРАКТЕРИСТИК РегистрСведений.ДополнительныеХарактеристики
ПОЛЕОБЪЕКТА Объект
ПОЛЕВИДА ВидХарактеристики
П&ЛЕЗНАЧЕНИЯ ЗначениеХарактеристики}
Для описания запроса при описании списка характеристик в конструкторе
запроса следует указать в качестве источника видов Запрос и, нажав кнопку
выбора в поле Виды характеристик, создать запрос (рис. 3.20, 3.21).
Таблицы..Группиров, УоШия ' Дополнит... , Объедите.,.^ . Порядок { Итоги
В ® С # X I 4Й % О
г Пост; оиге.^ г •„ Пакет зап.
База данных
Ф @з Константы
® ЗВ Справочники
$ !'Д Досуг. енты
8» Перечисления
г) й ПланыВидовХарактеристик
РегистрыСведений
Й РегистрыНакопления
Таблицы
Поля
О ВидьКарактеристик
ОН)
Ссылка
ВерсияДанных
ПометкаУдаления
Предопределенный
Кед
Наименование
«1
“ ВидьКарактеристикСсылка \
ВидьКарактеристик.Наименование |
ВцдьКарактеристик.ТипЗначения ]
1
»
I
•» Представление
'< | Далее > , } } ОК
। Запрос |
Отмена | [ Справка
I
Рис. 3.20. Создание полей запроса для получения видов характеристик
Рис. 3.21. Создание условий запроса для получения видов характеристик
Аналогичным образом можно указать запрос и в качестве источника значений
характеристик.
В результате закладка Характеристики в конструкторе запроса примет вид
(рис. 3.22).
Коне ктс и* □ X
Таблицы иголя Группировка Условия Дополнительно Обьединения/Псе . Порядок Компоновкаданн,.. Характеристики ] Пакет запросов I
Г~3апрос | _ < Назад . | Далее > 3 ОК Отмена 1 ; Справка
Рис. 3.22. Описание характеристик в конструкторе запроса
Итак, мы рассмотрели возможность описания характеристик в каждом
конкретном отчете. Безусловно, этот вариант менее универсален, чем
описание характеристик в метаданных, рассмотренное ниже. Но этот
вариант может понадобиться для специфического применения характеристик
в конкретном отчете. При этом если в запросе схемы компоновки данных
указано описание характеристик для некоторого типа, то для полей запроса
с таким типом используются эти характеристики, а характеристики,
описанные в метаданных, не используются. Если для некоторого типа
характеристики в запросе не указаны, то для этого типа используются харак-
теристики, описанные в метаданных.
Описание характеристик в метаданных
Рассмотрим вариант, когда характеристики объекта конфигурации описыва-
ются в свойстве объекта Характеристики (более подробно этот пример
рассматривается во второй главе на стр. 126). Этот вариант является наиболее
универсальным, поскольку если характеристики описаны в самом объекте
конфигурации, то все отчеты и динамические списки, основанные на системе
компоновки данных, могут использовать эти характеристики. Таким образом,
описав один раз связь между объектом конфигурации и его характеристиками,
разработчику больше не придется в каждом отчете, использующем характери-
стики объекта, указывать, где и каким образом хранятся его характеристики.
Диалог для описания характеристик можно вызвать, нажав кнопку Характе-
ристики на закладке Данные, в окне редактирования объекта конфигурации,
например, справочника Контрагенты (рис. 3.23). Команда Характеристики также
доступна в контекстном меню дерева объектов конфигурации и в палитре
свойств этих объектов.
В диалоге описания дополнительных характеристик объекта конфигурации
нужно указать, где хранятся виды характеристик и значения этих характери-
стик.
у
Длина кода
Основные
Поде "гемы
Ф мкниональные й ш™ 1
Иерархия
'" Владех&цы . .. . '.' •
и -Сл.-':--.' - ^ЧлВгЬт. -»«л Д' Д
» ► Данные
Длина наименования 25'
-Типкода———г-Основноепродстгвлет а——
О Число || О В виде кода
(•/Строка (I (•/ В виде наименования
Ц.1___________1I С.Л____________________
Н«,мерациа
ФлгМЬ
КомаОДЫ
Макеты
Вводна о.Лйван*»
Права
Обме. сданными
Прочее
сея
Ш*йзить>
Та&лйчн'ыел}асйм
® Ш ДополнительнагИнФормация
------^'^ОО^Шгат-т-яг гV.-ГХ‘
Стандартны реквизиты 'Г ^ракге^ч- ики I
- -—^-=. -..=...=. ^**Ч^»ййв5вЙиЬиИв^Й^^|Й|И1|И*М1М>»вЖ»1^1*^
□бщив реквизиты
Действия чк] ’ <Назао
Далёе> = .. [ . Закрыть । Сг, авка
Рис. 3.23. Вызов диалога описания характеристик справочника «Контрагенты»
В этом примере мы покажем другой способ хранения характеристик контра-
гентов. Здесь в качестве источника характеристик используется план видов
характеристик ВидыХарактеристик, а значения характеристик находятся
в табличной части ДополнительнаяИнформация справочника Контрагенты.
Данный способ хранения характеристик контрагентов описывается в свой-
стве Характеристики справочника Контрагенты (рис. 3.24).
в Ш1 Справочники
Тт Планы видов характеристик
Зий актеристи((
Реквизиты
Е? ГР, Табличные части
-' ДополнительнаяИнформация
Допо/игуельноеСвойство
। Значени^войств^
Лд№ш^мг«1ай1Йе -цаййк:
Ссылка
Зна чения^арактеристтс
Поле стбора водов ,, (начение отбора видов
111оле << ча
: Поле объекта Полевода \ | Поле зрения
| Справоч^нк.КонграгентыТабличнаяЧа^ь.ДополнигелэнаяИнФор|*|^ция
, Ссылка ' ДополнителэноеСвойство ; ЗначениеСвойства
— — ----——----~г~~ —'—~~—1
Отмена . ] Справка !
*
К
с
I
3
ж
и
»
ГУ '
Поле Ссылка плана видов характеристик ВидыХарактеристик используется в каче-
стве поля ключа характеристики. Поля Поле отбора видов и Значение отбора видов
используются в случае, когда источник видов характеристик хранит характе-
ристики разных объектов конфигурации, для отделения характеристик одного
объекта конфигурации от другого. В данном случае они не нужны, так как план
видов характеристик хранит характеристики только для контрагентов.
В качестве поля объекта указывается поле Ссылка табличной части
ДополнительнаяИнформация справочника Контрагенты; в качестве поля
вида - реквизит табличной части ДополнительноеСвойство (тип значения
ПланВидовХарактеристикСсылка. ВидыХарактеристик), в качестве
поля значения - реквизит табличной части ЗначениеСвойства (тип значения
Характеристика.ВидыХарактеристик). Таким образом, табличная часть
ДополнительнаяИнформация будет хранить значения характеристик номенкла-
туры так же, как и регистр сведений.
В общем случае характеристики объекта конфигурации могут находиться
в разных местах, по-разному храниться, и все это можно описать в диалоге
описания характеристик объекта конфигурации, в одном месте, с помощью
нескольких записей.
Использование характеристик в режиме «1С:Предприятие»
На основе видов характеристик система автоматически создаст для объекта
Контрагент два дополнительных поля - Регион и Категория. Протестируем
использование этих характеристик в режиме 1 С:Предприятие на примере
отчетов Отчет по продажам и Продажи контрагентам.
В режиме 1 С: Предприятие выберем Основной вариант отчета Отчет по продажам
и выполним команду Все действия ► Изменить вариант... На закладке Поля
характеристики отображаются в списке реквизитов поля Контрагент и ничем
не отличаются от обычных реквизитов. Управлять их выводом можно на
закладке Дополнительные/Другие настройки (стр. 426). Перенесем в список
полей поле Контрагент.Регион (рис. 3.25).
Рис. 3.25. Список доступных полей в отчете
с использованием характеристик контрагентов
Теперь используем в отборе характеристику Категория. На закладке Отбор
создадим новый элемент отбора по полю Контрагент. Категория со значением
Постоянный партнер (рис. 3.26).
Рис. 3.26. Использование характеристик в отборе
Нажмем Завершить редактирование и сформируем отчет (рис. 3.27).
Рис. 3.27. Результат отчета с использованием характеристик контрагентов
В результате характеристика контрагента Регион теперь отражается рядом
с его наименованием, и в отчете присутствуют данные только по тем контр-
агентам, для которых значение характеристики Категория (в табличной части
ДополнительнаяИнформация справочника Контрагенты) соответствует задан-
ному отбору (рис. 3.28).
Так происходит потому, что в свойстве Характеристики справочника
Контрагенты описан именно такой способ хранения значений характеристик.
- ОСО “Атлант" {Кйнтрагентб|) ПС:Предпри«гие)
ООО “Атлант” (Контр...
Перейти .
Дополнительные характе.
»|
У|
ООО "Атлант” (Контрагенты)
Записать и закрыть Все действия ~ । ф
Код: , 0000СЮ005 “
Наименование:{МЙЖЖКИ'|М________________________________
Родитель: [Поставщики . . Ч
@ Добавить ! ® X | # Все действия’
Рис. 3.28. Значения характеристик контрагентов
в табличной части справочника «Контрагенты»
Таким образом, мы протестировали использование характеристик контра-
гентов в отчете Отчет по продажам, для которого характеристики описывались
не в самом отчете, а брались из описания характеристик в метаданных для
справочника Контрагенты.
Теперь откроем Основной вариант отчета Продажи контрагентам, в котором
характеристики контрагентов описывались в запросе схемы компоновки
данных, и выполним команду Все действия ► Изменить вариант... На закладке
Поля мы также увидим две дополнительные характеристики контрагентов -
Регион и Категория. Перенесем в список полей поле Контрагент.Регион.
Нажмем Завершить редактирование и сформируем отчет (рис. 3.29).
;- „П, одывд контрагентам Демонсграционна,.; (1С:Предп| иягие.
Рис. 3.29. Результат отчета с использованием характеристик контрагентов
Мы видим, что характеристика контрагента Регион теперь отражается рядом
с его наименованием. Заметьте, что характеристика отражается не для всех
контрагентов, а только для тех, у кого есть соответствующая запись в реги-
стре сведений Дополнительные характеристики. Так происходит потому, что
в запросе (см. рис. 3.19) мы описали именно такой способ хранения значений
характеристик (рис. 3.30).
Дополни тельные характеристики
^Создать } & X ' Найти... ; В се действия ~
Объект 1 Виа характеристики 1’*— — - Значение характеристики
ДИтУ Категория... Псст^тм^ партнер
2 ООО "Аетомагика" Регион Королев _>
Й€ ООО "Система1 ~ Категория Зарубежный партнер
ООО "Система" ' Регион Москва
-к’ ООО "Стиль" Категория Постоянный партнер 1
ООО "Стиль" Регион 1 Санкт-Петербург
1 . .
Рис. 3.30. Значения характеристик контрагентов в регистре сведений
«Дополнительные характеристики»
Использование категорий
При помощи механизма характеристик системы компоновки данных можно
описывать и категории-характеристики, не имеющие значений, а имеющие
лишь признак наличия/отсутствия.
Для примера добавим в план видов характеристик категорию Предоплата
и выведем ее в отчете Цены комплектующих от поставщиков.
Откроем схему компоновки данных отчета, выделим набор данных Постав-
щики и в конструкторе запроса опишем характеристики (рис. 3.31).
Рис. 3.31. Описание характеристик в тексте запроса
В результате будет создан следующий запрос (листинг 3.3).
Листинг 3.3. Получение категорий контрагентов для набора данных «Поставщики»
ВЫБРАТЬ
ПриходнаяНакладная.Ссылка,
ПриходнаяНакладная.Номер,
ПриходнаяНакладная.Дата,
ПриходнаяНакладная.Контрагент
ИЗ
Документ.ПриходнаяНакладная КАК ПриходнаяНакладная
{ХАРАКТЕРИСТИКИ
ТИП(Справочник Контрагенты)
ВИДЫХАРАКТЕРИСТИК ПланВидовХарактеристикБидыХарактеристик
ПОЛЕКЛЮЧА Ссылка
ПОЛЕИМЕНИ Наименовеяие
ЗНАЧЕНИЯХАРАКТЕРИСТИК РегистрСведений.ДополнительныеХг >актериспф1
ПСЛЮБЪЕКТА Объект
ПОЛЕВИДА ВидХарактеристики}
Как видно, в описании характеристик не указано поле ПОЛЕТИПАЗНАЧЕНИЯ,
а в таком случае считается, что характеристика имеет логический тип. Кроме
того, не указано поле ПОЛЕЗНАЧЕНИЯ, из которого будет получаться значение
характеристики. В таком случае считается, что значение характеристики -
Истина, если характеристика для объекта присутствует в таблице значений
характеристик, и Ложь в противном случае.
Запустим «1С:Предприятие». В план видов характеристик Виды характеристик
добавим категорию Предоплата (рис. 3.32).
Виды характеристик
| (ОСоздату^ 5с{| Найти... ] Все действия » [
Рис. 3.32. Создание новой характеристики в плане видов характеристик
В регистр сведений Дополнительные характеристики добавим эту характери-
стику для контрагента ООО «Атлант» (рис. 3.33).
Догюлнительные харг»<теристики
^Создать X * <1 Нейти... I
Все действия »| .у
; Объект Вад характеристики !“=“ |<ент характеристики Л
; «эй ООО "Автоматика" _ Категория > Постоянный партнер
; йй ООО ‘'Автоматика" Регион \ Королев
ЙИ ООО "Система" Категория ' Зарубежный партнер
' ООО. '.Система' Регион. Москва
! » ’^тлэнт" Предоплата □
1 ООО "Стиль" ! Категория < Постоянный партнер
; йй ООО "Стиль" 1 Регион Санкт-Петербург
у
Рис. 3.33. Значения характеристик в регистре сведений
Откроем Основной вариант отчета Цены комплектующих от поставщиков
и выполним команду Все действия ► Изменить вариант... На закладке Поля,
в списке реквизитов поля Контрагент появилась категория Предоплата. Пере-
несем ее в список полей отчета (рис. 3.34).
Прль.^.?, , Групл,.,.... .Д^.Отёрр ?~$^;Еорги,. ; 1 Уела....?, .Дсиди-уд
V! Т екущий элемент имеет собственные настройки выбранных полей (для детальной настройки элемента)
Выбрать
Все действия» ^Добавить новое поле | Сгрупгаровать поля ! X I Ф Ф I Все действия»
110Г"|П°ые поля
; я» Дата
© <™ Контрагент
« Версия данных
® ЁЙ Дополнительная инфор...
•=• Категория
=» Код
«» Наименование
>
«=» Пометка удаления
|Л&ле
; © Выбранные поля
» Номенклатура
«» Контрагент
®» Дата
«=* Номер
с» Цена
Кои аге л .П; едолл"-
Предоплате
« Предопределенный________{*)
Рис. 3.34. Окно настроек варианта отчета
На закладке Дополнительные/Другие настройки зададим значение параметра
Расположение реквизитов - Отдельно, чтобы категория контрагента выводилась
в отдельной колонке, и Тип заголовка полей - Краткий (рис. 3.35).
ОЛвлк.'ЖГкт--;.. / Д Лдая -ййрр, .)Уело...Л ГйВ Допо- 1.
! < Текущий элемент имеет собегвентые дополнительные настройки
Параметр
। ! Макет оформления_______
! ' I—! Расположение итогов
1,0 ; Расположение полей группировок
Значение
Основной
Авто
. Вместе
Располол ение реквизитов
Расположение ресурсов Горизонтально
Расположение общих итогов по горизон... Авто
Расположение общих итогов по вертите/ы Авто
Т кт заголовка полей
Тип диаграммы
Все действия»
Краткий
Гистограмма объемная
Нажмем Завершить редактирование и выполним отчет. Мы видим, что значение
категории Предоплата интерпретируется как Да или Нет в зависимости от ее
наличия в регистре сведений Дополнительные характеристики для конкретного
контрагента (рис. 3.36).
йёЧЫкааде^й^д.ДТС'1р15л- стне) 2 Й*
Цены комплектующих от поставщиков
Вариант отчета: ^Основной_____ _
Зи» г '{Кфмировать :, Настройка
Ноли нкпатур1
; Контрагент . <
А Веб к. мере
РОС “Стандарт"
кий Д'^СК
ООО "Атлант"'
Матер «ская плата
Дата
11.01.201214:20:00
'1
Все действия » • $
Номер ’ Цена - -. |ГЩдрйлйВ
— т< гигиен ~<|гг |р—т*-«=«с- г^-; г- «I >'1 Ч1Ч* .,и
>000000005
I.
1 000,00 'Нет
05.12 2011 12:22:39
000003001
ЗО00.0( Д;
к
4
Г,.
_ООО " \тлянт"
; микрофон' ’т'1 11
{ ООО "Стандарт1
Монитор ССО
Ь’—-* — -
Д5.12.2011 15:53:17
>000000002
2000,00 ЦТ
|11 01.2012 1 4:20:00
000000005
700,0!' Нс
1амять. _ -А А :
ООО "Атлант" “ 1о5.12.2011 15:53:17
ж»
000с30002
1 200,00
Рис. 3.36. Результат отчета с использованием категории контрагента
Теперь используем в отборе характеристику Предоплата. На закладке Отбор
создадим новый элемент отбора по полю Предоплата со значением Нет
(рис. 3.37).
-,Й 5рупгь йл (ГВГотбор и -И!до-л.5 ч
С
V! Текущий элемент имеет собственней отбор (для Фильтрации записей, выводимых в элементе)
Выбрать
Все действия» ^Добавить новый элемент ; Сгруппировать условия ; X ! В се действия»
1оступнь|& поля
са Дата
6- Контрагент
>=» Версия данных
Ё0 Дополнительная инфор...
™ Категория
ка КОД
0111 Наименование
®» Пометка удаления
Предопределенный
Рис. 3.37. Настройка отбора с использованием категории контрагента
В результате в отчет выводятся только те контрагенты, у которых в регистре
сведений Дополнительные характеристики отсутствуют записи с категорией
Предоплата (рис. 3.38).
И
*
4
*
Цены комплектую... (1Е:Пре шрифме) 4' ; )М
>'
Цены комплектующих от поставщиков
Вариант отчета: (Основной
, Сформировать । а§ Настройка..
"] Г Выбрать вариант...
Все действия " I ?
1~ ~~~ ~
(_ Отбор: | Контрагент. Предоплата Равно "Нет" !
г
1.
Номенклатура
'Контрагент______
Веб-камера
{ ООО "Стандарт1
'Микрофон
Г ООО "Стандарт1
Монитор ЬСО
ООО “Стандарт1
Дата
«Л. -ЯШ1
йна
11.01.2012 14:20:00
11.01.2012 14:20:00
•000000005
700,00 Не(
11.01.201211:10:00
.«Щ,*; >АмД>-.и.,|дД»
(000000005Г 1 000,00 :Нет
Предоплата
]0ОО0боб04 ““ Т* Ю 000,00 (Нет
Рис. 3.38. Результат отчета с использованием категории контрагента
Иерархия
Система компоновки данных позволяет выводить в отчет иерархические
данные. Иерархия может строиться:
для групп иерархического справочника (рис. 3.39):
' ..
!!
Продажи контрагентам
I- Выбрал» варитн'
Вариант отчета: {Иерархия
Контрагент
Сфо мировать * Настройка... Все действия
Рис. 3.39. Вывод группировки «Контрагент» с иерархией справочника «Контрагенты»
Покупатели
ООО "Автоматика
ООО "Система"
ООО "Стиль"
Поставщики
ООО "Атлант"
ООО11 ландар’
Итого
(Стоимость
Оборот
63 000,00
24 500,00
"10 000,00
28 500,00
13 500 ОС
9 000,00
4 500,00
76 500.00
для произвольного иерархического набора данных (рис. 3.40):
Поступление товаров
..Выбрать вариа^.,.. ]
Сдоим м-ов -ь Л Настройка..
Все действия
М.нитс» 1СР
Память
Вариант отчета: I Иерархия
7 (Д-С
10,000
10,0001
Веб .гамсра
Мик «.фон
ЙКЛВвИ
Жэсткий диск
Материн, я I,пата
ЗДОР
5,000
4,000
5,000
Рис. 3.40. Вывод группировки «Номенклатура» с собственной иерархией
для детальных записей иерархического справочника (рис. 3.41):
< •-» л ' < НкЯВМкгЖТД * •- "Ч « '' ед V 'К' »> / Г-
I Список номенклатуры И и
| Вариант отчета: (Основной } (...Выбра пь верна!-’’.
к
1 Сформиро&ЭТ1 Настройка,.. Все действия » ; 1
1 Кед .. | Наименование ' в
1 9 000000001 | Комплектую ш>ие
1 1 000000003 Материнская плата
И I 000000004 (Память
000000005 ^Жесткий диск 1 1
1 . 000000012 'Монитор 6С0
1 000000026 веб-кам ®а 1
я 1 ЬЙ 4 000000028 "'икрофон
К Я ЧН 0000б0б02 (Услуги
1 1 000000006 Сборка компьютера к I 1
000000007 Диагностика компьютера
1 000000014 ^Ремонт компьютера 1
1 66о6оСЮ1 5 (Сопутствующие услуги 1
1 000000016 Восстановление данньг
е 000000008 (Собранные компьютеры
I ( 000000009 Компьютер для офиса 1 1
1 1 000000010 ' Компьютер для дома 1
1 ' * 000000013 (Компьютер игровой
1 й 000000018 ,Моь иерархия п
1 т 000000022 (Мониторы
I 1 000000023 'ОЗУ
1 1 000000024 (Основные детали
000000025 (Товары для сборки 1
1 г 600000027 (Прочие детали
1 1 1 ж- в
.-1.₽с.. -5, 1 1
Рис. 3.41. Вывод группировки «Детальные записи»
иерархического справочника «Номенклатура»
Иерархические группировки
Для примера рассмотрим отчет Продажи контрагентам, который выводит
информацию об объемах продаж по контрагентам. Справочник Контрагенты
имеет следующую иерархическую структуру (рис. 3.42).
।
!
I
1
1
I
?
I
?
I
I
I
Контрагенты
Создать | Найти...
Все действия * I
I
I
I
I
(
I
I
I
! Наименование
ьД Контрагенты
Г --Л*г тг^э-
$ 'дЯг
ви ООО "Автоматика"
саз ООО "Система"
ООО "Стиль"
| в Поставщики
! в» ООО "Атлант"
I «• ООО "Стандарт"
^&!.Код
1
0000№П2
' 000000001 ]
,000000004 |
; 000000007 1
_ ' 000000003 1
^000000005 I
1000000006 [
(
I
Рис. 3.42. Структура справочника «Контрагенты»
Для начала посмотрим, как будет выглядеть отчет без иерархии. Откроем
отчет в режиме 1 С:Предприятие. Создадим новый вариант отчета Иерархия,
содержащий группировку по полю Контрагент с типом иерархии Без иерархии
и поле отчета СтоимостьОборот (рис. 3.43).
"Вариант "Иерархия'отчет ‘Продажи «рнтрагенгам"- Демоне ..рационная конфигчпаи, я "Система (ЮПредпоиягие) _ X
I Вариант "Иерархия" отчета "Продажи контрагентам"
Все действия
Стру^ гура отчета
Контрагент
?. Пол
В се действия
Все действия
Л ! л
Доп
। Выбрать
Доступные полл
Кдарагент
I & СтоимостьОборот
Новое поле | Новое авто поле ; X ' 1йГ
рПсле 'Контрагент Тип Груш ИООЕячИ
Су > ***
I 1
Иерархия Только иерархия
г г 1 1 г
Завершить грование ' Отмена I Все действия ’ > Л-
Добавить ’ I | X < #
Г
Выполним отчет. Отчет примет вид (рис. 3.44).
Продажи контрагентам
Вариант отчета: [Иерархия | Вы?
)ОС "Автоматика-
ОО "Атлант"'
;ООО' ема
[ООО .ащарт"
"Стиль" '
Итхна
। Еформироват ь I Все действия -1 Д
Контрагки 1.ТОИМОСТ |
[ Оборот
Рис. 3.44. Результат отчета
^4 51? I,ЦО
~ 9 000,66
' 10'666,66
~ 4 50б~00
2856с Д 6
765Й&.00
Существуют следующие типы иерархии для группировок отчета:
Без иерархии - в группировке выводятся только неиерархические записи;
Иерархия - в группировке выводятся как неиерархические, так и иерархи-
ческие записи;
Только иерархия - в группировке выводятся только иерархические (роди-
тельские) записи.
Изменим тип иерархии. Изменим вариант отчета и на закладке Группируемые
поля для группировки Контрагент укажем Тип группировки - Иерархия (рис. 3.45).
г и гИгС| ; Д] Сорт . Усл... Дрп„
Выбрать
Все действия^ Новое поле < Новое авто поле | X I Ф
Конт агент.
* ''сстцпныё поля
Л'" "'.........
I ваз
I “ _
। ® $ СтоимостьОборот
Пси
Кст-лрагеьт
Все действия’
Рис. 3.45. Установка типа иерархии группировки
Выполним отчет. Теперь результат отчета будет дополнен иерархическими
(родительскими) записями для выводимых в отчет контрагентов (рис. 3.46).
Изменим тип иерархии. Изменим вариант отчета и на закладке Группируемые
поля для группировки Контрагент укажем Тип группировки - Только иерархия
(рис. 3.47).
-1та . ЙЭкСТ йй Груп... I / гМбгбф" Сер?.*. ; « Аш»-;у .Щ:Дрп^.
Рис. 3.47. Установка типа иерархии группировки
Выполним отчет. В отчет будут выведены только группы контрагентов, то
есть записи, имеющие иерархию (рис. 3.48).
Рис. 3.48. Результат отчета
Отбор «В группе»
Система компоновки данных позволяет отбирать записи, которые находятся
в иерархии некоторого элемента. Для этого в системе предусмотрен вид
сравнения В группе (во встроенном языке данный вид сравнения называется
ВИерархии). При установке данного отбора в результат будут выводиться
записи, имеющие значение, равное указанному, и все записи, располагаю-
щиеся ниже по иерархии.
Изменим вариант отчета и на закладке Отбор установим отбор <Контр-
агент> <В группе> <Покупатели> (рис. 3.49).
Установим для группировки Контрагент тип иерархии — Иерархия (см.
рис. 3.45). Выполним отчет. В результат будут выводиться только записи
в иерархии элемента Покупатели (рис. 3.50).
ГЖ- 4$| Пол.. 3 Груги> . .+ЦПоля,. Отбор") -г^Хорг^ 1. Усл« $ |,4^ Дон... ,г
|1'<; Текущий элемент имеет собственный отбор (для фильтрации записей, выводимых в элементе)
Выбрать Все действия» Добавить новый элемент • Сгруппировать условия | X { Все действия»
I 1 I Доступные поля (]сле 1 Видсравнения качение 1 —л* -Эк—, -1- _*=_^ - .. .. , = 1 ' С Отбор
мамв ф хзя I
9'1 ю» Номенклатура К игра, знт •• Покупатели
! СтоимостьОборот @ С Параметры Равно Не равно В списке В группе из списка
1 Нев списке Не в группе из сп... Нев группе Заполнено Не заполнено
1 г 1 1-
Рис. 3.49. Установка отбора
I Продажи контрагентам
Вариант отчета; (Иерархия_ Выб _ Варна |
СФодои оватъ « Настройка...
Все действия
Контрагент
Итоге
Стоимость
Оборот , ,
63 01401,
Отбор: Контрагент В группе1 Покупатели'
]пкупатели •
I 000 Автоматика"
ООО "Система"
ООО "Стиль"
24 500,00
10000,00
~ 21 50П4
63 000.00
Рис. 3.50. Результат отчета
Описание иерархических наборов данных
Для иерархических справочников система компоновки данных автоматически
создает специальные наборы данных, при помощи которых и достраивается
иерархия. Однако встречаются ситуации, когда требуется построить иерархию
самостоятельно. Для примера рассмотрим отчет Поступление товаров, который
отражает поступление товаров по складам с иерархией номенклатуры,
построенной не по группам справочника Номенклатура (полю Родитель),
а по полю Мой родитель.
Для хранения списка элементов собственной иерархии в справочнике Номен-
клатура создана группа Моя иерархия, на которую ссылаются элементы других
групп. Например, в группе Моя иерархия создан элемент Мониторы, для кото-
рого поле Мой родитель задано как Товары для сборки. Этот элемент группы
Моя иерархия является корневым. Затем в группе Комплектующие для элемента
Монитор 1_СЭ поле Мой родитель задано как Мониторы. Таким образом, наша
иерархия будет двухуровневой (рис. 3.51, 3.52).
Номенклатура
^Создать | 0^ ' ^Найти... I | Печать ( Отчет
I
Все действия ▼ | ф
Наименован <е *
В ' ' Моя иерархия
ОЗУ
Основные детали
Прочие детали
к Кед
00000001В
Г 000000622
! 000000023
000000024
000000027
000000025
Рис. 3.51. Элементы группы «Моя иерархия»
< Номенклатура
Все действия *'[
| |. Наименование
/ 1л-— . ..-ь
| Е1 ЬЗ Комплектующие
Кед
I
йЗ&
Веб-камера
Жесткий диск
Материнская плата
Микрофон
] 000000001 I
] 000000026 |
' 000000005 |
' 000000003 |
! 000000028
е?
“ Память
Рис. 3.52. Элементы группы «Комплектующие»
V «612
000000004
5:
В схеме компоновки данных отчета Поступление товаров создан набор данных
Приход, получающий данные о поступлении товаров при помощи запроса
(листинг 3.4).
Листинг 3.4. Текст запроса
ВЫБРАТЬ
ОстаткиНоменкла^урыОбороты.КопичествоПрихог КАК Приход
I РегистрНакогшения-ОсгаткиНоменклатуры Обороты КАК Оста^киНоменкла^рыОбороты
Чтобы выполнить иерархическую группировку, процессору компоновки
данных требуется информация об источнике данных для построения иерархии.
Для этого в схеме компоновки данных создан набор данных Иерархия, содер-
жащий информацию о текущем элементе справочника Номенклатура и его
родителе (листинг 3.5).
Листинг 3.5. Текст запроса
ВЫБРАТЬ
Номенклатур? Ссылка Высылка)
Для того чтобы данный набор данных получал по иерархии всех родителей,
должна быть описана связь набора к самому себе. В конструкторе схемы
компоновки данных это делается на закладке Связи наборов данных. В каче-
стве выражения источника указывается поле МойРодитель, а в качестве
выражения приемника - поле Номенклатура. Таким образом, из каждой записи
набора данных будет получено значение поля МойРодитель и будет осущест-
влен поиск полученного значения в поле Номенклатура в этом же наборе
данных, и система рекурсивно получит все записи по иерархии. Так как
в запросе записи получаются только для номенклатуры, переданной в пара-
метре Ссылка, то в параметре связи (поле Параметр) указывается, что следует
использовать этот параметр, и так как параметр может принимать список
значений, устанавливается соответствующий флажок в поле Список параме-
тров. В параметр Ссылка будет помещено значение связи источника.
Также задается связь между наборами данных Приход и Иерархия по полю
Номенклатура (рис. 3.53).
юрыданных Связи наборов дан... |9 Вычнсляемыеполя
=д -К»4 I—>2-К.мЙ> —.“-5 _.~А 3 ’Лч! '--«-Л.--.-..-1
г ' $ар8мё?рвг: I- Пакет*. ' гкн темные'зяэ ы <{ На тройки
I---------------Г-------------—I----------------—~ —у~~—— г—~—-— -------------------------------————:
I .сточник-связи При*=м** 4 Вьуау'-ение источник дВь^ийену' приёмник (.Параметр Список пераметррЁи Условие св.
Т“----—'—~г-—)
.( Начальное.. ’ О.„;|
Пр»мх<ж1
! Иерархия
I Иерархия
' Иерархия
Номенклатура
МойРодитель
! Номенклатура
4 - - ~
\ Номенклатура
Ссылка
Ссылка
Рис. 3.53. Установка связей наборов данных для построения иерархии
ВНИМАНИЕ
В иерархическом наборе данных поле, с которым осуществляется связь
основного набора, должно называться так же, как и в основном наборе.
Так, в приведенном выше примере в иерархическом наборе данных свя-
зуемое поле должно иметь имя Номенклатура.
СОВЕТ
Поскольку поля иерархического набора данных нужны только для построе-
ния иерархии, имеет смысл скрыть их от пользователя. Для этого следует
отключить у этих полей доступность настройки. Делается это на закладке
Наборы данных конструктора схемы компоновки данных (рис. 3.54).
ртч^Поёц^енмеТрнаров: ...... -л^ &./ЕЗ.Х
Наборы данных Связи маЙЬрой дйн. Выч><;л^1ЬЙ<тда...-| ^..Ресурсы ] | .Параметры :1 Макеты 4 < Вхвдженные схемы Н Настррйки (
Поля:
| Выражени... {.Проверка иер-эр фи
; Поле
। Ограничение поля | Роль
Путь.
Иерархия
|П...; У... ,Г... - У...;
. | Ограничение рек..< I
П. У :г„. У
(Выражения ; Набор данных
(упорядочи,,. Гг,
’ (Параметр
МойРодитель
7-ЦГ---—
Р Мойродитель
I | Автозаголоеок
Т
Конструктор запроса...
’1
Автозаполнение @
Рис. 3.54. Установка доступности полей
Наборы данных ।
Приход [-
! .4
=®; Номенклатура , Номенклатура
О Номенклатура
Запрос:
ВЫБРАТЬ
Номенклатура.Ссылка КАК Номенклатура,
Номенклатура.МойРодитель
Справочник.Номенклатура КАК Номенклатура
На закладке Настройки создан вариант отчета Иерархия, содержащий группи-
ровку по полю Номенклатура с типом Иерархия, поле Приход и оформленный
макетом оформления Радуга (рис. 3.55).
Набери даннь."
Вычисляемы' гк я
Ресурса Параметр • Макеты К Вжшнныёехемы > Настройки ] I
[ Имя варианта 'Представле.. । О 01 Отчет
I Основной : Основной 11 й'!133
[оменклапюзМер.
| Иерархия
14
I Лоле
И
{ Настройки 0
I •“
I ен ..т' г --
{ Парам) •рь
Выбрс
Дос упные поля
«» Номенклатура
в» Регистратор,
®» Склад
Я»
1
ЕЭ
Припаи
«)
СистемныеПоля
ПараметрыДанных
:. Тип групп' совки
Номенклатура
« «м
ОК Отмена 11. Справка |
Поле
' @ Выбранные по ,я
.4
Другие нас..
4»
I I
&
Поля груп.^ ьки
:1 • 1
1
*
<
Рис. 3.55. Настройка иерархической группировки
Выполним вариант отчета Иерархия. Результат отчета с иерархической груп-
пировкой примет вид (рис. 3.56).
Поступление товаров
Вариант отчета:
] I Выс, в.г> вариант..^ ] ।
{Идрархи
| Сформировать' | Настройка... Все действия ” 5
Рис. 3.56. Результат отчета
I
Набор данных для проверки иерархии
В схеме компоновки данных можно также определить и набор данных, при
помощи которого будет осуществляться проверка иерархии. Так, для отчета
Поступление товаров можно определить набор данных, при помощи которого
пользователь сможет использовать иерархические виды сравнения с элемен-
тами построенной иерархии. Функционально это аналог отбора с видом
сравнения <В группе> для обычного иерархического справочника.
В предыдущем примере мы вывели в отчет Поступление товаров иерархиче-
скую группировку Номенклатура. При этом иерархия строилась не по группам
справочника Номенклатура (полю Родитель), а произвольным образом -
по полю справочника Мой родитель.
Запустим отчет в режиме 1 С: Предприятие. Изменим вариант отчета Иерархия
и на закладке Отбор установим отбор <Номенклатура> <В группе>
<Комплектующие> (рис. 3.57).
Пара.,. , >. Польшу 1^|. Групп,. ;рВ-Поля Н Отбор : Сортир '^сяр.„ Доггс^
Текущий элемент имеет собственный отбор (для фильтраци,. записей, выводимых в элементе)
Выбрать Все действия ▼ Добавить новыйэлемент { Сгруппировать условия { XВсе действия »
‘.Доступные поля
!оменк!
। «и» Приход
| ® •» Регистратор
| Л ш Склад
{ ® & Параметры
Рис. 3.57. Установка отбора
В результате мы получим тот же отчет, что и раньше (см. рис. 3.56). То есть
мы использовали отбор с видом сравнения <В группе> по стандартной
иерархии.
Допустим, мы хотим использовать в отборе иерархические виды срав-
нения с элементами нашей произвольной иерархии. Но в данном случае
отбор с видом сравнения <В группе> произвольной иерархии, например,
<Номенклатура> <В группе> «Основные детали> не даст никаких
данных. Для решения данной задачи нужно определить в схеме компоновки
данных набор данных для проверки иерархии.
Для этого в схеме компоновки данных отчета создадим набор данных Провер-
каИерархии (листинг 3.6).
Листинг 3.6. Текст запроса
ВЫБРАТЬ
Номенклатура.Ссылка КАК ПроверкаИерархииНсжнклатуры,
Номенклатура^ойРодитель КАК РодительИерархииНоменклатуры
ИЗ
Справочник-Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.МойРодитёль В(&Пр веркаИарархлигюме^клатуры)
На закладке Связи наборов данных для набора данных ПроверкаИерархии
определим связь самого к себе. В качестве выражения источника укажем
поле ПроверкаИерархииНоменклатуры, а в качестве выражения приемника -
поле РодительИерархииНоменклатуры. При этом укажем параметр связи
ПроверкаИерархииНоменклатуры с возможностью использования списка пара-
метров (рис. 3.58).
Рис. 3.58. Установка связей наборов данных для проверки иерархии
Теперь следует указать данный набор как набор данных проверки иерархии
поля Номенклатура набора данных Приход. Это делается на закладке Наборы
данных, в таблице полей набора данных (рис. 3.59).
Рис. 3.59. Установка набора данных и параметра для проверки иерархии
Запустим отчет в режиме 1С:Предприятие. Изменим вариант отчета Иерархия
и на закладке Отбор установим отбор <Номенклатура> <В группе>
«Основные детали> (рис. 3.60).
ПРИМЕЧАНИЕ
Поскольку элемент справочника Основные детали не является группой,
то, чтобы задать такое условие отбора, нужно сначала установить вид
сравнения Равно, выбрать нужный элемент собственной иерархии из группы
Моя иерархия, а затем изменить вид сравнения на В группе.
I Щрад» * Групп- | Отбор ; | ЖЗЙРЗМст'У ^рУслб.-- *.
г Текущий элемент имеет собственный отбор (для фильтрации записей. выводимых в элементе)
Выбрать Все действия »
Доощпныейюда
ПГ- ЗЙ1ИВ ™ ’
«= Приход
; а» Регистратор
! ® «» Склад
п <
I ?’ СЗ Параметры
^Добавить новый элемент ; Сгруппировать условия ! X ' "ф Все действия
! “ | Поле . Вид сравнения ; Значение
И—» г — .~ ....—„........ - ....... . . - .
; ; Отбор
Л*Д.., =* Номенклатура Вт— Основные детали
Рис. 3.60. Установка отбора
Выполним отчет. В результат будут выводиться только записи в иерархии
элемента Основные детали. При этом сохранится вся построенная нами иерар-
хическая структура отчета (рис. 3.61).
Вариант отчета: (Иерархия
Сформировать,I Настройка..
• Выбрать вариант.,. ]
Все действия - ; .<
Рис. 3.61. Результат отчета
ВНИМАНИЕ
После указания набора для проверки иерархии отбор по стандартной
иерархии с видом сравнения <в группе> работать не будет.
Таким образом, мы рассмотрели пример построения собственной иерархии
для любого, в том числе неиерархического объекта.
Иерархия детальных записей
Система компоновки данных позволяет выводить в отчет иерархические
детальные записи. Иерархия детальных записей нужна, чтобы вывести
в отчет группировку Детальные записи как бы с типом Иерархия. Например,
можно вывести в отчет иерархический справочник номенклатуры, используя
только его детальные записи.
При выводе в результат детальных записей система анализирует наличие
у выводимого набора данных связи к самому себе. Если такая связь обна-
ружена, система рекурсивно выполняет связь для получения вложенных
записей.
Для примера создадим схему компоновки данных ИерархияДетальныхЗа-
писей отчета Список номенклатуры. Создадим набор данных Номенклатура при
помощи запроса (листинг 3.7).
Листинг 3.7. Текст запроса
ВЫБРАТЬ
Номенклатура.Ссылка,
Номенклатура.Родитель,
Номенклатура-Код,
Номенклатура.Наименование,
Номенклатура.ЭтоГруппа
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.Родитель В(&Родители)
При помощи данного запроса будут получаться записи с указанным роди-
ол ем. Если параметр Родитель будет содержать пустую ссылку, то будут
получены записи, у которых родителей нет, то есть корневые записи.
Для обеспечения вывода иерархии на закладке Связи наборов данных
конструктора схемы компоновки данных опишем связь набора данных
Номенклатура к самому себе. Укажем в качестве выражения источника поле
Ссылка, а в качестве выражения приемника - поле Родитель. Таким образом,
для каждой записи набора данных в наборе данных будут искаться записи,
у которых поле Родитель имеет значение поля Ссылка родительской записи.
Так как запрос получает данные с фильтрацией по родителю, укажем пара-
метр связи Родители и, так как параметр может принимать список значений,
обозначим это в связи, установив соответствующий флажок в поле Список
параметров. В этот параметр будет помещено значение связи источника.
Справочник Номенклатура имеет иерархию групп и элементов. При этом
дочерние записи могут существовать только у групп. Поэтому для того, чтобы
система не осуществляла поиск дочерних записей не у групповых записей,
укажем в связи условие связи ЭтоГруппа. Далее нужно указать, с какого
значения система должна начинать получать иерархические записи. Дела-
ется это при помощи свойства связи Начальное значение связи. Нам нужно,
чтобы на первом уровне отчета выдавались записи, у которых родитель
отсутствует. Поэтому в качестве начального значения связи укажем выра-
жение Значение (Справочник.Номенклатура.ПустаяСсылка). Таким
образом, при первом получении данных из набора данных система будет
получать записи, у которых значение поля Родитель равно пустой ссылке, то
есть корневые записи (рис. 3.62).
Рис. 3.62. Связь иерархического набора данных к самому себе
На закладке Настройки добавим в структуру отчета группировку Детальные
записи и перенесем в список выбранных полей поля Код и Наименование
(рис. 3.63).
Рис. 3.63. Настройка структуры и полей отчета
Установим схему ИерархияДетальныхЗаписей в качестве основной схемы
компоновки данных для отчета Список номенклатуры (рис. 3.64).
гт
Рис. 3.64. Установка схемы компоновки данных для отчета
Выполним отчет. В результат выводятся детальные записи с иерархией
по полю Родитель (рис. 3.65).
Все действия т { ?
Список номенклатуры
Вариант отчета: [Основной_
Рис. 3.65. Результат отчета
Зй ! ЙЦ Настройка...
Кёд. г - ^Наименование
000000001 Комплектующее
000000003 Материнская плата
000000004 Память
000000005 Жесткий диск
000000012 Монитор кСО
000000026 |Веб-камера
000000028 {Микрофон
1^3 000000002 Услуги
5 000000006 Сборка компьютера
I } 000000007 Диагностика компьютера
1 000000014 {Ремонт компьютера
000000015 {Сопутствующее услуги
1 000000016 Восстановление данных
Ф 000000008 Собранные компьютеры
000000009 Компьютер для офиса
1 000000010 Компьютер для дома
1 000000013 Компьютер И1ровой
000000018 Моя иерархия
000000022 Мониторы
000000023 Н ОЗУ
000000024 Основные детали
000000025 Товары для сборки
000000027 Прочие детали
- ь. ►
Возможность вывода одного элемента
в нескольких родительских записях
При построении иерархии система компоновки данных позволяет выводить
один элемент в нескольких родительских записях.
Например, в конфигурации созданы два справочника: Филиалы и Сотрудники.
В справочнике Сотрудники имеются записи: «Алексеева Дарья», «Соколов
Андрей», «Ильин Сергей». В справочнике Филиалы имеются записи:
«Основной» и «Дополнительный».
В конфигурации создан регистр сведений МестаРаботы с измерениями
Филиал типа СправочникСсылка.Филиалы и Сотрудник типа Справоч-
никСсылка. Сотрудники. Регистр заполнен следующими записями
(рис. 3.66).
Все действия »;
Места работы
^Создать | X 1 Найти... :
Филиал отрданик
| Основной | Соколов Андрей
ёо* Основной Ильин Сергей
, йй Дополнительный Алексеева Дарья
Рис. 3.66. Регистр сведений «Места работы»
Создадим отчет Места работы. В схеме компоновки данных отчета создадим
набор данных Филиалы, получающий список филиалов при помощи запроса
(листинг 3.8).
Листинг 3.8. Текст запроса
ВЫБРАТЬ
Филиалы.Ссылка как Филиал
ИЗ
Справочке 1к.Филиалы как Филиалы
Для построения иерархии создадим набор данных Иерархия (листинг 3.9).
Листинг 3.9. Текст запроса
ВЫБРАТЬ
МестаРаботы.Филиал,
МестаРаботы.Сотрудник
ИЗ
РегистрСведений.МестаРаботы как МестаРаботы
ГДЕ
МестаРаботы.Филиал В(&Филиал |
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
Сотрудники.Ссыгжа,
ШИ
ИЗ
Справочник. Сотрудники КАК Сотрудники
ГДЕ
Сотрудники.Ссылка В(&Филиал)
Первое объединение запроса выбирает сотрудников, работающих в филиалах.
Вторая часть запроса выбирает сотрудников, так как иерархический набор
должен содержать и сами иерархические записи.
Опишем связи между наборами данных. В качестве источника связи укажем
набор данных Филиалы, в качестве приемника - набор данных Иерархия.
Выражение-источник - поле Филиал, выражение-приемник - поле Филиал.
Параметром связи укажем поле Филиал и укажем, что возможен список пара-
метров.
Опишем иерархическую связь набора к самому себе. В качестве выражения
источника укажем поле Сотрудник, а в качестве выражения приемника -
Филиал. Параметром связи укажем поле Филиал и укажем возможность списка
параметров (рис. 3.67).
Отчет ИвстаРаботы: Основп^яСкемаКомпоиоелмДанныи _ □ X '
Наборы данных Связи наборов д Вычисляемые п... Ресурсы Парамеры Макеты В тоженные схемы Кастро! ки
-----—.—
г — — —г- Источник связи Приемник связи 2 Выражение источник Г -7- . ....— . - — Выражение приемник 1 Па, эметр > Список па» аметров Условие связи Начг.льн 10..
| Филиалы Иерархия | Филиал > Филиал _ Филиал ‘Р^иал .1®.™ .....X. и у}
Иерархия ! Иерархия Сотрудник Филиал ! Й ! а
1 |1 .. .... ..... ..
Рис. 3.67. Установка связей наборов данных для построения иерархии
ВНИМАНИЕ
В иерархическом наборе данных поле, с которым осуществляется связь
основного набора, должно называться так же, как и в основном наборе. Так,
в приведенном выше примере, в иерархическом наборе данных связуемое
поле должно иметь имя Филиал.
На закладке Настройки в структуру отчета добавим группировку по полю
Филиал с типом Иерархия (рис. 3.68).
Рис. 3.68. Настройка иерархической группировки
Выполним отчет. В результате филиал Основной будет выведен для двух
сотрудников (рис. 3.69).
“ 1-- & «3 » "Р . * ’Й<М-
Места работы
_________________ . ______ . ___ V
Вариант отчета: {Основной ] } Выбрать.вариант... 3
а ___________
$ < рмгроьяп ! Все действия ;
Рис. 3.69. Результат отчета
Расшифровка
Система компоновки данных предоставляет возможность расшифровать
информацию, содержащуюся в отчете. То есть выполнив отчет и выделив
одну из его ячеек, пользователь может получить другой отчет, связанный со
значением, находящимся в этой ячейке. Например, более подробный отчет,
показывающий, из каких именно показателей получилась эта сумма в ячейке.
Или пользователь может открыть и посмотреть тот документ, который указан
в этой ячейке. Или отобрать, или отсортировать данные этого отчета по
значению в этой ячейке и т. п.
Например, получив отчет по продажам номенклатуры, можно двойным
щелчком мыши на поле ресурса вызвать диалог выбора поля для расшиф-
ровки (рис. 3.70).
ё Продажи номенклатуры
| Вариант отчета: Основной
| 1 Сформировать ) Настройка...
] I . выбрать вариант,,.. ;
Все действия » '
। @ Начало периода
. Й '^1 Конец । риода
IС I Мелкий заказ
? 01.12.2011
’ 15.12.2011
. Продажи товаров и услуг
Параметры: Начало периода: 01.12.2011
Конецпериода: 15.12.2011
Контрагент
Номенклатура
Период
Количет гео Стоимость }
I
ООО "Автоматика”
}_ Диагностика компьютера Г*"
5 декабря 2011 г.
I. Л1декабря 2011 г. |
Компьютер для дома _ __1.
11 декабря 2011 г. ___
ЭОО "Система"
Ь --- -.........
I Компьютер для офиса
9 декабря 2011 г._
ООО "Стиль"
Г Монитор ЬСО
! _ 6 декабря 2011
Итого
1 11500,00
] _ 1 500,00
1 000.00
ч-' -> . ? 1
онрграи . (ШОреиЛр^йе] /
Рис. 3.70. Диалог выбора поля для расшифровки
Далее выбрать поле, по которому нужно расшифровать данные. В результате
будет получен отчет, содержащий более конкретную информацию по выде-
ленной ячейке и расшифровывающий ее по выбранному полю. В данном
случае Период (рис. 3.71).
|Продажи товаров и услуг
; Параметры: Начало периода: 01.12.2011
Конецпериода: 15.12.2011
] Отбор: Контрагент Равно "ООО "Автоматика"" И
Номенклатура Равно “Диагностика компьютера"
* Печи с; _ _ {г хличе, га Стоимост ____________
декабря 2011 г. _ _ _______1 000,001
И1 декабря 2011 г. 1< 500,00'
[й®''. 7™ ’". • г— 1500,60
Рис. 3.71. Результат отчета с расшифровкой
Если дважды щелкнуть на поле не ресурса, то будет открыто значение поля
(рис. 3.72).
Продажи номенклатурь?
Вариант отчета: {Основной
Все действия -;
® Началопериода
Конец периода
р* зов п. Т Настройка..
01.12.2011
‘ 15.12.2011
Продажи товаров и услуг
Диа-мостика
000000007
Код:
Наименование:
Услуги
Родитель:
ВидНоменклатуры: {Услуги
Мой родитель:
11 500,00
1 500,00
1 000,00
Диагностика компьютера (Мом&жлатура)?
Зачнеать и а -лрыгь Все действия ’ | '
Цены
Контрагент
^Номенклатуре.
Параметры: Начало периода: 01.12.2011
Конец периода: 15.12.2011
\ Количество Стзимостн
„ {
'ООО "Автоматика" !
Г ДиатжйтикаксИэь^от^ра: |
т> декабря 2011 .
. 11 А?*абР.я2011 Диагйс1сп^компы^^
Компьютер для домр' ?-.- г- -чЬ
I 11 декабря 2011
[ООО "Система”
Компьютер для офн
9 декабря 2011 г.
ООО ''Стиль”
{ Монитор Сев
6 декабря 2011 г.
Итого '
Рис. 3.72. Открытие значения поля расшифровки
При нажатии правой кнопки мыши на поле отчета вызывается выпадающее
меню расшифровки, которое состоит из возможных действий над расшиф-
ровкой: Расшифровать, Открыть, Отфильтровать, Упорядочить, Сгруппировать,
Оформить (рис. 3.73).
Действие Расшифровать недоступно, если элемент расшифровки - Детальные
записи, кроме случая, когда он содержит поля-ресурсы.
Для реализации расшифровки отчетов, выполненных при помощи системы
компоновки данных, в платформе реализован объект ОбработкаРасшиф-
ровкиКомпоновкиДанных. Он позволяет сформировать настройки компоновки
данных, которые можно использовать для формирования отчета-
расшифровки.
При формировании табличного документа с помощью системы компоновки
данных в расшифровку ячейки помещаются специальные объекты типа Иден-
тификаторРасшифровки. При этом самих значений полей и полей группировок
в табличном документе нет. Получить значения полей можно из объекта
ДанныеРасшифровки, который был заполнен при выводе отчета.
Продажи номенклатуры
Вариант отчета: (Основной
Гр- Сформировать ' | Настройка...
@ Начало периода
Все действия” } '
Продажи товаров и услуг
о-
►
Копировать
Свойства
Открыть "Номенклатура = Компьютер для дома'
Отфильтровать
Упорядочить
Сгруппировать
Оформить
I Параметры: Начало периода: 01.12.2011
| Конец периода: 15.12.2011
01.12.2011
115.12.2011
►
Рис. 3.73. Вызов меню расшифровки
а
1 — =“??*** 3- >11 " Т ' ' * Контрагент . ‘'оличег-тво Стоимость
Номенклатура 5 1
Период I 1 —Л--- - 2 7 .. . -к--. ”
ООО "Автоматика" .1 - 11 500,00,
Диагностика компьютера Л , 2 1 500,00;
5 декабр ,2011 г. 1 000,00-
11 де<абря2011 г. Г 500,00'
1 .омпыотер для »«ж:. 1 1 10 000ДО
Расшифровать... о:
О!
с
Для того чтобы при выводе отчета объект ДанныеРасшифровки был заполнен,
следует его создать при компоновке макета и передать в процессор компо-
новки данных. Для этого при вызове метода Выполнить компоновщика макета
следует передать переменную, в которую требуется поместить созданный
объект.
Для того чтобы данные расшифровки заполнились при формировании
результата, необходимо передать объект ДанныеРасшифровки в метод Инициа-
лизировать процессора компоновки данных.
Если отчет формируется при помощи стандартной команды отчета Сформи-
ровать, то данные расшифровки помещаются в свойство расширения формы
отчета ДанныеРасшифровки.
Однако в отчетах, где используется собственная процедура программной
компоновки данных, нужно явно указывать объект Данные расшифровки
для заполнения информации о расшифровке при формировании отчета
(листинг 3.10).
Листинг 3.10. Фрагмент процедуры программного формирования отчета
Ком1гновщикМэкета - Н<
К
^акетКг-мпоновки ~ КомгзновщикМакетаБыпогн ть(СхемаКомпоновкиДа^.н д НйфрсйЖ
Дачь!еРасши(Ь'Х)Вки);
Переопределение расшифровки для поля
В некоторых ситуациях необходимо, чтобы при расшифровке, выполняемой
пользователем над одним полем, расшифровка выполнялась над другим
полем. Рассмотрим эту возможность на примере отчета Сборка системных
блоков (стр. 81). Допустим, необходимо, чтобы при расшифровке по полю
Номер открывалось значение документа-регистратора.
Для того чтобы переопределить расшифровку для поля Номер, для этого поля
необходимо создать макет (рис. 3.74).
Рис. 3.74. Создание макета поля «Номер»
В свойствах ячейки, выбранной для поля области, нужно указать заполнение
ячейки Параметр, имя параметра Номер и задать имя параметра расшифровки
Расшифровка (рис. 3.75).
Рис. 3.75. Свойства ячейки поля макета
В выражении параметра Расшифровка нужно задать выражение для поля
Регистратор и указать основное действие расшифровки — Открыть значение
(рис. 3.76).
Рис. 3.76. Свойства параметра расшифровки
Выполним отчет Сборка системных блоков. При двойном щелчке мыши на
детальных записях отчета в колонке Номер будет сразу же открыт документ-
регистратор Сборка компьютера с соответствующим номером (рис. 3.77).
Сборке компьютера СССССС001 егУ 11С:Предприятие) г ‘1
С' X'
Сборка компьютера 000000001 от Об. 12.2011 19:33:40
Провести м закрыть эд * Провести , Печать
Все действия- Ч
3
Сборка*- сити - »1 (1ГП^ .приятие)
Сборка системных блоков
Вариант отчета Основной
Смормнровж ь С2- Настройка.
г , Намло пнмма
& Конец периоаа
4 Сортировка
! 15.01 2
Дата. С
Сборка системных блоков!
'Параметры Начало периода: 01.12.2011
Конецпериода: 15.01.2012
000000001
Номер:
<0
Дата-
-.12.2011 1Э ЗЛЛМ
Склад: (Основной
Мастер: [Соколов Андрей
г “ -— Продукция. {Компьютер для офиса . ц
^Добавить ! X ! ♦ Все действия-
Н Номенклатур-. Количество Цена 'умма
0 Жесткий диск 1 00 3500Д 350000
2 Метергиская плата 1.00 2500.00 2 500.001
3 Память 1.00 1 500.00 1 500.00;
4 Сборка компьютера 1.00’ 1 000.00 1000.00;
Системный блок
Мастер
Количество Стоимость
Компьютер для офиса
Соколов Андрей
Компьютер для дома
Ильин Сергей
4.
[V
Компьютер игров ой
Соколов Аодэей________• _
I _______________________>
Итого
1
1
1
1
1
1
1
1
1
3
Номер
Расшифровать.
о 500.06 06.12.2011 |чбообЭД *]
Дата
8 50000
8 500,00
9 000,00
9 000 00
9 000.00-11 12.2011
10 500,00
10 500,00
1050 ,.00 11.01 201.
ЗВ >1 т
Открыт Регистратор ч! ком делера ।'<СГОП.т' от 6$ 12 2011,19.23 40“.
Отфильтровать
Упорядочить
Сгрупгмроветь
Оформить
копировать
Свойства
В
। в
1
Рис. 3.77. Результат отчета
При этом для всех полей отчета выполняются стандартные действия расшиф-
ровки. Двойным щелчком на поле ресурса вызывается диалог выбора поля для
расшифровки, двойным щелчком на поле не ресурса открывается значение
поля, а также при нажатии правой кнопки мыши вызывается выпадающее
меню расшифровки, которое состоит из возможных действий над расшиф-
ровкой: Расшифровать, Открыть, Отфильтровать, Упорядочить, Сгруппировать,
Оформить.
Программная обработка расшифровки
Однако разработчик может реализовать и свой, нестандартный, вариант
расшифровки. Рассмотрим этот вариант на примере отчета Сборка системных
блоков. В форме отчета создан обработчик события ОбработкаДопол-
нительнойРасшифровки для поля табличного документа Результат
(рис. 3.78).
Свойства: По *
г! !ГТ< X *
1
Заголовок
Вид [Поле табличного документа
ЛутьКДанным [Результат
ПоложениеЗаголовка Нет
Видимость Й
Пользовательская видимость Открыть
Доступность (*?
Т олькоПросмотр С
ПропускатьЛриВЕоде |Аето
АктивизироватьПоУмолчанию
► Использование:
► I Форм 1ьние
► Расположение:
а
События:
ПриИзменении
Выбор
ОбработкаРасшиФровки
----------------------------------'1......И . .........
^брабйткаДополнительнойРасшиФровки'|РезультатОбработкаДопоя-1итегънойРасшифровки ।
ПриИзмененииСодержимогоОбласти ~''
ПриДктивизацииОбласти
НачалоПеретаскивания
Рис. 3.78. Обработчик события «ОбработкаДополнительнойРасшифровки»
для поля «Результат»
В процедуре этого обработчика формируется контекстное меню расшиф-
ровки отчета и определяется поведение отчета при возникновении события
ОбработкаДополнительнойРасшифровки, когда пользователь нажатием
правой кнопки мыши на ячейке результата отчета вызывает меню расшиф-
ровки (листинг 3.11).
Листинг 3.11. Процедура обработчика события
«ОбработкаДополнительнойРасшифровки» для поля «Результат»
&НаКлиенте
Гпоцедура РезультатОбработкаДололнительнойРасшифровки(Элемент, Расшифровка, Стандар^ная^работка)
Перем ВыбранноеДействие;
Перем ПараметрыВыбранногоДействия;
СтандартнаяОбработка = Ложь;
ОбработкаРаешифровки - Новый 0’браббткаРасшифровН'эмпоновк1йаншх(ДанНыёРасйифцорк?.
Новый ИсточникДоступныхНас-тооекКомпог’овки^анных(Отчет));
ДоступмеДействия = Новый Массив));
ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.ОткрытьЗн^|ение),
Досту лныеДействия.Дс: :авить(ДействиеО6работкиРасшифровкиКомпоновкиДанных.Отфил^тр( ф. пъ);
ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКо:;поновк »анных.Расшифро^гь);
ДополнительныеДейсгвия = Новый СписокЗначений;
ДополнителлныеДе^ствия Цобавить("Действие 1й);
ДополнительныеДействия.Добавить(пДействие2н);
ДополнительныеДействия.Добавить("ДействиеЗ");
л
II Осущеа вин аы1 юр действия, шсшифровм полыювателё^
ОбработкаРасшифровк^Вь^^ьй эие<Расшиф;юв БлбранноеДействив,
ПараметрыВыбранногоДействия^Доф1^
ЕслиПарам этрыВыбраннтоДейн «ия <> Неопределено Тада
Если ВыбраннсеДейС1Вие =
Дейс овкиКомпс :эвкиДанных,ОткрытьЗначение Тогда
ОткрытьЗначение(ПарамегрыВыбраньоюДейс<вия);
Иначе
11арамефыФорш = Шад Структура;
Параме фыФормы.Вставить^СтормироватьПриОткрытии'', Истина);
ПараметрыФормыВставить( Расшифровка", Новый
исаниеОбрабсткиРасш»'1фровкиКсм1юновкиДанных(ДанныеРасшифровки,
Расшифровка,. ТараметрыВыбранногоДёйствиг1);
О
КонецЕсли
Иначе
Сообщить(ВыбранноеДействие))
КолецЕсли-
Ко эцПроцедурь*
В процедуре обработчика отменяется стандартная обработка расшифровки.
Затем создается обработчик расшифровки - объект ОбработкаРасшифров-
киКомпоновкиДанных и инициализируется данными расшифровки отчета
и источником доступных настроек для отчета.
Затем задается список доступных действий расшифровки - ОткрытьЗначение,
Отфильтровать, Расшифровать, а также задается список дополнительных
действий расшифровки, например «Действие 1», «Действие 2», «Действие 3».
После этого вызывается интерактивный выбор действия расшифровки
методом Выбрать Действие () объекта ОбработкаРасшифровкиКомпо-
новкиДанных. В метод передается идентификатор расшифровки, список
доступных действий (ДоступныеДействия) и список дополнительных действий
(ДополнителычыеДействия) меню расшифровки.
После выбора пользователем действия расшифровки значение выбран-
ного действия возвращается во втором параметре ВыбранноеДействие. Если
выбрано действие Открыть, то третий параметр ПараметрыВыбранногоДействия
содержит значение, которое нужно открыть. Если выбрано действие Расшиф-
ровать, Отфильтровать, Упорядочить, Сгруппировать, Оформить, то параметр
ПараметрыВыбранногоДействия содержит настройки, применяемые к отчету.
Если выбрано дополнительное действие, то параметр не заполняется.
В зависимости от выбранного действия либо открывается выбранное значение,
либо формируется новая форма отчета с параметрами СформироватьПриОт-
крытии и Расшифровка. Параметр СформироватьПриОткрытии, установленный
в значение Истина, обеспечивает формирование отчета сразу при открытии
формы. В параметре Расшифровка описывается расшифровка, которую
нужно применить к открываемому отчету. Затем Данные расшифровки,
идентификатор расшифровки и новые настройки, применяемые к отчету,
передаются в конструктор объекта ОписаниеОбработкиРасшифров-
киКомпоновкиДанных.
Выполним отчет. Нажав правую кнопку мыши на поле отчета, можно вызвать
меню собственной расшифровки и выполнить перечисленные в нем действия
расшифровки (рис. 3.79).
1
Сборка системных блоков
Вариант отчета: [Основной
1 Настройка...
'{Д Начало I .е -ЧЦйа
Конец периода
Сортировка
г!
Количество ^Стоимость
11
/ЭДаа;
1
ту
1
15.01.2012
. Дата, Стоимость
Сборка системных блоков
Параметры: Начало периода: 01.12.2011
Конецпериода: 15.01.2012
Системный блок
|Дасгер
|(омп« ипер для оЛиса
Соколов Андре,
"Действие 1
Действие 2
Действие 3
Отфильтровать
асшиФровать...
. Открыть "Системный блок = Компьютер для дома'
Все действия »
/Дата
8 500,00
Ноне?
8500,00
6 500,00:06 12?2011 ВООООС ЛИ
9 000,Ой
I ЯГ",ОГ
) 666,6оИ 1122011 ,000000002
500,00 ’
1500,00
) 50010б'1ТН.2б12
ооьоо юо?
с
I I
Рис. 3.79. Результат отчета
ВНИМАНИЕ
Переопределять действия по расшифровке отчета, вызываемой при нажа-
тии правой кнопки мыши, нужно в обработчике события ОбработкаДо-
полнительнойРасшифровки. А в обработчике события ОбработкаРас-
шифроьки нужно переопределять действия, происходящие при двойном
щелчке мыши на поле отчета.
При необходимости расшифровку, выдаваемую методом ВыбратьДей-
ствие () можно выполнить и самостоятельно. Например, поместим в форму
отчета Сборка системных блоков поле флажка Форма расшифровки, связанное
с одноименным реквизитом булевого типа. В зависимости от его значения
при выборе определенного действия из меню расшифровки, связанного
с изменением настроек отчета, будет либо открыта новая форма, содер-
жащая расшифровку отчета, либо сразу же применены новые настройки
и скомпонован результат расшифровки в исходной форме отчета в процедуре
ОтработатьРасшифровку ().
Процедура обработчика события ОбработкаДополнительнойРасшиф-
ровки изменится следующим образом (листинг 3.12).
Листинг 3.12. Фрагмент процедуры обработчика события
«ОбработкаДополнительнойРасшифровки» для поля «Результат»
Если ВыбранноеДе1С.вие =
ДействиеОбработкиРасшифровкиКомпоновкиДанных.ОткрытьЗначение Тогда
ОткрытьЗначение(ПараметрыВыбранногоДействия);
Иначе
Если ФормаРасшифровки Тогда
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("СформироватьПриОткрытии”, Истина);
ПараметрыФормы.Вставить('Р^сшифровка", Новый
ОписаниеОбработкиРасшифровкиКомпоновкиДанных(ДанныеРасшифровки,
Расшифровка, ПараметрыВыбранногоДействия));
ОткрытьФор ^у("Отчет СборкаСистемныхБлоков.Фбрма’’, ПараметрыФормы,, Истина);
Иначе
ОтработатьРасшифровку(Новый
ОяисаниеОбработкиРасшйфровкиКомпонов^ДанйыхЩанныеРасшифровки,
Расшифровка, ПараметрыВыбранногоДействия));
КонецЕсли;
Кс ;ецЕсли;
В процедуру ОтработатьРасшифровку () передается объект ОписаниеОб-
работкиРасшифровкиКомпоновкиДанных (листинг 3.13).
Листинг 3.13. Процедура обработчика события
«ОбработкаДополнительнойРасшифровки» для поля «Результат»
&НаСервере
Процедура ОтработатьРасшифровку(ОписаниеОбработкиРасшифровки)
ТзнныеРасшифроъкиОбъект • ? ПолучитьИзВршенногоХранил1?да(ДанныеРасшифровки);
ОбработкаРасшифровки = Новый
ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровкиОбъект,
Новый ИсточникДоступныхНастроекКомпоновкиДанных(Отчет));
РезультирующиеНастройки =
ОбработкаРасшифровки.ПрименитьНастройки(ОгмсаниеОбработкиРасшифровки.Идентификатор,
ОписаниеОбработкиРасшифровки.ПрименяемыеНастройкид
Если ТипЗнч(РезультирующиеНастройки) = ТипС'НастройкиКомпоновкиДанных”) Тогда
Отчет КомпоновщикНастроекЗагрузитьНастройки(РезультирующиеНастройки);
ИйачеЕсли ТипЗнч(Результир'ующиеНастройкиА =
Тип(“По ъзовательскиеНастройкиКомпоновкиДанных") Тогда
Отчет.КомпоновщикНастроек.ЗагрузитьГюльзовательскиеНастройки(РезультирующиеНастройки);
КонецЕсли;
СкомпоноватьРезультат();
КонецПрод уры
В процедуре создается обработчик расшифровки - объект ОбработкаРас-
шифровкиКомпоновкиДанных и инициализируется данными расшифровки
отчета и источником доступных настроек для отчета. Для применения
настроек расшифровки используется метод этого объекта ПрименитьНа-
стройки(). Метод ПрименитьНастройки() может вернуть как полные
настройки компоновки данных, так и пользовательские настройки компоновки
данных. Пользовательские настройки расшифровки могут быть получены,
если применяемые настройки можно полностью применить в пользователь-
ских настройках. Затем полученные настройки расшифровки применяются к
отчету методом компоновщика настроек ЗагрузитьНастройкиО, и отчет
формируется методом формы отчета СкомпоноватьРезультат ().
Расчет итогов по полям остатка
Полем остатка с точки зрения системы компоновки данных является то поле,
в роли которого проставлен признак Остатки (рис. 3.80).
Рис. 3.80. Роль поля-остатка
Для корректного расчета итогов по полям источника данных данные должны
удовлетворять следующему правилу: в данных должна соблюдаться уникаль-
ность полей-периодов и полей-измерений.
Рассмотрим наиболее вероятные причины некорректного расчета итогов
по полям остатка.
Отсутствие в запросе родительских полей-периодов
Допустим, в отчете требуется отобразить движение и остатки номенклатуры
с детализацией по регистратору за указанный отчетный период.
Если набор данных для отчета получается при помощи следующего запроса
(листинг 3.14), то будут получены неправильные остатки.
Листинг 3.14. Текст запроса
выбрать
й
дааткин^нклшур^
ОстаткиНоменкпатурыОстатки’лОбороты.КпличестгпРасхсдКАКРасхОд>
Регистр» {акопления.ОотэткиНоменклатурь'.СстаткиИОбороть^,Авто,,) КАК
ОстаткиНоменкла^сьЮстаткиИСбэроть/
ИИ1Яг ЯНИНИН
Проблема в том, что в запросе при получении поля Регистратор обязательно
должно быть получено и его родительское поле-период ПериодСекунда. Это
относится ко всем полям-периодам — при получении поля-периода в запросе
должно присутствовать его родительское поле-период.
Для устранения проблемы нужно обеспечить, чтобы в запросе присутство-
вало поле ПериодСекунда (листинг 3.15).
Листинг 3.15. Текст запроса
Если свойство Автозаполнение (стр. 346) в схеме компоновки данных уста-
новлено, платформа автоматически заполнит роли (стр. 365) полей-периодов
в наборе данных (рис. 3.81).
Поля-периоды для правильного расчета остатков должны иметь непрерывную
нумерацию, начиная с 1. При этом чем меньше номер периода, тем более
точным должен быть период. Например, поле НомерСтроки является уточне-
нием поля Регистратор, поэтому номер периода поля НомерСтроки должен быть
меньше, чем номер периода поля Регистратор. Аналогично и номер периода
поля ПериодДень должен быть меньше, чем номер поля ПериодГод.
В нашем примере поле Регистратор (номер периода — 1) является уточне-
нием поля ПериодСекунда (номер периода - 2). Если по какой-то причине
роли полей-периодов не проставлены автоматически, необходимо сделать это
вручную.
ояь -1 эгист. .аедр К
5
1
- Роль-----------------------—----------------
* О Без роли
> ...............................********—* *»
’ С^чПеркодз 1 1^1 О Дополнительный
| ^...ГТ иТ|7'.от...1Д№7.от;..от.от......от»*
I О> * Измерение ---------?-----—--------------
Родитель: !
О Игнорировать значения МИН.
О Обязательное
*Х
.ЙС .^3[С0о^на.г , | -:|
.гЬ1д^№й1тагаъп11а1Яч.ж«д^^^а.иг1^жьтг*гЬц^11й^дпйа1№ййдиайМ&а*аа-^»>гах.а1.
I
Рис. 3.81. Роли полей-периодов
В результате в отчете будут получены правильные итоги остатков номенкла-
туры за период с детализацией по регистратору.
Отсутствие в запросе парного поля-остатка
Другой вероятной причиной неправильного расчета остатков является отсут-
ствие в запросе парного поля-остатка. Например, следующий запрос, в
котором получается только конечный остаток номенклатуры, будет непра-
вильным (листинг 3.16).
Листинг 3.16. Текст запроса
ВЫБРАТЬ
ОстаткиНоменк.патури|СстаткиИ(?Ьсре'гч-Ног/^и^атура,
ч )статки11окгенкла'?урыОстатаиИОбС‘)о:ы.Склад,
СЙ гат киНс;иенкп&турьЮи1#киИ гок,
ОстаткмНоменклатурыОстатли^ОборсТи * КоличесжТ приходКАК Приход,
()гтаткиНоменклатурыОстаткиИОбороты Количеств' Расх* д КАК Расход,
т Й • атки; Ыетлатур* ЮстатквИОбороты Регистратор, С
ОстаткиНогиенклатурыОстаткиИОбороты.ПерисдСекунда
) КАК
ОотаткиНоменклатурыОстаткиИ*5^ог гы<
Для устранения проблемы нужно обеспечить, чтобы в запросе присутство-
вало парное поле-остаток, в данном случае КоличествоНачальныйОстаток (см.
Листинг 3.15). В этом случае при установленном свойстве Автозаполнение
(стр. 346) платформа автоматически заполнит роли (стр. 365) полей-остатков
6 наборе данных (рис. 3.82).
РоЛь” НачальныйОстаток
Дополнительный
- Остатки
Имя
Тип:
Поле счета: [
1
3
?
к
1
I
I
?
\
О г Счет
I §ИД-
,Роль— —--
О Без роли
О Период:
ОрИзмерение-
! Родитель:
Бух. тип: !Нет
авка
Рис. 3.82. Роли полей-остатков
Труппа
Начальный остаток
О Игнорировать значения НИН
С Обязательное
! Рид:
Тип
Бух тип:
Поле счета: Г
р Остатки
Имя
- Роль------
О Без роли
О Период:
О -Измерение
Родитель:
ОК
* ДйПОЯНИг СЛЬНЫЙ
[Группа
; Конечный остаток
Гнет
О Игнорировать значения НИН
О Обязательное
Парные поля-остатки должны иметь одинаковое имя группы полей-остатков.
Не парные остатки должны иметь различные имена групп полей-остатков.
Если по какой-то причине роли полей-остатков не проставлены автомати-
чески, необходимо сделать это вручную.
Отсутствие в запросе родительских полей-измерений
Такая проблема может возникнуть, когда в запросе получили реквизит изме-
рения, но не получили само измерение. Например, в запросе получается
реквизит ВидНоменклатуры измерения Номенклатура без получения самого
родительского поля-измерения (листинг 3.17). В этой ситуации итоги по
полям-остаткам могут быть рассчитаны неправильно.
Листинг 3.17. Текст запроса
ВЫБРАТЬ
ОстаткиНоменклатурь1ОстаткиИОбороть1Номенклатура.ВидНо|/еню1атурь1 КАКВидНомен^атуры,
(статкипоменклатурьИ)статкиИОбороты. Склад.
бстатлиНоменклатурЬ'О таткиИОбрроты КсэтмчёствоНзчальныйОстйгок.КАК НачальныйОстаток,
Оста киНомевдатур^ .твоКбнечныйОаата КАК КонечныйбетМШ
ОстаткиН ^нклатурЬ'Ос^аткиИОборог^г'эпичество) 1рида КАК Приход,
ббгатшНоменклатурЕ ОстаткиИОС'зрте КолйчестЬоРасход КАК РЖход,
* । татюЛменкгш1^^
ЭстагкиНоменклатурыОстаткиИОбороты.ПериодСекунд?
ИЗ.
РежрНакопяёнияЮста^ Авто,. г} КАК
ОазткиНо1Д!йтату^ьЮстаткиЙОборс1ы
Для устранения проблемы нужно обеспечить, чтобы в запросе присутство-
вало родительское поле-измерение (листинг 3.18).
Листинг 3.18. Текст запроса
Неправильное заполнение роли полей в наборе данных
Выше мы рассмотрели необходимое заполнение роли полей-периодов
(см. рис. 3.82) и полей-остатков (см. рис. 3.83) для корректного расчета
остатков. Также должны быть правильно указаны роли полей (стр. 365),
являющихся измерениями и реквизитами измерений. Поля, являющиеся
измерениями, в разрезе которых получаются остатки, должны быть отме-
чены как измерения. Поля, не отмеченные как измерения при расчете итогов
по полям-остаткам, учитываться не будут, это может привести к получению
неправильных остатков. И наоборот, поле, по сути не являющееся измере-
нием, не должно быть отмечено как измерение. В противном случае остатки
могут быть получены неправильно.
Для корректного расчета остатков необходимо указать родительское поле
в роли поля-реквизита. Так, в приведенном выше примере (см. листинг 3.18)
нужно у поля ВидНоменклатуры указать роль Измерение и указать в качестве
родительского поле Номенклатура (рис. 3.83).
В результате будут получены правильные остатки по полю - реквизиту изме-
рения.
Необходимо учитывать, что система компоновки данных не позволяет исполь-
зовать поля-реквизиты полей периода для группировки. Так, например, не
позволяется группировать по реквизитам поля Регистратор регистров нако-
пления и бухгалтерии. При необходимости вывода в результат остатков для
некоторого реквизита регистратора следует в отчет выдавать группировку по
полю Регистратор и выдавать в группировке интересуемые реквизиты.
Рис. 3.83. Роли полей-измерений
Расчет итогов по полям бухгалтерских остатков выполняется аналогично
расчету итогов по обычным полям-остаткам. Кроме того, при расчете итогов
по таким полям используется информация о поле-счете (рис. 3.84).
• Дспслнителнчьй
I I
I!
5 !
I I
Роль • ,ая^дрК>щДт
- Роль----~~
I
• Без роли
1 О Период:
! 0 г-Измерение-’
! | Родителе:
I Имя:
! Тип:
! Буи. тип:
I Поле счета
Справка | |
С Игнорировать значения №11
С Обязательное
ОК-4 К РтмеВД .
Виа:
Сальдо
! Конечный остаток
[Дебет
Рис. 3.84. Роль поля бухгалтерского остатка
Связи наборов данных
При разработке отчетов часто требуется получить информацию из нескольких
наборов данных. При этом между ними нужно установить связь. Пусть для
анализа информации о движении номенклатуры в схеме компоновки данных
создано два набора.
Набор данных Поступление, получающий данные о поступлении номенкла-
туры при помощи запроса (листинг 3.19).
Листинг 3.19. Текст запроса
ВЫБРАТЬ
ГриходнаяНяклядная» фреченьНоменк/
ПриходнаяНаклалнаЯ1 Йе1- еньНоменклатурьк КоличествоКАК. Постугшю,
. 1рихопнаяНаклаоьая< 1еоечёньНоменклатуоь», Сумма КАК Су даПоступлелмя
ИЗ
Др. умен-; ЛсиходнаяНакг.адная.Л^реченьНоменклаг/ль1 КАК
Набор данных Расход, получающий данные о расходе номенклатуры при
помощи запроса (листинг 3.20).
Листинг 3.20. Текст запроса
ВЫБРАТЬ
>?^одн?яНа№ацнаяПереч( Ш юменклатуры.Номевкгатура,
Расходная! ‘-акладнаяПереченьНоменкъ .уры. Количество КАК Продано,
ПриходнаяНакладная! ]еречекНомеьс,атуры.Сумма КАК Сумма! {раджи
ИЗ
Цокумж РасходняяН~:<ладная пере“еньНоменклатуры КАК
Рйсхо^лнаяНакладнаяПереченьНоменкпгтуры
В схеме компоновки данных на закладке Связи наборов данных добавим связь
между наборами данных и опишем ее. В качестве источника связи укажем
набор данных Поступление, в качестве приемника - набор данных Расход.
В качестве выражения источника укажем поле Номенклатура, в качестве
выражения приемника - Номенклатура (рис. 3.85).
« <Г- у /Г ’! "Уг-Тт1 г. «
' Наборы.данных. Ч Связи наборов д... р Вычисляемые п.
Ресурсы
.... _ _ - -г. ---
г1арг"1е1р» Макеты Вложенные схемы Нзстрсйк:
Г~ ——— --, ---------~-7------------------—~-----------------— , ------ |--~™“ ---Г---д---
«точник свнл ГТ пенник связи Выражение истом <ик Выражение приемы-" Параметр список ар ’ Условие св.Начальное
Расход
Номенклатура 1 Номенклатура
а
Рис. 3.85. Описание связи наборов данных
При описании связей между наборами данных существует ряд особенностей:
н набор данных, от которого идет связь, будет считаться родительским,
а набор данных, к которому идет связь, будет считаться зависимым от него;
№ в схеме компоновки данных нет описания типа связи. Все связи считаются
Левыми внешними соединениями, то есть у родительского набора данных
будут отражаться в отчете все записи, независимо от того, найдены ли
соответствующие им данные в зависимом наборе данных или нет. Исклю-
чение составляет случай, когда на поле зависимого набора данных наложен
глобальный (на уровне всего отчета) отбор. Тогда все связи наборов
данных, генерируемые системой компоновки данных, будут иметь тип
Внутренняя.
Продемонстрируем на примере, как изменится результат отчета в зависи-
мости от того, какой набор выбран родительским, а какой - зависимым.
При описании связи наборов данных набор Поступление указан в качестве
родительского набора. Поэтому в результате отражены все поступления
номенклатуры, и только та номенклатура из набора Расход, которая есть
в наборе Поступление (рис. 3.86).
Поступление номенклатуры
Номенклатура Поступило Продано Сумма Поступления Сумма продажи I
^Веб-камера 10,000- 3,000' 10 000,00' 4 5ОоЖ
Жесткий диск 3,000 1 ",1-Т 1 9 000,00;
Материнская плата 5,0001 10 000,00'
'Микрофон 10,000: 2.000' 7 000,00; 2 000,63\
Монитор ЬСО 4,000: 2,000 34 000,00; 22 000,0^
Память ",г'1" 1 В'ВДва';" 1
Итого 37,000, /да 76 000,0! 28 500,00
Рис. 3.86. Результат отчета
Теперь укажем набор данных Расход в качестве родительского набора
(рис. 3.87).
\ Наборы данный Связи наборов д... ), Вычясл^е>4ые п..>' Редусы Параметры . Макеты ’ Вложенные схемы Настройки
Рис. 3.87. Описание связи наборов данных
В результате отражены все записи о расходе номенклатуры и только та номен-
клатура из набора Поступление, которая есть в наборе Расход (рис. 3.88).
Расход номенклатуры
Номенклатура Поступило Продано "Сумма поступления Сумма " < продажи
(^Веб-камера 10,000 з,ооо; ю ооо до 4'5об,оЛ>
Восстановление данных ,000; 5 000,00;
Диагностика компьютера г . з.ооо; 2 000,00;
Компьютер для дома 1 .000; 10 0С3.0П'
Компьютер для офиса 1 ,СООГ 10 000,00.:
Компьютер игровой г- _ . . ! . ..... 1 000' 13 000,00'
/Микрофон 10,000 2,000 ; 7 000,00 ' 2 000.0Г\
\Црнитор 1_С0 4ДЮ 2,000 ; 34 000,00 22 000,00/
Ремонт компьютера ..... . 2,000? 6000,00;
Сопутствующие услуги 4000 2 000,0( '
Итого . ' 24.000 20 '00 51 000 60 76 500 00
Рис. 3.88. Результат отчета
Создадим отбор на уровне всего отчета на поле зависимого набора Посту-
пление (рис. 3.89).
' ГМ °т^"1
। :<; Текущий элемент имеет собственный отбор (для Фильтрации записей, выводимых в з лементе)
I
) Выбрать Все действия-» ^Добавить новый элемент ) Сгруппировать условия | X । | Все действия”
I
I
I
I
!
!
I
1
)
I
Доступные ПОЛ:
-*: -----
®» Номенклатура
ЯестуЫ^'
саа
«в»
сш
Продано
Сумма поступления
Сумма продажи
Пол<
! & Отбор
Вад сравнения
Значение
5 С'-!1" _ ’Й'Кйи-ТТГЛ -Л.,
V <чП« чпр.,10 Больше
»
1
1<
Рис. 3.89. Отбор отчета по полю зависимого набора данных
В результате в отчет попадут только связанные по полю Номенклатура записи
из обоих наборов данных, то есть тип связи будет Внутренним соединением
(рис. 3.90).
Отбор: Поступило Больше “4"
Номенклатура Г ь. -1&- Г-1- —у--—. •31 А» ' Уступило Про, цано Сумма Сумма
। - ---'л. ->г - ' ‘ • - - '.Г-.... ...... пост /прения продахи !
Эеб-кам :рь 10,000; 3,0001 100110,00 ; 4 500 ДО
; Микрофон 10,000: 2,000 г 7 000ДО 2 000,56;
И|ого -МА. 70,000. 6 000 17 бООдоГ 6 509 00
Рис. 3.90. Результат отчета
С точки зрения эффективности исполнения отчета лучше получать в дочернем
наборе сразу только те записи, которые удовлетворяют условию связи наборов
данных. Для этого нужно указать в запросе дочернего набора параметр связи
и использовать его в схеме компоновки при описании связи. Иначе в дочернем
наборе будет получено много лишних записей, которые затем будут откиды-
ваться как не удовлетворяющие условию связи (рис. 3.91).
.1
На^с^ы-Данных- | Связи наборе... "| * .Вычисляемые^, ,ресурсы I Параметры •
Мз;. а Ьложй.1ные '.Н&стройкг.,
1.
Г
Источник свяг Гптемн связи- Выражение истош «к. Еыр-.ж мте приемы* Парам»
| РегистрСБ ; ДокументСБ
Регистратор
I Ссылка
| Список;,,.йсттеад,,, 1 Началь,,. |:Вбязет„. ,
)□_______1___________1_________
да > я?
Рис. 3.91. Описание связи наборов данных с использованием параметра связи
Конкретный пример описания такой связи можно посмотреть во второй главе
на стр. 83.
если набор данных зависит от некоторого набора и в связи указана
возможность использования списка параметров, данные из зависимого
набора данных будут получаться порциями по 1 000 записей. Если исполь-
зование списка параметров в связи не разрешено, записи будут получаться
по одной;
если родительский и зависимый наборы данных содержат поле с одина-
ковым именем, то данные поля будут извлекаться из родительского набора.
Несвязанные наборы данных не могут содержать поля с одинаковыми
именами;
данные зависимого набора не могут быть получены без получения данных
из родительского набора, если у них нет общего родителя, в котором
данное поле также присутствует;
если ни одного поля зависимого набора данных не участвует в настройках
системы компоновки данных, то этот набор не будет включен в макет
компоновки данных;
в одной группировке не могут быть использованы поля из не связанных
друг с другом наборов данных. При этом наборы данных, имеющие общие
родительские наборы данных, связанными не считаются. Исключение
сделано для полей-итогов, которые могут быть использованы в любой
группировке;
если в группировке используются данные из нескольких наборов данных,
при исполнении компоновки осуществляется обход по последнему зави-
симому набору данных.
Связь наборов данных по периодам
В некоторых отчетах требуется получать данные из нескольких наборов, при
этом связь между наборами данных требуется выполнять по периодам. Рассмо-
трим эту возможность на примере отчета ОстаткиИПродажиТоваров (стр. 112).
Допустим, требуется выдать в отчет данные по остаткам товаров на складах
по месяцам и выдать объем продаж по каждому товару за каждый месяц.
Для реализации такого отчета в схеме компоновки данных создано два набора
данных:
набор данных Остатки с остатками товаров по периодам,
набор данных Продажи с продажами товаров за период.
Для того чтобы получить остатки товаров по периодам, используется вирту-
альная таблица регистра накопления ОстаткиНоменкпатуры.ОстаткиИОбороты.
Набор данных Остатки можно получить с помощью следующего запроса
(листинг 3.21).
Листинг 3.21. Текст запроса набора данных «Остатки»
ВЫБРАТЬ
Остаткг |0!,(енклатурыОстаткиИ06оротыЛериод,’
* Ост^т ЛогденклатурыОстаткиИОбороты Номенкла; ура"
1ОмедаатурыОстаткиИ0&роты.Колмчествс): ЙнеЯныйдетаток
из \ '
|.ОстаткиИОбороты| .Месяц, , )•
КАК
- *
Продажи за период можно получить при помощи виртуальной таблицы реги-
стра накопления Продажи.Обороты. Для получения набора данщых Продажи
можно использовать следующий запрос (листинг 3.22).
Листинг 3.22. Текст запроса набора данных «Продажи»
ВЫБГАТЬ
ПродажиОбороты.Номенклатура,
ПродажиОбад ы.КоличествоОбэрот
Регистр Тюлени/ Продажи Обороте
^НачалоПериодаПродаж. &Крне^риодаГ!.ред&ж > ) Продаж* । I ^оррты
Так как система компоновки данных позволяет выполнять связь фежду набо-
рами данных только по их полям, необходимо обеспечить в обоих наборах
данных поля начала и конца периода. Для этого тексты запросе!в для полу-
чения наборов данных изменены следующим образом (листинги 3.23, 3.24).
Листинг 3.23. Текст запроса набора данных «Остатки»
ВЫБРАТЬ
(ПашНомет^ Период КАК НачалоПериода,
КОНЕЦПЕРИОШк(Остатки^ 1оменклат^)ыОстаткиИОбо, ютьАриод МЕСЯЦ, КАК Коне {I [<• риода,
ОстатоиНомени зтурь|Остатз4ИОбсргты Номенклатура
ктаткиНоь.енк^атурыОстаткиИОборо гы .КоличествоНачальныйОстаток КАКНачальный | у
ИЗ
ОстаткиНоменклатурыОстаткиИОбороты КоличествоКонечн01иОстатокКАККонечныйОс
3$трк
:1г! гбк
РегисурНакогь .ения Оста .^НоменклатурыОстаткиИОбороты-,Месяц,
КАК Ост аткиНшеыш^турыОотатки ^бороты
Листинг 3.24. Текст запроса набора данных «Продажи»
ВЫБРАТЬ
&НачалоПериодаПродажКАК НачалоПериода,
&КоиецПериодаГ’родаж КАИ КонецПериода
ПродажиОбороты.Номенклатура,
(‘рсдажиОборог ы.Кг-гнчесть. Оборот КАК Кол честзс
{ВЫБРОС
НачалрПериода,
Конецпериода,
Номенклатура
Ктпичество}
РегистрНаад <ечия. Продаж я. Оборо.ь^&НачалоПериодаПродаж ШнецПериодаПродаА
{(КонтрагентлНомейкгй^ра; *}) КАК Пр^НиОббрсл^
В тексте данного запроса используется расширение языка запросов для
системы компоновки данных - часть запроса, заключенная в фигурные
скобки. В конструкции {ВЫБРАТЬ...} указывается список доступных полей
набора данных, а в параметрах виртуальной таблицы {(Контрагент)
(Номенклатура).*} указывается список полей, по которым нр1 результат
запроса можно наложить условие, то есть перечисляются поля, которые будут
доступны в настройках отбора схемы компоновки данных.
Теперь нужно обеспечить связь наборов данных Остатки и Продажи по номен-
клатуре и полям периодов. На закладке Связи наборов данных создаются три
связи между наборами Остатки и Продажи.
Сначала наборы данных связываются по полю Номенклатура. Затем
(во второй и третьей строке) для указания связи по полям-периодам в полях
Выражение источник и Выражение приемник указывается поле НачалоПериода/
КонецПериода. В поле Параметр из списка параметров выбирается параметр
НачалоПериодаПродаж/КонецПериодаПродаж зависимого набора данных,
в котором будет храниться значение связи (рис. 3.92).
Рис. 3.92. Описание связи наборов данных
Из описания связей видно, что для записей набора данных Остатки будут
получаться записи набора данных Продажи для нужного периода и нужных
товаров. При этом значения полей НачалоПериода и КонецПериода набора
данных Остатки будут использоваться в качестве значений параметров вирту-
альной таблицы Продажи.Обороты.
В результате отчет, сформированный за период 01.12.2011-31.01.201р, будет
иметь вид (рис. 3.93).
Рис. 3.93. Результат отчетна
Расчет итогов
Система компоновки данных позволяет выводить в отчет данные из нескольких
торого
наборов. При этом в некоторые группировки могут попадать записи некс
набора данных по нескольку раз. Однако в случае использования связанных
наборов данных при расчете итога каждая запись будет учтена тольк Э| один
раз. Если отчет получен с использованием связи двух таблиц в запросе, общий
итог будет содержать суммы по всем строкам, что неверно.
Для примера рассмотрим вывод отчета с использованием двух связанных
наборов данных.
Создадим набор данных, получающий остатки номенклатуры при п^ющи
запроса (листинг 3.25).
Листинг 3.25. Текст запроса
ВЫБРАТЬ
ОстаткиНоменклатурыОстатки.Номенклатура,
ОстаткиНоменклатурыОстатки.Склад,
ОстаткиНоменклатурыОстатки.КоличествоОстаток
ИЗ
РегистрНаколления.ОстаткиНоменклатуры.Остатки КАК ОстаткиНоменклатурыОстатхи
Скажем ресурс отчета — КоличествоОстаток. Создадим в настройках отчета
гэуппировку Детальные записи и выберем поля: Номенклатура, Склад, Количе-
сгвоОстаток (рис. 3.94).
IДЭ;
астрбйки ^4.
'ЁвязиейбЫ. з гЛ сураы ' » Параметры;.;: Макеты
!♦ 1Й
Досту,’ТЫС ПРЛЯ
=» Номежлатура
™ Склад
л
Тй СистекнчеПоля
О ПараметрыДатныя
Шолс
I Э Выбранные поля
“ Номенклатура
“ Склад
У Я
В & & &
Л 1м^вармаь. Прею?®'I «
Основной I
а* Отчет
й Настройки ’йй#! < Детальные загиси>
Се&ьме.
Выбрани.. I: {! <№5ср-
I
1эис. 3.94. Настройки отчета
] режиме 1 С:Предприятие создадим в отчете отбор (рис. 3.95).
Текушкй элемент тмеет собственник отбор [для Фильтрации записей, выводимых в элементе)
( ыбрать Все действия *
1 уступные поля .,
Количество Остаток |
Ндм«*‘-^гура
^Добавить новый элемент ! Сгруппировать условия | Ж | Все действия ~
; ' Поле. : Вид сравнения ^Значение
\ : Отбор
..®« Номенклатура Равно- "1Т«^ДР?Ч> .„:О;
<! и» Склад
?! и) Параметры
Рис. 3.95. Настройка отбора
Выполним отчет (рис. 3.96).
; Згбор: (Номенклатура Равно "Монитор 1_С0") •
I I
-) Пленклатура <Скла^ Количество I
I я=•=-- м Остаток ____________Д
! 1 ниторЬСО 'Розничный , 1,000!
! <<ниторЬСО 'Основной ; 1,000.: *
г^го:-. ;. '^=^1-2" _____..~.1 Рис. 3.96. Результат отчета
оздадим набор данных, получающий продажи номенклатуры при помощи
запроса (листинг 3.26).
Листинг 3.26. Текст запроса
ПродажиОбороты.Контрагент,
(родажиОбороты.. ЪлгЯёШэдароТ
РегистрНакопления Пуодажи.Обороты КАК ПродажиОборот*-*
-
Укажем ресурсы отчета - КоличествоОборот и СтоимостьОборот. Создадим
в настройках отчета группировку Детальные записи и выберем поля: Номенкла-
тура, Контрагент, КоличествоОборот, СтоимостьОборот (рис. 3.97).
Набсоий 4 Связннаб1"; Вычисляем. ;; " гурсы Параметры Маквуя I Вложенные.
-йй~
Имяварсс» . I Предстаем
| С& X < ’Ш
Ч Зтные поля
!
“> Контрагент
0
Ьт^лбт-Йбчр;
ОЁ СистемныеПоля
Ге ПараметрыДангых
=» Номенклатура
Л КоличествоОборот
Рис. 3.97. Настройки отчета
। Настройки: Отчет; «Детальна езагиси)
! $ Пардай...’ $ Выбранн.7^^: Отбор-..
Л.рг; рс В ;лоы Пользе. , ! Другие.
_____{Поле
11 гч *
Выбранные поля
“• Номенклатура
“ Контрагент
КоличествоОборот
-ч X '
[
! -ф '
И
ЫМЛюрв
Выполним отчет с таким же (рис. 3.95) отбором (рис. 3.98).
। Отбор: Номенклатура Равно "Монитор 1_С0“
I . _ __ ___________________
‘Номенклатура Контрагент Количество Стоимость
!, ___, . Оборот Оборот _
[Монитор ЬСО _ 4СЮО"Стил>" Т _ 1,00! 12 000,00 >
(Монитор1_СО ‘ООО "Автоматика" , ________ 1,00‘ _ 10 000,00';
Итого \ Л ? " 2,66' 22 0( ',0и
Рис. 3.98. Результат отчета
Свяжем два указанных выше набора данных по полю Номенклатура
(рис. 3.99).
ЬабЬрысанн.
! Связи набор... 1Г Вьнйсляемы... Ресурсы , Параметры Макены Вло^еннь&с..
Нс Р0ЙМ.1
/; Источник связи ' Приемник связи Выражение источник ... Выражение приемник
(1 НаборДатыи! , НаборДанных2
Номенклатура
ё-нЙаг'-» /
; Парэмел . |.Список па... I '^глоене
-Начально...]
...1
4
»•
Рис. 3.99. Связь наборов данных
Укажем ресурсы отчета - КоличествоОстаток, КоличествоОборот и Стои-
мостьОборот. Создадим в настройках отчета группировку Детальные записи
и выберем поля: Номенклатура, Контрагент, Склад, КоличествоОстаток, Количе-
ствоОборот, СтоимостьОборот (рис. 3.100).
. НйёорьгданньосСводне » ,„ _ & мчсадвкыв Ресурсы ^Ллрамжрз Я Мёкепя Я » Вло»„нные схе. Настройки [
] ! Ип'Я ®ари' ! Представя.
)
[11
Основной
' Настройки. ВтчйМ < Детальные записи}
Полы с®с. Другие н’
Лоле
7
ф I
...,..^,гк©еЦрх
г9
Й СистемныеПоля
й ПараметрыДанных
Контрагент
Номенклатура
Склад
КоличествоОборот
КоличествоО стаггок
, Доступные: поля
’ГП^'Г
Рис. 3.100. Настройки отчета
Парайелуы {| Выбраним. , ( Отбор « &ри<овка 1 Условное
Выбранкые поля
®» Номенклатура
“ Контрагент
“ Склад
КоличествоОстаток
КоличествоОборот
Выполним отчет с таким же (рис. 3.95) отбором (рис. 3.101).
: Отбор: Номенклатура Равно “Монитор 1_С0"
I
Номенклатура ;Контрагент 'Склад Количество Количество Лоимость
____.. . .Остаток Оборот Оборот
^МониторЕсО <ООО "Стиль" .Розничный ___ 1,000; 1.66;_12о6о.о6]
(МониторЕсЬ ООО "Автоматика” Фозничньй 1,000! 1,66; 10 000Д0’
'монитор ССО ]ООО "Стиль" Основной _ 1 _ 1ДМГ 1,66’ _ 12 С00,0б
М )нитоп Есб 'ООО“Автоматика -Основной 1 1,000; 1,00, 10 000,00
1Итогс С..и...2-р.9О;.^ Рис. 3.101. Результат отчета
Мы видим, что за счет соединения записи из обоих наборов данных выво-
дятся в результат по нескольку раз. Однако общий итог по таблице рассчитан
правильно за счет того, что в расчете итогов каждая запись участвует только
один раз.
Получим теперь такой же отчет с использованием связи двух таблиц в запросе
(листинг 3.27).
Листинг 3.27. Текст запроса
ВЬ№ф
ОстаткиНокожш^^
Остатки *о «енклатурыОстатки.Склад,
ОстаткиНо^ ^нклатуоыОааткиЖапичестБоОстаток
ПродажиОбороты. Контра ент,.
Прода иОбороты.Колич ствоОборот,
ПродажиОбороты.Стоимг)СтьОборот
ИЗ
РегистрНакопления.Ос'. аткиНомен1шатурь..Остатки КАК ОстаткиНрменю ш урыОстатки
ЛЕВОЕ СОЕДИНЕНИЕ РошстрШкогнени^ ЛздажиеОбррош КАК ПродажмОборбты
. ПО (,сгаткиНомен№атурыОсгат;и Номенклатура - Про^^ОборотькНойенкпатура
Создадим такие же ресурсы и настройки отчета, как и в предыдущем случае
(см. рис. 3.100). Выполним отчет с таким же (рис. 3.95) отбором (рис. 3.102).
| Отбор: (Номенклатура Равно “Монитор 1_СО“)
Номенклатуре Кейфа ент -Склад Количества ..^Количество г,:- ..... I : . . .^Остаток Оборот Лоймость Оборот
Монитс’экСО .ООО"Автоматика" Розничный [ _ 1,000^ 1,00; Монитор кСО [ООО “Стиль" Розничный 1,000 Г . 1.00 Монитор кСО ДООО "Автоматов" Основной _ ] 1,000; 1 ДО] Монитор кСО 'ООО "Стиль" ~!Оснозчой 1,000' . 100! ; 10 обод) > 12 000,00. 10000,66'
Итого , Т 2 .7; С 4,00 44 ‘''•1.0©
Рис. 3.102. Результат отчета
Мы видим, что итоговые значения содержат суммы по всем строкам. В данном
случае - это неверный результат.
Использование нескольких схем компоновки
для одного отчета
Каждый отчет может иметь несколько схем компоновки данных. Иногда
бывает нужно выполнить один и тот же отчет, по-разному представив данные
в нем, в зависимости от ситуации. Например, в одной схеме компоновки
данные для отчета получаются при помощи запроса к информационной базе,
а в другой — заполняются программно из таблицы значений. Затем нужная
схема компоновки может быть программно или визуально установлена для
отчета.
Чтобы создать для отчета новую схему компоновки, нужно раскрыть его
в дереве отчетов конфигурации, выделить ветвь Макеты и нажать кнопку
Добавить в командной панели окна конфигурации (рис. 3.103).
; Действия
та-
и
СистемаКомпоновкиДанных
Общие
Й» Константы
•+• № Справочном
Документы
Журналы документов
У Перечисления
г '&! Отчеты
Э ® ОстаткиНоменклатуры
® ОтчетПоСистемнымБлокам
& СписокНоменклатуры
“ Реквизиты
ЕВ Табличные части
(Ю Формы
Команды
I
Макеты:
1
Д
(Г.
©I
ОтчетПоПрсдажам
СборкаСистемныхБ локов
ОказаниеУслуг
ПоступлениеТ оваров
Ц еныКомплектующихОтПоставщиков
ОсновнаяСхемаКомпоновкиДанных
Иерархия ДетальныхЗаписей
Д .ПрсдажиНоменклатуры
Рис. 3.103. Создание новой схемы компоновки данных
Либо можно открыть отчет двойным щелчком мыши и на закладке Макеты
нажать кнопку Добавить в командной панели отчета (рис. 3.104).
Рис. 3.104. Создание новой схемы компоновки данных
В открывшемся конструкторе макета нужно ввести имя схемы компо-
новки данных, выбрать тип макета Схема компоновки данных и нажать Готово
(рис. 3.105).
л до
Имя:
Синоним:
Комментарий
г- Выберите тип макета:-
; <3 Т абличный документ
; О Текстовый документ
С' Двоичные данные
; Ас1К'е боситеп1
; О НТМ1_ документ
О Географическая схема
; ( ) Графическая схема
Справка! '
Рис. 3.105. Создание новой схемы компоновки данных
И ерархия Дета льныхЗаписей
Иерархия детальных записей
; 1_? Макет оформления компоновки данных
Загрузить из Файла:
Чтобы при вызове из меню Отчеты отчет выполнялся в соответствии с новой
схемой компоновки данных, нужно установить ее в качестве основной схемы
для отчета на закладке Основные (рис. 3.106).
' ► Основные
. Шй-.,'X *. «ЙЫ
Подсистемы
-'знкциональныепции
Данные
Имя:
Синоним:
Комментарий:
~1
Формы
Команды
Основная схема компоновки данных:
Макеты
Права
Прочее
А]
! И
' Действия
Далее?
-------------------~~--.---
Закрыть ! { «-правке <
Рис. 3.106. Установка основной схемы компоновки данных для отчета
Теперь отчет Список номенклатуры будет выполняться из меню Отчеты
в соответствии со схемой компоновки данных ИерархияДета^ьныхЗаписей
(рис. 3.107).
Список номенклатуры
I I
: Комплектующие
Материнская плата
Память
“Жесткий ди-к
/Л гитор 1_сЬ
1000000 1
” 000000003
000000004
’ 000000005
000000012
Вариант отчета Основной
* .$► С ормире ,ать'; Настройка...
В Юоет в'эриан
&
Все действия
000000014
Прочи - детали
(Код :; А*', (Наименование
00000'016
000000008 ”
Рис. 3.107. Результат выполнения отчета из панели действий приложения)
0000000!!6 Веб-камера
000000028 Микроф
000000002 ; Услуги
000000006 СборкаКомпьютера
000000007 Диагностика компьютера
Ремонт компьютера
000000015 Сопутствующие /слуги
000000009
100000.. о
000000013-
000000018 ''
000000022
000000023
000000024
000000025
000000027
Ёосст ано в ление данных
Собранны* компьютеры
компьютер для офи*.
Компьютер для дома
Компьютер игроь^й
Моя иерархия
Монитопь-
,1рву
^Основные детали
Товары /'ля сборки
Однако этот же отчет программно выводится в табличный документ из формы
списка справочника Номенклатура по команде Печать. При его программной
компоновке в функции ВывестиСписокНоменклатуры() используется
макет отчета - ОсновнаяСхемаКомпоновкиДанных (листинг 3.28).
Листинг 3.28. Функция модуля формы «ВывестиСписокНоменклатуры ()»
Фуэдия Выв йцй чисокНоменклатуры()
бтчёЫ 1акет(’Х)сюв№яСхемаКошото^
. :Насффй- Сх^а^'лвиювкиДаяных.НастройкиПоУмолчанию;
кёнейФунЛ' :
Таким образом, при выполнении в этом случае отчет будет иметь другой вид
(рис. 3.108).
" **
1н ><п<мМ1№ Вид Сюстд Остаток ]
Конйшйгуй щие ' 1
Материнская плата Материа/ы [Основной I Память .'Материалы [Основной ! Жесткий диск Материа/ы ; ! Монитор 1.СС' _ _ Материалы [Рознимый I Веб-камера .Материалы [Розничный 1 Микрофон ^Материалы -Розничный 2,000 ~~ 2,000 " 2,000 7 ДЮ 1 1 1 ! г 1 г
ГкиЯ *и
1 Мониторы ” оз.у Основные детали Товары для сборки Прочие детали .Материалы Материалы .Материалы Материалы I 1 I — И -9?’ 4 Й
С$В|ййнь№ компы ЙТ . р Ы Ими
1 \ Компьютер для офиса компьютер для дома Компьютер Кировой Комплекты Комплекты Комплекты ——
н мм ,1
: | Сборка компьютера Услуги [ Ди-згностика компьютера ; Услуги Ремонт компьютера Уснули 1 Сопутствующие услуги Услуги , ! Восстановление данных ;Услупи чахлей ,1 Дл* ЙЧяйкг--' П Н < Г1 НИ ...и... ид! 1 1 I ЙМ«ИЧ>Ч1 . :
Рис. 3.108. Результат выполнения отчета из формы списка справочника «Номенклатура»
Многоязычные отчеты
Система компоновки данных поддерживает работу в многоязычной среде.
Дело в том, что с одной и той же информационной базой могут работать поль-
зователи, родным языком для которых является не русский язык, а другой,
например английский.
В этом случае хотелось бы, чтобы пользователь видел отчет (вернее оформ-
ление этого отчета) на привычном ему языке. При этом мы не рассматриваем
вопрос того, как хранить собственно данные на двух языках (например, русское
и английское название номенклатуры). Здесь мы рассматриваем задачу, как
предоставить англоязычному пользователю, например, возможность видеть
заголовок, шапку отчета на английском языке, пользоваться возможностями
отборов, сортировки, настройки отчета также на родном языке.
Для работы с разными языками в конфигурации можно определить несколько
языков и затем каждому пользователю информационной базы в его настройках
указать тот язык, который должна использовать система. При этом она авто-
матически сформирует пользователю все системные меню на его родном
языке. Но о том, что касается конкретного прикладного решения (например,
конкретного отчета), разработчик должен позаботиться самостоятельно,
так как система заранее «не знает», что именно и как нужно представлять
на другом языке.
Для этого в системе компоновки данных есть возможность задавать названия
полей, заголовков отчета, параметров, вычисляемых и пользователь-
ских полей, представлений отбора и оформления, макетов полей и т.п. на
нескольких языках.
Для примера добавим в конфигурацию еще один язык. Раскроем ветвь Общие
дерева объектов конфигурации. Выделим ветку Языки и нажмем кнопку Доба-
вить в командной панели окна конфигурации (рис. 3.109).
:й
Це»
Коифил!|аиий
Языки*
Общие модули
Параметры сеанса
Роли
Общие реквизиты
Подписки на события
Регламентные задания
Функциональные опции
Параметры Функциональных опций
Планы обмена
Критерии отбора
СистемаКомпоновкиДанных
Общие
5а Подсистемы
13 Хранилища настроек
й.' Общие Формы
© Общие команды
Г'З Группы команд
ГТ| Общие макеты
Общие картинки
Ц ХОТО-пакеты
Ф 'л'еЬ-сервисы
\л/5-ссылки
й Элементы стиля
Русский
Английский
Йэ Константы
I Г
Рис. 3.109. Добавление языка
ф
Дадим ему имя Английский (рис. 3.110).
Рис. 3.110. Установка свойств языка
Кроме имени обязательно нужно задать и код языка (в данном случае епд).
Именно по нему система будет определять принадлежность тех или иных
интерфейсных надписей к конкретному языку.
ВНИМАНИЕ
При смене кода языка все введенные названия полей, параметров,
заголовков отчета и т.п. нужно будет продублировать, выполнив команду
конфигуратора Правка - Редактирование текстов интерфейсов.
Откроем отчет ОтчетПоПродажам. На закладке Основные мы увидим кнопку
открытия со значком лупы, появившуюся справа у поля Синоним. В случае
использования нескольких языков этот значок появляется у всех элементов
отчета, для которых можно задать названия на нескольких языках. Нажав
на значок лупы, зададим синоним отчета на английском языке - 8а1ез герой,
который будет отображаться на панели действий приложения, в группе Отчеты
(рис. 3.111).
Имя:
Синоним.
Комментарий:
Основная схема компснсеки данных
► Основные
Падсист.емы
^ункЦйсмальные слип
Данные"
‘Термы
Команды:
Макеты
ОтчетПоПродажам
Права
Открыл» схему компоновки данных
- ............ -
Прочее
'Ек'реКнЖ рйзиых
ОК
Отмена. . I
|ЕЙЙЙ
Лиг пмйский
:5а1ее герой
Русский
Г ПЯТ
1|
г
'-Дни- - - л
Д-злее>
Закрыть
: Дейсеня
Справка
Рис. 3.111. Установка синонима отчета на английском языке
Откроем схему компоновки данных отчета. На закладке Наборы дг й
Заголовок вводятся имена полей, которые будут отражаться в шаги
ных, ^поле
<е отчёта и
ка поля
в окне настроек для пользователя. Установив флажок слева от зап лов
мы можем отредактировать заголовки полей в отчете. Выделив нужь ый| заго-
ловок двойным щелчком мыши и нажав на значок лупы, зададим з^о^овки
полей на английском языке (рис. 3.112).
• । !г*. “ *. ' Л-‘' г-
Наборыданных Связи наборов В» ми пяей« к} Ресурс* > * Ла метр» Макеты--» Вложенные гае цасфо < [
Поля:
{ в Наборыданных } • |Псле
'Путь.
5 ‘ Заголовок
Ограм-чение поля , Роль
1.1..........
! «». ПериодДень
к!.
' П„.. У...! Г... У... Г
[ - - • - т
> Ограничение рек..
]п.„|У.^г.г;уу" |
Выражение представления
Выражения упорядочивания
[ | *» ПериодМесяц
И е» Контрагент
ПериодДень
’у| Период, день
ПериодМесяц
@ Период, месяц
Контрагент
:!у| Контрагент
О О О Период. 1
Строки на разный языках
Русский
Номенклатура
I <=»; Стоимость
I
Английский
!Ссб(
Номенклатура
Ь?! Номенклатура
Стоимость
<?
Запрос:
? ВЫБРАТЬ
Г*^ Г.. .. ‘
Автозапслнение Й
=Х !
] ; Отмена
Сч Конструктор запроса... I'
Рис. 3.112. Установка заголовка поля на английском языке
Аналогично можно задать англоязычные заголовки вычисляемы
вательских полей, заголовки выбранных полей и их групп, полей
к и
П!1^
(рис. 3.113, 3.114).
л,г ^..л. ’
ГНаборы данных Твязи набор “з ; ' ВмЧи'няемыё 'Ресурсы < Параметры Н Макеты. $ Вложенные схе Л 1 .Насфойки
ТИ1
Заголовок
'В... О.Л-3..^ йсполь
' Дсступн..,. ' Д ,.‘ Значение . . Вырг-лг-иие^ Перемет.
^Период
{(Период
п
0 й О Авто
Й ® : Ц ' Авто
] <Авто
Рис. 3.113. Установка заголовка параметра на английском языке
1 Имя
, НачалоПериода
. КонецПериода
! Период
Начало периста Дата
Конец периода ' Дата
^О^СтандартныйГ оицй
порьзо-
•амфгров
П
И $ I
{
4Л ;Доп
ч
Ь
! »
4
1
1 ф-
к
г
4
I
Ёыраже пто
Прибыль
•Хг.;. “Ш-ЙЯ - ГИЖ-ЙЗВЙВЯ’..
; Русский
Английский
РгсЙ
Путь к
данным
! Доступные
; значения
П. ' Ы .
I .А - - С З.Т к" . — I Л: «! ;
СгсимостьРасход - ' ЯЙ^ЯЯ! КМ — С
.точмостьПриход ;
Заголовок ?С1грани,4еияедост. Выражены тыле ения Тип
* ‘ 5 и 1 греасгавле..:. периодо г значений
• г.. {Н * *’
'.Оформления. I
Параметр.., : К
Рис. 3.114. Установка заголовка вычисляемого поля на английском языке
, ОК
* - ..Ъ-^ -
Отмена
Также можно задать англоязычные представления для именованного отбора
или условного оформления в колонке Представление (рис. 3.115).
- -Параметры., Выбранны. (?тбор : „ Хсртировка Условное... [ $ ПдльгоБаг.>- Другие:на; .
: Оформление Условие -. Оформляемые поля ?. Представление
<*у Цвет текста Стоимость Меньше "3 000" Стоимость - ЙЕ8ШЭЙЙЙЗ ©Ж
Рис. 3.115. Установка представления условного оформления на английском языке
Также можно задать англоязычное представление варианта отчета и англоя-
зычный заголовок отчета или его отдельных элементов (рис. 3.116).
* Набтдадендах ; ' Сеязи нэборов., , Вычисляемые
Имя варианта
IО о- овной
: ДинамикаПродаж
.. а
Настройки ;
'.к г^.
ръьт'; Тарамстры < Ма^еги вжые.сяв
Диаграмма
Точки
ПериодДень
-т Серии
Пользе... | Другие..
Представление
Основной
О.чет
•И-
Алгр» «на •* »>»ач
_________I
Отмена
?
Нел-
Полосы измерительной диаграммы Н ст полос
нш ! I!
^ина!
Английский
Оупат!с$ сП $а1е$
^ц№-1Ди1Лйя ДД|» I иМ — I
Размещение легенды
* : I
Русский
омйдоё
I .. СК.
- ---
Расположение ресурсов в диаграм..
Выведите заголовок
Заголовок
I Н и Выводить параметры
: | [Д' Выводить отбор
Г[! СЗ; Авто позиция ресурсов
Авто
Авто
Динамика продаж
Авто
Авто
После всех полей
_• X $ #
Если для отчета создан предопределенный макет, система компоновки
данных позволяет задавать многоязычные заголовки макетов полей и груп-
пировок. Для примера откроем схему компоновки ПечатьСборки документа
СборкаСистемныхБлоков. На закладке Макеты выделим ячейку, имеющую
тип заполнения Текст или Шаблон, вызовем окно редактирования ее свойств
и, нажав кнопку открытия со значком лупы, введем заголовок на английском
языке (рис. 3.117).
Рис. 3.117. Установка заголовка макета ячейки на английском языке
Теперь запустим «1С:Предприятие» командной строкой "С:\Ргодгат
ЕИе5\1^82\8.2.14.540\Ып\1с^8.ехе" /Ь еп для англоязычного
интерфейса от имени пользователя, для которого установлен английский язык.
Чтобы установить для пользователя английский язык, выполним в меню
конфигуратора пункт Администрирование ► Пользователи, выберем в списке
пользователя и в открывшемся окне, на закладке Прочие укажем для него
свойство Язык (рис. 3.118).
Рис. 3.118. Установка английского языка для пользователя
Выполним Отчет по продажам, выделив в списке отчетов его синоним
на английском языке (8а1ез герог!), введенный нами ранее.
Укажем произвольный отчетный период 01.12.2011-31.12.2011 и сформи-
руем отчет кнопкой Сгеа1е. В результате заголовки полей отчета, параметров
и системные поля будут выведены в англоязычном варианте (рис. 3.119).
5а1е&(е.. ПС:ЕШег п$е| и .4 й V/ д М М+ М- ~ □
8а1е§ г рогГ
Наименование!екущегоВарианта: .Важ 5е1ес( уапапГ~~^
, СгргЛе 1515е«1пд$... АН асЬоп® ▼
Ь I ✓ \ Репой
пт Г — —— л-|
1 Рейарагате!егз: Репой: 01.12.2011 -31.12.2011 1—.
' Сироте г С08» Соз1Л Си84.%
Ыоип№ Ни 1о(а1 «
Р 9. аир и
3 (000000001) ООС "Автомапиа" 11 500,00 !_ 36^ 1 30,51
Е 5 Декабрь.2011 11 500,00 100,00 36,51
05 12.2011 1 000,00 8,70 3.17
11.12.2011 10 500,00 91,30 33,33 1
(000000004) ООО Химена ' . 10 000,< 31,75 31,75 К -1
Э Декабрь.2011 10 000 00 100,00 31,75
I1 09.12.2011 10 000,00 100 Л0 31,75
(000000007) ООС Хтипь" '. | 10 000,00• 31,75 31,75
(Т Декабрь.2011 10 000,00 100,00 31,75
06 2 2011 10 000,001 100,00 31,75
1о1а1 31 500,00 -100 иС
< Г __ ►
Рис. 3.119. Результат отчета в англоязычной среде
Выберем вариант отчета, представляющий динамику продаж в виде
диаграммы. Для этого нажмем кнопку 8е1ес1 уапап!... и выберем вариант
Оупагтпсз о18а1е8 (рис. 3.120).
Рис. 3.120. Вариант отчета «Динамика продаж» в англоязычной среде
Вызовем печать документа Сборка компьютера, для которого ранее мы создали
предопределенный макет и задали заголовки полей табличной части на
английском языке (рис. 3.121).
Ыотепс1а(иге Дгппип1 Рисе то1а1
1 Жесткий диск 1 4 000 4 000
2 Материнская плата 1 3 000 3 000
3 Память 1 2 000 2 000
4 Сборка компьютера 1 1 500 1 500
10600
Рис. 3.121. Печать документа, использующего предопределенный макет
в англоязычной среде
Поля
Автоматическое заполнение полей
В конструкторе схемы компоновки данных на закладке Наборы данных нахо-
дится флажок Автозаполнение, который позволяет управлять свойством набора
данных АвтоЗаполнениеДоступныхПолей (рис. 3.122).
Рис. 3.122. Автоматическое заполнение полей набора данных
При создании набора данных типа Запрос данный флажок установлен
по умолчанию. Свойство АвтоЗаполнениеДоступныхПолей указывает, что
система должна самостоятельно сформировать состав полей, доступных для
схемы компоновки данных, на основании текста запроса, содержащегося в
наборе данных.
Доступные поля — это те поля отчета, которыми оперирует схема компо-
новки. Они могут быть использованы в настройках отчета (сортировке,
отборе и др.), участвовать в группировках отчета, формировании вычисля-
емых полей и пр. Затем можно поставить флажок ограничения доступности у
поля на его участие в отображаемых полях отчета (колонка П... — недоступно
для выбора), создание условий (У... - недоступно как условие), группи-
ровке (Г... — недоступно для группировки), сортировке (У... - недоступно для
упорядочивания). И тогда данное поле не будет участвовать в этих настройках
(см. рис. 3.122).
При автоматическом заполнении полей наборов данных действуют следу-
ющие правила:
1. Все поля списка выборки запроса и их дочерние поля становятся доступ-
ными для настроек отчета: отбора, сортировки, выбора, группировки и т. п.
Заметим, что доступность поля будет определяться по его типу. Например,
поле неограниченной длины не может быть использовано в качестве поля
группировки.
2. Поля виртуальных таблиц, на которые можно наложить условия в параме-
трах этих таблиц, становятся доступными для отбора.
3. Параметры виртуальных таблиц становятся доступными параметрами.
Также становятся доступными все параметры, явно указанные в запросе.
Для примера рассмотрим отчет Отчет по продажам. Набор данных для него
получается с помощью следующего запроса (листинг 3.29).
Листинг 3.29. Текст запроса
В соответствии с первым правилом поля Контрагент, ПериодДень, ПериодМесяц,
Стоимость, Количество будут доступны для отбора, сортировки, группировки,
выбора (см. рис. 3.122).
Мы видим, что платформа автоматически заполнила колонки Поле, Путь
и Заголовок полей текущего набора данных исходя из псевдонимов полей
запроса:
в колонке Поле отображается нередактируемое значение имени поля,
которое платформа автоматически формирует из текста запроса. Это
внутреннее имя поля, использующееся только в тексте запроса;
в колонке Путь содержится строка, содержащая путь к данным, по кото-
рому к нему можно обратиться в других закладках конструктора схемы
компоновки данных. Оно может быть отредактировано. Имена полей,
описанные в этой колонке, появляются для разработчика на закладке
выбора полей в отчете, описания вычисляемых полей, полей группи-
ровки и др., поэтому разработчик может настроить их более понятными
для себя;
Заголовок содержит название поля, под которым поле будет фигурировать
в настройках отчета в режиме 1 С:Предприятие и в шапке отчета.
При этом свойства Поле и Путь доступных полей схемы компоновки данных
генерируются на языке, соответствующем варианту встроенного языка конфи-
гурации. Например, если установить в свойствах конфигурации свойство
Вариант встроенного языка в значение Английский, то доступные поля набора
данных примут следующий вид (рис. 3.123).
Основные:
И(
Синоним [Демонстрационная конфигурация "Система компоновкиданны'Д;Г
Комментарий!
Основной режим запуска
Вариант встроенного языка
Основная роль
Модуль управляемого приложения
Модуль сеанса
Модуль внешнего соединения
.«'у
[Оправляемое приложение
{Английский
Открыть
Открыть
Открыть
Допо/иительные словари полнотекстового поиск [
А “
Пуп
I ;Автозаголовок
=» МошЬРепой
«•' Количество! иг.
С -
Выражени,
Проверка иерарха
«»: Контрагент
I Ограничение поля ] Роль
-у...]
; Ограничение.рек ’
П— у..,! с. ‘У... Г г
Л -Г* Л
1 ОауРепоб ’ □ 1 С ' СЗ ; Период. 1. :
' О; Период, день > Д°п ..... .... —$ . . ..
' МопИтРегюб О 1_] О ; Период, 2,
[□ Период, месяц <-' V V-' ^оп
; Количество!игпоуег о □ о □
:О Количество Оборот лА* .
; Контрагент Ш' С □ О ' Измерение
Контрагент □ □ О- - 1
Выражения [Наборданный
упорядочи... :г. • - ' '
• Параметр
I
Рис. 3.123. Автоматическое заполнение полей набора данных
Для свойства Заголовок можно задать представление, соответствующее
языкам, определенным в конфигурации. Для этого нужно установить флажок
слева от заголовка поля и нажать кнопку открытия в данном поле.
В соответствии со вторым правилом поле Номенклатура хотя явно не присут-
ствует в запросе, будет доступно для отбора, так как на него можно наложить
отбор в параметрах виртуальной таблицы (рис. 3.124).
По! «метре- Отбор I Сф мрж*<* Усчсенпе . , Польэова^ }г Другие на
—
Цс ступные поля
I Представление
•*
А.
Количество
«® Контрагент
сха
ПериодДень
ПериодМесяц
Стоимость
П араметры Данных
.х
Рис. 3.124. Доступные поля для отбора в схеме компоновки данных
В соответствии с третьим правилом параметры Началопериода и КонецПе-
риода хотя они явно не указаны в запросе, попадут в доступные параметры
схемы компоновки данных, так как их можно указывать в виртуальной
таблице (рис. 3.125).
Цгчё~ ОтчетПоПр^дажамЛсноедаяГ^маКомгюноРи’ань Й ... ... . П X ,
ГЧ - г-П -Й^-пГ ЛИНГЙ ЙЧ-Л «Г 'Й-. 'лупи Г~<п-Г ' .ч» »-»»-«> ' ЯДсА/о^.4»^.^|ТЧ.|X»,Л|".^1 И>- эГцч'|^|ЬАЛм . Ь.-г'*-***’ !. {вгвГ,-гп^*Зв лп-'. гй а
| Наборы даймс Связи набей1*’ И Вым* ляе аде -. Ресурсы. Параметры Н Макеты Вложенные схе., Пакт зойки
I 0 В х 4 < ' |
Рис. 3.125. Доступные параметры в схеме компоновки данных
*
4
I ♦ I
$1
При этом имена доступных параметров схемы компоновки данных генериру-
ются на языке, соответствующем варианту встроенного языка конфигурации.
Проиллюстрируем эти два правила на примере. В конструкторе запроса
схемы компоновки данных Отчета по продажам вызовем диалог параметров
виртуальной таблицы. В этом диалоге мы увидим параметры Началопе-
риода и КонецПериода, которые становятся доступны при автозаполнении.
Вызовем диалог для создания условия виртуальной таблицы. В этом диалоге
мы увидим поля Контрагент и Номенклатура, которые становятся доступны для
отбора при автозаполнении. То есть если бы поле Контрагент не было указано
в выбранных полях запроса и не попало бы в список доступных полей в соот-
ветствии с первым правилом автозаполнения, то оно стало бы доступно для
отбора в соответствии со вторым правилом (рис. 3.126).
1’1-лчГ*-' * .с _ “ «Ч-, 'Ж '--'-V,- 1>. ---О —
аблицыиполя Груп Iров-. *я Дсп- тельно
Бем дан» ьх
@ 0В Справочники
,»
Запрос
<5
Г)* лпр-К-.г
Поля
|<71!
ПроИч.в».1Ья *е ыражение
Поле
Процакйй>$' тыП$Р*«лШ «•'
Фук ним ч иорп ол
« ПрадажЛбороты ПериодМесяц
1_ ПродажкЮборотыКантрагент
1$ ПродажиОбороты.КоличествоОборот
> ПродажиОборагыСтоимостьОборот
Г
Отмене Л Справке
Т- л. _*Г ' _ _>
Рис. 3.126. Поля и параметры виртуальной таблицы в конструкторе запроса
1-* Номенклатура
Если в запросе в виртуальной таблице указаны имена параметров, то доступны
будут параметры именно с указанными именами (листинг 3.30).
Листинг 3.30. Текст запроса
ВЫБРАТЬ
ПродажиОбороты.ПериодДень,
ПродажиОбороты.ПериодМесяц,
ПродажиОбороты Контрагент,
ПродажиОбороты.КоличествоОборот КАК Количество,
ПродажОбороть'.СтоимостьОборот КАК Стоимость
ИЗ
РегистрНакопления Лродажи.Обороты({&Начало}, {&Конец}, Авто,) КАК ПродажиОбороты
При автозаполнении полей на основе приведенного выше запроса доступ-
ными будут параметры Начало и Конец вместо НачалоПериода и КонецПериода
(рис. 3.127).
Наборы данных Связи наборов Вычисляемые . д Ресурсы ] | Параметры Пакеты <есхрк й Ц^эстроРкы
У В х
|Имя ' Заголовок Тип Доступные.. Д Значение Выражение ' Параметр 1 .. В.. 0 3... • Использо Д Пара1
/Конец ... Ш ЙО^о
Умчало / Начало ‘ Дата :о ' ®1С □ Авто
|.^ .... —•*“1 1 ^1] | ►
Рис. 3.127. Доступные параметры в схеме компоновки данных
Если в запросе указано и выражение параметра (& Начало), и параметр
компоновки данных ({&НачалоПериода}), то значение параметра компо-
новки данных используется, если значение данного параметра установлено
в настройках компоновки. В противном случае в качестве значения параметра
используется результат выражения, указанного в параметре виртуальной
таблицы (листинг 3.31).
Листинг 3.31. Текст запроса
ВЫБРАТЬ
ПродажиОбороты.ПериодДень,
ПродажиОбороты.ПериодМесяц,
ПродажиОбороты.Контрагент,
ПрсдажиОбороты.КоличествоОборот КАК Количество,
ПродажиОбороты.СтоимостьОборот КАК Стоимость
ИЗ
РегистрНакопления.Продажи.Обороты(&Начало {&НачалоПериода}, {&КонецПериода}, Авто,)
КАК ПродажиОбороты
В этом примере, если в настройках установлено значение параметра Нача-
лопериода, будет использоваться его значение. В противном случае
в сгенерированном тексте запроса останется исходное выражение, т.е.
& Начало, и в качестве значения параметра виртуальной таблицы будет
использоваться значение этого параметра (рис. 3.128).
Н аборы данный Сряяи наборов
Вычы ля* мые
Ресурсы
Параметры Макеты
Настройки
Рис. 3.128. Доступные параметры в схеме компоновки данных
Вложенные схе..
Все параметры, явно указанные в запросе, также становятся доступными
(листинг 3.32).
Листинг 3.32. Текст запроса
ИЙКРАТЬ
СобранныеСБ.СБ КАК СистемныйБлок,
СобранныеСБ.Количество,
СобранныеСБ.Стоимость,
СобранныеСБ.Мастер,
СобранныеСБ.Регистоатор
°егястрНакопления.СобранныеСБ КАК СобранныеСБ
ОобранныеСБ Видцвижения - &ВидДвижения
ИСобранныеСБ.Период &НачалоПериода
И СобранныеСБ.Период <= &КонецПериода
На основе приведенного выше запроса доступными будут параметры Нача-
лопериода, КонецПериода и ВидДвижения (рис. 3.129).
Набор* данных Связи наборов. Вычисляемые ’ ’есурсы 11араметрь Макеты В гаженные схе.. Настройки
СШ ж < <
ИМЯ Заголовок ; Тип Доступ... П Знамение Вьцгже.. . Параг. В.. :0. 13... Ислол...
. 'ВидДвижения КонецПериода Выдвижения Конец периода । Сктемные леречис:>з‘ия:... Приход ' ’□ |Авто ' Авто
Д д< зга : '□ —»——,
\1ачалоПериода Начало периода^ / эта ; ;□ , К : @ ; О ; Авто
Н
* Л». ►
Рис. 3.129. Доступные параметры в схеме компоновки данных
Использование автополей
При разработке отчетов система компоновки данных генерирует Автополе для
списка выбранных полей и списка сортировки группировок. При формиро-
вании отчета Автополе будет преобразовано в набор полей группировки.
Формирование набора автополей группировки происходит следующим
образом. Берутся используемые выбранные поля со следующими условиями:
доступны для использования в полях группировки,
не являются реквизитами других выбранных полей,
не являются реквизитами существующих полей группировки.
Если поле уже включено в набор автополя группировки, повторно оно не
добавляется.
Автополе можно использовать как есть, а можно раскрыть, чтобы посмо-
треть, какие поля система туда включила, и при желании их изменить. Чтобы
раскрыть список Автополя, нужно выделить его, вызвать его контекстное
меню и выбрать пункт Развернуть.
Для примера рассмотрим отчет Остатки номенклатуры. В схеме компоновки
данных отчета выделим настройки варианта Оформление, перейдем в режим
настроек группировки Детальные записи и развернем список Автополя,
выполнив пункт контекстного меню Развернуть (рис. 3.130).
Другие настр..
и-,» . ТГ.ЯЧ-—П-»»»
Поля груплир... Выбранные по... I Отбор Сортировка Условное сфа.
Поле
Доступные поля
Ь1 Выбранные поля
4
Л
л
и
&
Новое поле
Новая группа
Новое авто поле
Изменил ь
Скопировать
Удалить
Переместить ааепк
Переместить енчз
Сеснствз элемента пользой гл ельск«
Установить заголовок
Сгруппировать поля
Склад
КоличествоКонечнь йОстагок
КоличествоНачальныйОстаток
КоличествоПриход
КоличествоРасход
СистемныеПоля
ПараметрыДанных
Рис. 3.130. Раскрытие списка полей автополя
Разг ротировать
Развернуъ
Мы видим здесь поля, выбранные для отображения в отчете (рис. 3.131).
Г Отчет ОстаткиНоменклатуры: ОсновнаяСхемаКомпоновкиДанных
На 5рры данных Связи набор ов
Ресурсы I Парамет ы Макеты Вложенные схе Настройки ( 1
Вычисляемые
''1мя вариа... Прадставл...
’ Основной Основной
мтлйние
Оформление
@взз Склад
Й®00 Номенклатура
Детальные ‘
Настрой^ Отчет ^Детальные записн>
Поля । пли о... Выбранные по...
Сцляровка Условное офо.. Другие настро..
Доступные полг
*4;
Ньмт.лвгур ч
Склад
* 11
Э:- С1
КоличествоКонечныйО<]
КоличествоН) чальн >й1
КоличествоПриход
КоличествоРасход
СистемныеПоля !
ЕГРЭИЗЁЙ
Поле
& Выбранные поля
’Й:
й.
Л.
Нтоенклч
» КоличествоКонечныйОстаток
Склад
КоличествоНачальныйОстагток
КоличествоПриход
КоличествоРасход
И
0
X
ь
Рис. 3.131. Список полей, содержащихся в автополе для детальных записей
Выделим настройки варианта Основной, перейдем в режим настроек группи-
ровки Номенклатура таблицы отчета и развернем список Автополя. В Автополе
группировки помещается само поле группировки Номенклатура, плюс
выбранные поля отчета. Поэтому поле группировки не обязательно поме-
щать в список выбранных полей, но если оно там есть, то при формировании
отчета оно не дублируется (рис. 3.132).
Рис. 3.132. Список полей, содержащихся в автополе для группировки таблицы
Откроем схему компоновки данных отчета Остатки номенклатуры по периодам.
Выделим настройки варианта Движение номенклатуры, перейдем в режим
настроек диаграммы отчета и развернем список Автополя. Мы видим, что
в нем содержится список ресурсов отчета (рис. 3.133).
Рис. 3.133. Список полей, содержащихся в автополе для диаграммы
Перейдем в режим настроек группировки Склад диаграммы отчета
и развернем список Автополя. Здесь присутствует только само поле группи-
ровки (рис. 3.134).
I. Наборы 0-1ННЫХ ". С.вм?« ноЗорое ". чир чв.,ые
Параметры Макеты
Впвжённые схе... >« Настройки
• Ик®вариа... дПредставл.
! Основной ; Основной
Яса»
Диаграмма
& Точки
0“° Номенклатура
в Серии
И023
Настройки: Отчет 1Склад
Поля г( уг ( Выбранные по...
, Домченас о.
I Доступные .поля
| ® с» ВидНоменклатуры
{ @ яя Номенкл^'оа
Поле
Выбранные поля
См15Д
I Ф
| й?
I
I ®
Регистратор
Склад
КонечныйОстаток
НачальныйОстеток
Приход
Расход
*>
IX
♦
' №
1
I
$
&
3
ЧЯЯФЧ
Рис. 3.134. Список полей, содержащихся в автополе для группировки диаграммы
Рассмотрим использование автополей при сортировке записей группировки
отчета. Записи в группировке по умолчанию сортируются по возрастанию
значений поля группировки. Выделим настройки варианта Основной,
перейдем в режим настроек группировки Номенклатура на закладку Сорти-
ровка и развернем список Автополя (рис. 3.135).
_.йвам5._.-
1й.:,х
С числяемые ^.Ресурсы м 'Параметры Макет*
Б^жёйные/схе -*’' Настройки 1
Имя варио Предотаел..
| Основной
| Движение... < Движение.
Ш Отчет
в Склад
|^сэ <Детальные записи>
ж
Настройки Отчет Ьдайнкпагура
Поля гругпи;'-о.,:
выбранные
1 { Сортировка р ^сйзвнвёофс. Другие настрой.
ДОСТУПНЫ© ЛОЛ!
! &
I
|
с®
ейй
СВИ
РЗИ
1
<8
Номенклатура
ПериодСекуеда
Регистратор
Склад
Конечны® стагок
НачальныйОстаток
Приход
Расход
Пол&
Йемен а
Направление сортировки
П| возрастанию
0
1
I
I
I
{
Рис. 3.135. Список полей, содержащихся в автополе для группировки таблицы
Переопределение представления полей
В системе компоновки данных реализована возможность получения представ-
ления полей набора данных из синонимов полей запроса. Если синоним для
поля не указан, то используется путь к данным поля. Но, кроме того, система
компоновки данных предоставляет возможность переопределения представ-
ления для полей набора данных.
Для переопределения представления поля в конструкторе схемы компоновки
данных на закладке Наборы данных следует ввести соответствующее выра-
жение в колонку Представление для поля набора данных или вычисляемого
поля (рис. 3.136).
Поле Путь । Ограничение поля ! Роль
1 ’4
} 1 "1 1: \ Заголовок 1 ; Па..; Ус...: Гр... Ул.. • Ограничение реквиз.. ). . „ - - у- А-.- - -3 .4
* у По... Ус... ГГр;;а ; Уп._
«» ПериодДень ПериодДень О □ о □ Период, 1,
0 Период, день V. ! Доп
—
««; ПериодМесяц ПериодМесяц : □ □ □ □ ; Период, 2,
@ Период, месяц Доп
«»! Контрагент Контрагент Го сн □ □ ; Измерение
! ®»; Номенклатура @ Контрагент • Номенклатура 0 Номенклатура \ □ □ о б • о 1
Быраг.ение представления
Выражения упорядочивания
"Г'+Крнтрсг знт ,,од+‘] '
’+КгЙг енг Наима
Рис. 3.136. Выражение представления для поля «Контрагент»
Если выражение представления установлено, то в результат отчета будет
выводиться не основное представление поля, а результат этого выражения.
Для примера рассмотрим отчет Отчет по продажам. В схеме компоновки
данных отчета для поля Контрагент в колонке Выражение представления
указано следующее выражение (листинг 3.33).
Листинг 3.33. Выражение для представления в отчете поля «Контрагент»
”(”+Кон1р:агечт Код*") ’+Контоагент.Наименование
В результате выполнения отчета код контрагента будет отражаться в скобках
слева от его наименования (рис. 3.137).
В выражении для представления можно также использовать функции из
общих модулей. Чтобы функцию можно было использовать в схеме компо-
новки данных, необходимо чтобы в ее описании присутствовало ключевое
слово Экспорт. Например, в общем модуле ФункцииДляОтчетов есть функция
Пре дставлениеРегистратора (Номер, Дата), листинг 3.34.
Тогда в выражении представления для поля можно воспользоваться следу-
ющим выражением (листинг 3.35).
, * <1
Отчет по продажам
Вариант отчета: [Основной
Л I
Г
Все действия ’ | ?
‘л
. Прошлый квартал
Пераметрг Период: 01.10.2011 - 31.12.2011
Сформ.:рп лп Настройка...
@ ' <ТГ| Период
Конграген Пьриод, месяц Не ИОд ень Стоимость Стоимость, в группировке Стоимость*^ общий
(000000001} ^ое-йьт^агякь' , 115000» 36,51
—п? Декабрь.2011 11 500,00 . 100.00 ’6.51
05.12.2011 1 000,00 8,?0 3,17]
и 11.12.2011 „ 10 500,00 91,30 33,33(
я < 1М 000,00 ' 31
1 Декабр, .2011 10000,06 100,00 31.75
Н 09 1 2 2011 10 000.00 100,00 ~3175’
я (оошлеоб 000 *4:®™»" КООв.06 ’ л ‘ > 31,Й с*#»
Декабрь.2011 «0 000,00 100,00 31,75*
> 1 I 1 <4 I.. 0612.2011 10 000 00 100,00] 31,751
И10ГЯ ^315000
.1
1
Рис. 3.137. Результат отчета
Листинг 3.34. Функция общего модуля
Функция Представлен1^Рр<истрагора(Но?лер,Дата) Экспорт
4 * уууу”)с
КонецФуьжц и
Листинг 3.35. Выражение для представления поля
с использованием функции общего модуля
ФункцииДляОтчетовПрелставлениеРегистратора(Регистратор.Номер, Регистратор,Дата)
Если модуль - глобальный, то имя модуля (ФункцииДляОтчетов) перед именем
функции можно не указывать.
В результате выполнения отчета поле регистратора будет отражено в следу-
ющем виде (рис. 3.138).
Рис. 3.138. Результат отчета
Необходимо учитывать, что если компоновка данных выполняется при
помощи стандартных средств объекта Отчет, то использование внешних
функций разрешено. Если же компоновка данных осуществляется при
помощи объектов системы компоновки данных, то для того чтобы разре-
шить использование внешних функций, необходимо в качестве значения
параметра ВозможностьИспользованияВнешнихФункций метода Инициали-
зировать () объекта ПроцессорКомпоновкиДанных передать значение
Истина. В противном случае использовать внешние функции будет невоз-
можно (листинг 3.36).
Листинг 3.36. Пример инициализации процессора компоновки данных
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки. Инициализировать(МакетКомпоновкиДанных,, ДанныеРасшифровки, Истина);
Вычисляемые поля
При разработке отчетов не всегда хватает полей, определенных в наборе
данных. Довольно часто бывает нужно отразить какие-то другие поля,
которые рассчитываются на основе имеющихся по определенному алго-
ритму. Например, требуется рассчитать выручку как разницу между доходами
и расходами и т. п.
Для этого в системе компоновки данных есть возможность определения
вычисляемого поля. Вычисляемые поля представляют собой дополнительные
поля схемы компоновки данных, значения которых будут вычисляться по неко-
торой формуле. В настройках компоновки данных вычисляемое поле будет
фигурировать под именем, указанным в пути к данным этого поля. Пользо-
ватель сможет работать с вычисляемым полем точно так же, как и с полем
набора данных.
Для того чтобы система смогла получить значение вычисляемого поля, необ-
ходимо указать выражение вычисляемого поля. Оно описывается на языке
выражений компоновки данных. В выражениях вычисляемого поля есть
ограничение: в нем нельзя использовать вычисляемые поля. В остальном
ограничений нет: можно использовать все синтаксические конструкции языка
выражений, можно использовать поля наборов данных, а также функции
общих модулей конфигурации, описанные с ключевым словом Экспорт.
Для вычисляемого поля можно определить заголовок, ограничение доступ-
ности, выражение представления, выражения упорядочивания, тип значения,
доступные значения и оформление так же, как для полей наборов данных.
Кроме того, вычисляемое поле может быть определено как ресурс. Для этого
необходимо добавить данное поле в список ресурсов и указать выражение, по
которому будет вычисляться итог.
Для примера рассмотрим отчет Отчет по системным блокам. В схеме компо-
новки данных отчета на закладке Вычисляемые поля находится вычисляемое
поле Прибыль. Выражение для его расчета указано в колонке Выражение
(листинг 3.37).
Листинг 3.37. Выражение для расчета вычисляемого поля «Прибыль»
Заголовок вычисляемого поля, который будет отображаться в шапке отчета,
задается по умолчанию, но можно его изменить или задать его в случае
использования в конфигурации нескольких языков (рис. 3.139).
Рис. 3.139. Описание вычисляемого поля
Вычисляемое поле можно добавить в ресурсы отчета, чтобы вычислять
по нему групповые и общие итоги (рис. 3.140).
Т Г1^^еЖ*А««емнн^^а“ Йейс^‘^^5^чйКйнпг««Ч!МЙячнь« . .., Х"^’? .' ... ,.*-^» . <* .>я:Й?л
’-4Чн*Л-Д^*М<<5»*5ИЛМ»^ '- -кдему'*41**-й-ЯД^п-Л^----им^-«ЬЦ4*Ц*лАт^гЛ *—* ь. и у, ^ао-л!»— \ц*а»^п«й®А44*^«-.А^.!-Л>.-
,.. Н{^{ЫПанныг.' ,'Ъзтйм нёборёв., ЙЛйляемьв^^ • Ресурсы {.-Параметры. НвкетЬт- &й4»“нньйодв1 Настройки
Псетчгяыё1’ю,п
I ** КоличествоПриход
< *“ КоличествоРасход
> •.
! = Конечв 1'1Г га.с
' “ НачальныйОстаток
; «“ СистемныйБлок
11 “ Склад
) чо СтоимостьПриход
’ «* СтоимостьРасход
ь_____________________
вч.^еии5«аЯвеаянгаа1й®^«би^?****та^ •ччдаийъмЛЕйэ^ати***?®* . в.»е"'МС1|эа« ийгемаичг".и«, я "«етл^иикна^^ааеааеща^
(Поле
_ “" КонечньООстаток
‘ » НачальныйОстаток
! “ КоличествоПриход
! «» КоличествоРасход
-&&№ < ни СтоимостьПриход
' = СтоимостьРасход
6ыг“»«ение - Рассчитыватьта.
. '- "-—<- Д5.-.= - !д<-"-.- -•- : - »с лчи*-^йа.--^-, ' |&<’
Сум/а^снсчныйОстаток)
Сумма(НачальньйОстаток)
, Сумма(КоличествоПриход)
I Сумма(КоличествоРасход)
. Сумма(СтоимосгьПрикод)
: Сумма(СтоимостьРасход)
| Сумма(Прибыль]
1
3
I
»
<
Рис. 3.140. Добавление вычисляемого поля в ресурсы отчета
В результате выполнения отчета в поле Прибыль будет отражаться прибыль
от продажи собранных системных блоков, то есть разница между его
продажной стоимостью и стоимостью комплектующих и услуг, израсходо-
ванных на сборку компьютера (рис. 3.141).
> Продажа системных блоков
!
Параметры: Начало периода- 01.12.2011
! Конец периода 31.12.2011
(
Склад Копичестрс Чопичес.тсс Конечный ! тоиноги Стоимость ; л
№> Системньл блок Приход Расход остаток Приход Расход' Зибший
П/П ., _,_Г ~~ ' Л? л ’
Основной ...,Т.Г... 2____ 2^“ 17 500,00 ’ 20 000,00 2500,00. 100,00
1. Компьютер|ДЛЯ дома 1; _____1; _ ! ЭООО^ю: 1')000,б0; 1 000/16 40,00
2‘ Компьютер для офиса : 1' 1 Г 8500/|6; 10 000,00. 1500/10' 60,00:
Итого Х / у: " 'Г20<юа<п'м''2 50000 100,Ж
Рис. 3.141. Результат отчета
Однако не всегда простым суммированием можно получить правильные
итоги по вычисляемому полю. В таких случаях требуется задать собственное
выражение для расчета ресурса. Как, например, в схеме компоновки данных
АнализЦенКомплектующих для поля Выручка (рис. 3.142).
* Дакуме « I « тнЙ|^К<»адяедтд»нцж
,.Наборь1 данный-. к. Свяэй наборов
сил
о»
Ресурсы } С. Йфамегры.
Мак^лй' 3 ё БтадЙйые схе..,
Поле
Рассчитывать по ...
Дп, тупные поля
Номенклатура
1=8 Собрано
°® Поступило
533 ЦенаПриход
ЦенаСборки
Поступило
Собрано
ЦенаПриход
ЦенаСборки
Рис. 3.142. Расчет итога для вычисляемого поля
Выражение
СреднееЩ енаП риход)
СреднееЩ енаСборки)
'Сумма[Собрано)(СреднееЩ енаСборки) -
Ореднее(ЦенаПриход))
Сумма(Собрано)
СуммаПоступило)
Суммарная выручка будет получена как произведение количества ушедших
в сборку комплектующих на разницу средних цен сборки и поступления
по каждому из них. В этом случае нужно задать следующее выражение для
расчета ресурса Выручка (листинг 3.38).
Листинг 3.38. Выражение для расчета ресурса «Выручка»
Сумма(Собрачо) * (Средиее(Це.чэСбсрки) - Среднее(ЦеиаПр1/ход))
В выражении вычисляемого поля можно также использовать функции из
общих модулей. Чтобы функцию можно было использовать в схеме компо-
новки данных, необходимо чтобы в ее описании присутствовало ключевое
слово Экспорт. Например, в общем модуле ФункцииДляОтчетов есть
функция ВВерхнийРегистр (Строка) (листинг 3.39).
Листинг 3.39. Функция общего модуля
Тогда в выражении вычисляемого поля можно воспользоваться следующим
выражением (листинг 3.40).
Листинг 3.40. Выражение вычисляемого поля
с использованием функции общего модуля
ФункцииДляОтчетов.ЬВерхнийРегистр(^ ^именование)
В результате описание вычисляемого поля в схеме компоновки данных
примет вид (рис. 3.143).
Отчет ЭДфяаииеЫс. I1. .ачпоедмичДя * .... ЕЗ .X:
* ^абсрыданнык Свя наборов...., -I I Вычисляемые... < Ресурсы ( . Параметры ; I Макеты ’ I Вл ж чме еда.... ?< Настройки „
3 м
'Путь к | Выражение | Заголовок . Ограничение дос. Выр.. {Выр... <Тмп ' Дост...:’Офо,. |
! данным; - ' пред.,.4 улоо . |знач.., ! 5нач... ‘ ~ 1 •'
1 ,П.,.., У... Г. -У > . | =Пара„.
; ИМЯ
'ункцииДляОтчетов.ВВеркнийРегистр(Наименование)
;Наи, озание
...-I
.«Л“ -1 . «здй!-'’рруяр" -вяК55ЯГ— ™-хт-—"ээ- г.™?*- 'таЁГ.ге-~аг,ка.*-''"^Т'49|,"""ву
Рис. 3.143. Выражение для расчета вычисляемого поля
В результате выполнения отчета Оказание услуг название услуг будет выве-
дено в следующем виде (рис. 3.144).
Список услуг
Нлименэванле
000000014 _ РЕМОНТ КОМПЬЮТЕРА _
000000016' 1в0ССТА'Н0ВЛЕНИЕДДННЬ1Х~'! I
000000015" [С0ПЭТСТВУ10ЩЙЁ УСЛУГЙ ~ '
ООООООООТТДдЙАтОСТЙКА КОМПЬЮТЕРА ] ?
000000006 2 [сб6₽ка компьютёра " ' ];
Рис. 3.144. Результат отчета
Пользовательские поля
Система компоновки данных позволяет определять в отчете Пользовательские
поля, используя либо собственные выражения, либо наборы вариантов с усло-
виями их выбора. Пользовательские поля являются аналогом вычисляемых
полей, но в упрощенном варианте. Они могут задаваться как в конфигура-
торе, так и в режиме 1 С:Предприятие, но в выражениях пользовательских
полей нельзя использовать функции общих модулей. Поэтому пользователь-
ские поля предназначены скорее для пользователя, чем для разработчика.
Для примера рассмотрим отчет Оказание услуг. Откроем закладку Настройки
схемы компоновки данных отчета. На закладке Пользовательские поля нахо-
дятся два пользовательских поля. Рассмотрим пользовательское поле-выбор
В составе сборки. Чтобы его создать, нужно нажать кнопку Добавить справа
от списка пользовательских полей и выбрать команду Новое поле выбор...
Затем нужно задать заголовок поля и создать условия отбора для различных
вариантов его представления (рис. 3.145).
Рис. 3.145. Описание пользовательского поля выбора
Рассмотрим пользовательское поле-выражение Популярная услуга. Чтобы
его создать, нужно нажать кнопку Добавить справа от списка пользователь-
ских полей и выбрать команду Новое поле выражение... Затем нужно задать
заголовок поля и выражение на языке выражений компоновки данных для
отображения детальных и итоговых записей (листинг 3.41).
Листинг 3.41. Выражение детальных записей
для пользовательского поля-выражения «Популярная услуга»
Когда Нименование = "Ремонт компьютера" Или Код * "000000007'
Тогда "да”
Иначе "нет’’
Коне
•й
В данном примере поле Выражение итоговых записей не заполнено, так как
в отчет выводятся только детальные записи.
В результате окно пользовательского поля-выражения примет вид (рис. 3.146).
-•ско-.юле
Заголовок:
р^ярг^я-дслоп
Выражение детальных записей:
г—-------—-~---------------——-------—*—-------—-----—--------,
(Выбор । ..
। Когда Наименование = 'Ремонт компьютера" Или Код = ; г
("000000007" !
• Тогда “да" ! ;
{ Иначе "нет" I :
•Конец ।II
Выражение итоговых записей:
Рис. 3.146. Описание пользовательского поля-выражения
Включим использование пользовательских полей Популярная услуга
и В составе сборки в список выбранных полей отчета, отключим исполь-
зование вложенного отчета ПродажиНоменклатуры и выполним отчет (рис.
3.147).
Рис. 3.147. Результат отчета
Мы видим, что пользовательские поля в отчете отражаются в соответствии
с условиями их представления.
При использовании пользовательских полей из встроенного языка необ-
ходимо учитывать, что заполнение свойства Путь к данным для нового
пользовательского поля в системе компоновки данных выполняется в соот-
ветствии с установленным в конфигурации вариантом встроенного языка.
В английском варианте встроенного языка путь к данным выглядит как
11зегЕ1е1с18.Е±е1д<П>, в русском — как ПользовательскиеПо-
ля.Поле<Н>, где <№> - уникальный номер поля.
Использование полей-характеристик
Пользовательские поля можно также использовать в режиме 1 С:Предприятие,
чтобы вывести в отчете итог по полю-характеристике. Для этого не подходят
вычисляемые поля, так как, пока не выполнен запрос для формирования
отчета, разработчик не может использовать в схеме компоновки данных поля
характеристик. Пользователь же в режиме 1 С:Предприятие, получив отчет
с полями характеристик, может создать собственное пользовательское поле,
отражающее итог по полю-характеристике, и вывести его.
Например, для справочника Товары определена характеристика Масса.
В отчете Остатки товаров для каждого товара выводится его остаток (поле
КоличествоОстаток) и масса (поле характеристики Товар.Масса). Добавим
в вариант отчета пользовательское поле Масса остатка, в котором вычислим
количество остатка, умноженное на массу товара.
Для этого откроем форму варианта при помощи команды Все действия ► Изме-
нить вариант..., переключимся на закладку Пользовательские поля, добавим
новое поле-выражение и введем имя поля и выражения, по которым будет
вычисляться это поле.
При этом в поле ввода Выражение детальных записей укажем выражение,
результат вычисления которого будет выводиться в детальных записях
отчета (если они выводятся в отчет), а в поле ввода Выражение итоговых
записей укажем выражение, результат вычисления которого будет выводиться
в итоговых записях по группировкам и в общем итоге (рис. 3.148).
Р₽ (акт _<ров -“ие псльзсват эль же ., ПРШредфияшС
I , ‘
Редактирование пользовате льског о
Заголовок:
{Масса остатка
ч
Выражение детальный записей:
| {[Количество Остаток] “ [Товар.Масса]
Г
Выражение итоговых записей:
Сумма([Количество Остаток] * [Т овар.Масса]]
Т
И
ОК | Отмена @
Рис. 3.148. Добавление пользовательского поля выражения
В нашем случае в детальных записях мы будем использовать количество,
умноженное на массу, а в итоговых записях - сумму от количества, умножен-
ного на массу (листинги 3.42, 3.43).
Листинг 3.42. Выражение детальных записей
4КогичествоОстаток] *(Товар:Масса]
Листинг 3.43. Выражение итоговых записей
После добавления пользовательского поля в отчет получим следующий
результат (рис. 3.149).
-чг Штаткитовароекрнфигда ® .- -СЗ
_ Остатки товаров
[ Вариант отчета [Остатки товаров с характеристиками ! ! Выбрать вариант... .
* Ф0,'миул<»-‘Ь ! Настройка... Все действия ^7?
Выбранив» юля ГО И " и.10ВаР' Количество Остаток, Товар.Масса. Масса остзтк^ Х‘
Товар . ’ й Товар.Масса Количество Остаток Масса остатка $
Босонож :и 500 11,00 5 500.1
Ботинки 1 200 5,00 6 000’
Валекжи 700 22,00 15 400;
Пинетки 300 4,00 1 200'
Сапоги 2100 15,00 31 500
Сланим 200 1,00 200
Тапочки зоб1 ..... 12₽0 3600
т/фли 460 3,00 1 380
ИТОГ! шг -.4^4 73,00 64 780
Рис. 3.149. Результат отчета
Роли полей
В системе компоновки данных можно задать роль для каждого поля набора
данных. Роль поля указывает, каким образом следует интерпретировать поле
при компоновке отчета. Некоторые свойства роли платформа задает автомати-
чески. Для их редактирования в конструкторе схемы компоновки данных на
закладке Наборы данных следует нажать кнопку выбора в поле Роль нужного
поля набора данных (рис. 3.150).
Рис. 3.150. Редактирование роли поля
Роль поля содержит следующие свойства:
и Без роли - роль у поля отсутствует;
Период - число, содержащее номер периода в случае, если поле явля-
ется полем-периодом. Значение 0 означает, что данное поле периодом
не является. Самый младший период должен иметь номер 1. Его роди-
тельский период - 2 и т. д. Например, для запроса, получающего данные
из виртуальной таблицы Остатки и обороты, поле Период должно иметь
номер периода - 3, поле Регистратор - 2, поле НомерСтроки - 1. На осно-
вании данной информации платформа будет рассчитывать итоги по полям
остатка;
Дополнительный - признак того, что данное поле-период не является
обязательным. Установка данного признака говорит о том, что поле
не обязательно должно использоваться в компоновке в том случае, когда
в отчете использованы его дочерние периоды. В противном случае
использование дочернего поля-периода говорит о необходимости исполь-
зования в группировке и данного поля;
и Измерение - признак того, что поле является измерением. Информация
о том, что поле является измерением, используется при расчете итогов по
полям остатка;
Родитель - в данном поле можно указать родительское измерение.
Например, это необходимо сделать для корректного расчета остатков по
реквизитам измерения;
Счет - признак того, что поле является полем счета. Данная информация
используется при расчете итогов по полям бухгалтерских остатков;
Вид - строка, содержащая выражение, при помощи которого будет
получаться вид счета. Результатом выражения должно быть значение
перечисления ВидСчета (Активный, Пассивный, Активно/Пассивный) либо
число. Значение числа 0 соответствует активному счету, 1 - пассивному,
2 - активно-пассивному. Выражение записывается на языке выражений
системы компоновки данных. Данная информация используется при
расчете по полям бухгалтерских остатков;
Остатки - признак того, что поле является полем остатка;
Имя - строка, содержащая имя группы полей остатка. Например, "Сумма",
"Количество". Парные поля остатка должны иметь одинаковое имя группы
полей остатка. Не парные остатки должны иметь различные имена групп
полей остатка;
Тип — тип остатка (НачальныйОстаток, КонечныйОстаток, Нет (поле не явля-
ется остатком));
Бух. тип — тип бухгалтерского остатка (Дебет, Кредит, Нет (поле не является
бухгалтерским остатком));
Поле счета - имя поля-счета, для которого рассчитываются остатки;
Игнорировать значения М1Л_1_ - признак того, что в результат не нужно вклю-
чать групповые записи по данному полю, если поле содержит значение
1ТОЬЬ;
и Обязательное -указывает необходимость обязательного добавления данного
поля в набор данных макета компоновки данных, если в настройках
используется хотя бы одно поле из набора данных. Необходимо помнить,
что система компоновки данных исключает из результирующего запроса
поля, не участвующие в настройках отчета. В некоторых случаях это
может приводить к ошибкам. Пример использования обязательных полей
в отчете рассматривается на стр. 255.
При включенном свойстве Автозаполнение (стр. 346) платформа, как правило,
самостоятельно заполняет роли полей на основании информации из запроса.
Для полей, являющихся измерениями регистров, платформа заполняет свой-
ство роли полей Измерение. А также у полей-периодов платформа заполняет
свойство роли Период и Дополнительный.
Иногда разработчику требуется самому установить нужные роли, например,
в случае получения данных из объектов встроенного языка. Также для
получения правильных остатков важно проверить и при необходимости
откорректировать роли полей-остатка, полей-периодов, полей-измерений
и полей-реквизитов измерений. Пример использования роли полей для полу-
чения остатков рассматривается на стр. 320.
Поля-реквизиты
Иногда исходные данные для отчета получаются плоским списком, однако
некоторые поля по сути являются реквизитами других полей. В таком случае
необходимо доработать набор данных так, чтобы система компоновки воспри-
нимала некоторое поле как реквизит другого поля. Рассмотрим пример.
Допустим, есть набор данных - объект, в котором имеются поля Контрагент,
Телефон, Адрес, ОбъемПродаж (рис. 3.151).
ОтчетСлиоокКоитрагенго. о< новнаяГ;^ ^омтн1новкмДаннын . .. ч X
Наборы да ’ _ Связи наб.. Вычисляв.. Ресурсы Параметры Макеты Вложенны Настройки
• !
1’ Х .....
’* Наборы данных
Поля'
Пола
Пут»
'аголовок
I Ограничение поля .; Роль
П У... Г. У./
' 0» ранимение рек..^
Выражение п.
Выражения
< упорядочивай..
Контрагент
“ Телефон
Адрес
’ ОбъемПродаж
Контрагент
Контрагент
Телефон
Телефон
Адрес
Адрес
ОбъемПродаж
Объем продаж
П... У Г
-
У-
□
□
3
С
□
о
□
О
4
Имя объекта, содержащего данные Контрагенты
Рис. 3.151. Описание полей набора данных
Доступные поля для такого отчета будут выглядеть как обычные поля набора
данных (рис. 3.152).
। 1 Достугмье гюля
=• Контрагент
<“> ОбъемПродаж
“ Т елефон
СистемныеПоля
Поле
Сортировка Условное^
Рис. 3.152. Доступные поля отчета
Допустим, нужно, чтобы поля Телефон и Адрес система компоновки данных
считала реквизитами поля Контрагент. Для этого в описании полей набора
данных для поля Телефон укажем в качестве пути к данным путь Контрагент.
Телефон, а для поля Адрес - Контрагент.Адрес (рис. 3.153).
?’. Отч"т СписокКс№р<женг<ге 1н?«еиа<1СиемаК.омпено»,гмДемиыь
Д&-Г- И" > I --- . « —- “ —*—-—" • —~
Наборы да...
Связи наб
Ресурсы Параметры Накаты
Влохенны
Наст )й<и
6 Наборы данных
«*
1<» й* Йй х
Ограничение поля Роль Вираже ие и ||
П I У . Г.. У |
Ограничение рек...
г у
П.. У...!Г.. 'У..
Вьч <сляе.
««Адрес
ОбъемПродаж ОбъемПродаж
□бьем продаж
Путь
! Заголовок
Контрагент
Контрагент
Контрагент. Т елеФон
Контрагент. Т елеФон
Контрагент Адрес
Контрагент. Адрес
П<?ля:
Г I Поле
п □ о и
□ ООО'
Рис. 3.153. Описание полей набора данных
МОрДеннь. &
елеФон
| Игня объекта, содержащего данные: Контрагенты
В этом случае поля Телефон и Адрес система компоновки данных будет
считать реквизитами поля Контрагент. При этом в доступных полях ,эти поля
будут отображаться как реквизиты поля Контрагент (рис. 3.154).
Выбоаьны. Отбор Сортировка Условное о... Пользрвдг. Другие нас
| ГДоступнь е поля
’ Поле
ПЙЛ'1
»» Адрес
«» Телефон
=» ОбъемПродаж
^3 СистемныеПоля
Рис. 3.154. Доступные поля отчета
При этом поля Телефон и Адрес будут не только отображаться как рекви-
зиты, но и везде считаться реквизитами. Например, их можно будет выдавать
в группировке по полю Контрагент, а управлять их выводом можно на кладке
Другие настройки (стр. 424).
Функциональные опции и права
на просмотр поля в отчете
Если у пользователя нет права на интерактивный просмотр некоторого поля
или данное поле связано с выключенными функциональными опциям^, то это
поле становится недоступным для настройки пользователем. То есть оно не
будет отображаться в списке доступных полей. Пример использования функ-
циональных опций в отчете рассматривается на стр. 119. » ।
При получении настроек отчета по умолчанию система компоновки 1данных
автоматически выполняет следующие действия с настройками:
и
и
и
и
е|сли поле, на просмотр которого у пользователя нет права, или поле,
которое связано с выключенной функциональной опцией, используется
пользовательском поле, то такое пользовательское поле удаляется и по
нему не устанавливается отбор;
из вобранных полей удаляются все поля, на просмотр которых у пользо-
ватели нет права и которые связаны с выключенными функциональными
Опциями;
фоле системы компоновки данных считается недоступным, если все поля,
испол ьзуемые в выражении этого поля, связаны с выключенными функци-
ональными опциями или недоступными на просмотр полями;
из по тей группировки удаляются все поля, на просмотр которых у пользо-
вателя нет права и которые связаны с выключенными функциональными
опциями. Если после удаления поля группировки у группировки не
остается ни одного поля группировки с установленным признаком исполь-
зования, то удаляется вся группировка, а ее содержимое (если, например,
группировка включает таблицу) помещается на место группировки;
если после удаления из таблицы группировки-строки или группировки-
колонки таблица остается без группировок, то таблица удаляется;
если после удаления из диаграммы группировки-серии или группировки-
точки диаграмма остается без группировок, то диаграмма удаляется;
из упорядочивания удаляются все поля, на просмотр которых у пользователя
фст п рава и которые связаны с выключенными функциональными опциями;
из оформляемых полей элемента условного оформления удаляются
(юля. на просмотр которых у пользователя нет права и которые связаны
с вь ключенными функциональными опциями. Если после удаления
оформляемого поля из элемента условного оформления в элементе не
< эстается ни одного оформляемого поля с включенным признаком исполь-
зовав ия, то такой элемент условного оформления также удаляется;
^сли в отборе элемента условного оформления использовалось поле,
на просмотр которого у пользователя нет права или которое связано
с выключенными функциональными опциями, то такой элемент условного
оформления удаляется.
Если поле ранее было доступно и пользователь каким-либо образом сохранил
настрой <у, а в дальнейшем (когда поле стало для него недоступно) загрузит
настрой <у, поля не будут автоматически удаляться из настройки. Это сделано
для тоге, чтобы пользователь имел возможность заменить недоступные поля
другими полями или самостоятельно удалил их использование из настроек.
ЕСти при выполнении метода Выполнить () объекта КомпоновщикМаке-
таКомпоновки параметр ПроверятьДоступностьПолей установлен в значение
Истина, то будет осуществляться проверка доступности полей для теку-
щего пользователя и проверка наличия поля во включенной функциональной
опции. При использовании в настройках недоступного поля будет выщаваться
исключение. Если значение параметра - Ложь, то проверка осуществляться
не будет.
ПРИМЕЧАНИЕ
В случае выполнения отчета из автоматически сгенерированной формы
проверка доступности полей для текущего пользователя и проверка
наличия поля во включенной функциональной опции осуществляются
автоматически.
Ресурсы
Под полями-ресурсами в системе компоновки данных подразумеваются
поля, значения которых рассчитываются на основании детальных Ьаписей,
входящих в группировку. По сути ресурсы являются групповыми или. общими
итогами отчета. В приведенном примере в отчет выводятся ресурсы Количе-
ство и Стоимость (рис. 3.155).
Продажи товаров и услуг
Параметры: Начало периода: 01.12.2011
Конецпериода: 15.12.2011
Контрагент
Номенклатура
.I ОериОД
'ООО “Автоматике1
Диагностика к< мпьютера
5 декабря 2011 г.___
11 декабря 2011 г.
лмпью -еп для Д1 ме
11 декабря 2011 г.
’ООО "Система-1
Г Компьютер для офиса
9 декабря 2011 г.
.ООО "Стиль-
I Монитор !_СБ
I 6 декабр я 2011 г.
Итого
количество Стоимость
11 500,00
2' ‘ 1 500,00
Т| 1 000,00
1_ " 500,00
1 10 000,00
10 000,00
10 000,00
10 000,00
10 000,00
10000,00
10 000,00
10 000 00
31 500ДУ
Рис. 3.155. Вывод ресурсов отчета
1
1
1
1
1
Во встроенном языке поля-ресурсы схемы компоновки данны^ пред-
ставляются свойством ПоляИтога объекта СхемаКомпоновкиДанных.
В конструкторе схемы компоновки данных добавление поля в список полей-
ресурсов осуществляется на закладке Ресурсы.
Для каждого поля-ресурса указывается:
и Выражение - формула, по которой будет рассчитано значение ресурса.
Например, выражение Сумма (Стоимость) обозначает, что для1 вычис-
ления значения поля будет использоваться агрегатная функция Сумма,
применяемая для поля Стоимость. Для выбора доступны и другие распро-
страненные функции агрегирования, а также собственные функции на
языке выражений системы компоновки данных;
ав Рассчитывать по... — перечисление группировок, для которых будет рассчи-
тывт ?ься данный ресурс. Если свойство не заполнено, выражение ресурса
будет' использоваться для всех группировок отчета. Если же в данном свой-
стве /казано некоторое поле группировки, то ресурс считается доступным
только в данной группировке, для остальных же группировок данный
ресурс выводиться не будет (рис. 3.156).
кА
л’
2
4 а.
Рассчитыватьт.
(>>
! < <
6
1
* 5
I ««, Количество
I--!
; Стоимость
гДойгуйе й'
Знражение
Сумма(Количество)
। К^нтюагеи^
Номенклатура
I.. — '"Ч —
। Период
I Стюимооти
Количество
Контрагент
Контрагент К-;
> НрМаУг : >и X
Сфязм «абрроЕ Вы«» лляемыелс .Л: Ресурсы , к Параметр;. к, Пакеты 5 Вложенные скёмыТ | Настрой
- Ахс- »=.=> ,-ч^Хи »Х- —-1-. .—„.Л. ДАЕ-*.ъ-. —. д41чДО1|М-аД1а.->_->.- ьАд - - х-I --- , д А —1
Количество{Различные... [О
'7 О
Среднее(Стоимость] ЩЬ. - < ,
Псттрчрмвфрежй
Мдксимум[Стоимость) ? „ .
| Расечить® 3№- Поле
Рис. ЗИЯ6. Ресурсы отчета
I
Номенклатура Иерархия
Период
Стоимость
Общий итог
Минимум(Стоимость)
; Количество[Стоимость)
НапЬи^Цер, р приведенном выше примере ресурс Количество отчета Продажи
номенкг атуры буде]г рассчитываться только для группировки Номенклатура
и е4 иерархических группировок, а также вложенных в нее группировок,
для к пррых не задано собственное выражение данного ресурса. Для других
груш и|овок он выводиться не будет. Это свойство требуется устанавливать
в случаях, когда иуоги по разным группировкам или общие итоги не имеют
смырр а (рис. 3.157).
Продажи товаров и услуг
Параметры: Начало периода: 01.12.2011
Конецпериода: 15.12.2011
Контрагент ". _*/Количество Стоимость
I оменклатура
Период..... . 1 .... . ... _ Ц
|ООО^Автоматика" ~ ч ^оод)
1/Диагностикакомпьютера Г г—™—— 500,00
ДГ в .-V ---- —...- -I
| __ 5 декабря 2011 г. |__________ _ 1{ 1 000,00!
| 11 декабря 2011 г._Т Г Г __ 500,661
Компьютер для дпме
11 декабря 2011 г.
ЮОО “Система"
Компьютер для офиса
9 декабр я 2011 г.
рОО 'Стил”
ТИониторЬСО _
6 декабря 2011 г.
10000,00
10000,66‘
10 000,00
' 10 ЛОО 00
“Го 666,х
Гообо,оо,
Го 000,00’
10 000, 6:
V
Г
Итон
Рис. 3.157. Результат отчета
В результате мы видим, что ресурс Количество рассчитывается только по
номенклатуре и не выводится для группировки Контрагент и в общих итогах.
Дело в том, что контрагенту могут быть проданы разные виды номенклатуры,
и не имеет смысла складывать количество услуг с количеством комплекту-
ющих.
Изменим вариант отчета - укажем для группировки Номенклатура тип группи-
ровки Иерархия. В результате в отчете будут выведены иерархические записи
номенклатуры и для них будут посчитаны итоги по полю Количество, так как
в колонке Рассчитывать по... для этого ресурса (см. рис. 3.156) были указаны
группировки Номенклатура и НоменклатураИерархия (рис. 3.158).
Продажи товаров и услуг
Параметры: Начало периода. 01.12.2011
Конец периода: 15.12.2011
Контрагент г”~ ' .Количество Стоимость |
Номенклатура
Пе^ЙОД й Ч -. 7 | д . : г 1. .. _
'ООО "Автоматика" , 11 500~00
<(^Собранные компьютеры ....1^) 10 000/ Ю
Компьютер для дома__ _ ________ 1;_ 10 000,00)
11 декабря 2011 г. Ь 1б6бо,дб
^Услуги "" ". 7.7 7 ..
"Диагностика компьютера ~ 1 500,00'
5 декабря 2011 г. _{ 11 1000,00'
111 декабря 2011г/ ЛГТ .. 77 7111777 500,оо:
ООО "СиртемвГ 10 000,00
Обобранные компьютеры 7 10 100,00]
Компьютер для офиса __________________1< 10 000,00;
9 декабря 2011 г. ' I 1; ___Гб 000,001
ЯрООррО;
Монитор ШО ! 11 10 000,00]
6 декабря 2011 г. ____ . 1^ юббб.бб
.. Рис. 3.158. Результат отчета
Однако если в отборе отчета будет установлен отбор на поле Номенклатура
с типом сравнения Равно, то значение ресурса будет выводиться во все груп-
пировки отчета, независимо от группировок, указанных для ресурса в колонке
Рассчитывать по... (рис. 3.159).
Продажи товаров и услуг
Отбор: Номенклатура Равно "Диагностика компьютера"
Контрагент Количество /Стоимость
'Номенклатура , {Период . Соо "Автоматика" . 2^> | Диагностика компьютера 2 I 5декабря2О11 г. 1 ! 11 дек^ря2011 г. 1- "Стандарт" '" . Р । Диатостика компьютера 1 дмамЖи /. ц - Ь (Итого , ЗЭ 1 500,00 1 500,00, 1 000,00 " 500,00 • 500,00 500,00 500,00 2 000,® рис з/| 59_ Результат отчета
Кроме полей группировок в свойстве Рассчитывать по... можно указывать
специальную группировку ОбщийИтог. В таком случае выражение будет
использоваться для вывода общего итога (см. рис. 3.160).
Каждое поле может присутствовать в списке ресурсов несколько раз, для
различных полей группировок. Например, можно указать разные формулы
расчета ресурса Стоимость для группировок по полю Номенклатура и Контр-
агент. Это требуется в случаях, когда итог подсчитывается по-разному для
разных группировок (см. рис. 3.160). Однако указание различных выражений
одного поля-ресурса для одной и той же группировки недопустимо.
В приведенном примере задано, что ресурс Количество будет рассчитываться
только для специальной группировки Общий итог. Для ресурса Стоимость
установлены различные выражения расчета: для группировки Контрагент,
КонтрагентИерархия как Максимум (Стоимость) и группировок Номенкла-
тура и Общий итог как Сумма (Стоимость), рис. 3.160.
ВьнисляемыР п->
Наборы данных
Параметры
Связи наборов й.
Ресурсы
. Рассчигывзгь по...
Поле
Общий итог
Поля группмргдакм
Количество
Стоимость
Стоимость
. Выражение
Сумма[Количество)
Сумма[Стоимость]
М аксимум[Стоимость)
. . - V и. Д.- Ьк
Макеты Вложенные стемы Настройки
Отмена
Рис. 3.160. Установка различных выражений для расчета ресурса
, Доступнь» ПОЛЯ
; Количество
. Контрагент
< 1=3 Номенклатура
! Период
Контрагент. Контрагент Иерархия
' Рассадывать.
Контрагент
Контрагент Иерархия
Номенклатура
Номенклатура Иерархия
Период
Стоимость
Общий итог
В результате общее количество продаж выводится только в итоге отчета,
а стоимость продаж для контрагентов рассчитывается как максимальная
сумма продаж этому контрагенту. Стоимость продаж по номенклатуре
и в общем итоге рассчитывается как суммарная стоимость всех продаж по
данной номенклатуре или по всем записям отчета (рис. 3.161).
Продажи товаров и услуг
Параметры: Начало периода: 01.12.2011
Конецпериода: 15.12.2011
Крнтраге* •’ ' Количество Стоимост!
Номенклатура
>Г1ериод ‘ ,, , , ... >
' .... ' *' ' '‘~"....':
I Диагностика компьютера __ _ _____ I___1 500,00:
' 5 декабре 2011 г. ] ! 1 666,66:
1___11 декабря 2011 г._ | >___ 500.66: ..
г Компьютер для дома _______"
ССО "Система" * * 10000,0б>
; ^Компьютер для офиса 10 000ДО, '
9 декабря 2011 г. _ [ 10000,00
^О^тиль" ‘,П " 1о66о,6§>
I Монитор бСр "________^7______________Т___10 000 ДО
1 6декабря2б11 г. г~ ' ЮОООДО
<Йт0ГС ............................ 5’ ' Э1 500,С5>
Рис. 3.161. Результат отчета
Разработчик может также задать собственные более сложные выражения для
расчета ресурсов на языке выражений системы компоновки данных, как это
сделано, например, в отчете Расчет показателей продаж (стр. 217).
ДМдйг- Р«ж«етПоказапе«1ейПрод«?к: Основн нСг^ й1 ЛР к,- ‘1анны
Наборы данных , Связи набодялзд.. ВьйиеяяемЫ&Тш ’• Ресурсы Ц. 1ара» гетры Макеты Л_ Влот еьпшз схемы Нзсняйки
= « и Доступные поля 1 Поле | < [ | «а Стоимость Въфажение- /Сумма(Стоимость) X Рассч>пывегь.по... I . . { г 1
“• Количество «® Контрагент ГВ МаксимальнаяСуммаПродажТовара Г>>3 | Гы ПроценгПродажПоКонграг... ! < .' I Сумма(Стоимость)*100/ ВычислигьВыражение("Сумма(Стоимость... "Контрагент")
| Гн МаксимальнаяСуммаПрод... М аксимум(ВычислитьВыражениеСГ руппи.. . "Номенклатура"))
«» Номенклатура
Гн ОбъемПродаж Период । Гм ПроцентПродажОтИсследу... 1 I Сумма((т имость)к100/ ВычислитьВыражение("Сумма(Выбор Когда Номенклатура = 8сИсследуемыйТовар Тогда Стоимость
Гй ПроценгПродажОтИсследуемогоТо... ।
Ги ПроценгПродажПоКонтрагенгу^ Гы СписокКонтрагентов 1 । Гы СписокКонтрагентов Конец)",, "ОбщийИтог" Массив(Различные Контрагент) Номенклатура
Стоимость ( (>оимостьПродажСНакоп... Г ( ВычислигьВыражение("Сумма[Стоимость... ,, "Первая", "Т екущая")
Гй СтоимостьПродажСНакоплением 1 — < Гы ОбъемПродаж 1 1
Выбор Когда Сумма(Стоимость) <=3000 Тогда "Малый" Иначе Выбор Когда Сумма(Стоимость) >=10000 Тогда "Большой" Иначе "Средний" Конец Конец
I
а < ЭДбСКлассгйФгкаит ^ункцииДляОтчетов.АВСКлассификация^/ 1
•
Рис. 3.162. Ресурсы отчета
Например, в общем модуле ФункцииДляОтчетов есть функция АВСКлас-
сификация (Данные), позволяющая классифицировать контрагентов
в зависимости от объема продаж. Тогда в выражении для расчета ресурса
можно воспользоваться следующим выражением (листинг 3.44).
Листинг 3.44. Выражение для расчета ресурса «АВСКлассификация»
ФунщмиДлпС'ГЧРтот. АВСКлассифика! <ия(ГрупповаяОбрабо.тка(,'Сумма(Стоммость)”))
Кроме того, в данном отчете в выражениях для расчета ресурсов использу-
ются функции, вычисляющие выражения для родительских группировок,
для вложенных группировок; ресурсы рассчитываются для определен-
ного значения измерения, по заданному интервалу и т. д. Более подробно об
использовании языка выражений системы компоновки данных можно прочи-
тать в книге «1С:Предприятие 8.2. Руководство разработчика», гл. 10.3.7.2.
Для каждого числового поля-ресурса системы компоновки данных плат-
форма автоматически рассчитывает подчиненные поля: ПроцентВИерархии,
ПроцентВГруппе, ПроцентОбщий и др. Эти поля можно использовать в отчете
наряду с другими доступными полями набора данных (рис. 3.163).
Параметры I Выбранны.
Отбор Сортировка
Условное^ < Пользовэт..._д Другие наг
= Доступные поля
I : ч - от Контрагент
“ ПериодДень
“ ПериодМесяц
ь! Количество
I А Стоимость
Поле
Выбранные поля
А Стоимость
Стоимость. ПроцентОбщий
4
Стоимость Г' ;Нг8ГруМ>]
X
I
А
л
А
А
А
ПроцентВИерархии
ПроцентВИерархииВКолонкеИ лиТ очке
ПроцентВИерархииВСтрокеИлиСерии
А
А
А
ПроцентВГ руппеВКолонкеИ лиТ очке
ПроцентВГ руюеВСтрокеИ лиСерим
ПроцентВКоложеИ лиТ очке
ПроцентВСтрокеИлиСерии
ПроцентОбщий
СистемныеПоля
ПараметрыДанных
И
Рис. 3.163. Поля отчета
Так, в отчете Отчет по продажам наряду с полем Стоимость выводятся поля
ПроцентВГруппе, ПроцентОбщий, отражающие для каждой группировки
процент от общей стоимости продаж и процент от стоимости продаж в группе
(рис. 3.164).
Рис. 3.164. Результат отчета
Параметры
Пользователя, как правило, интересуют данные о хозяйственной деятельности
за определенный период. Поэтому практически в любом отчете используются
параметры, задающие начало и конец отчетного периода.
Во встроенном языке параметры данных описываются в свойстве Пара-
метрыСхемыКомпоновкиДанных, которое содержит коллекцию значений,
состоящую из элементов ПараметрСхемыКомпоновкиДанных. Программно
установить значение параметра можно при помощи метода Устано-
витьЗначениеПараметра(), который устанавливает значение параметра
компоновки данных и включает свойство Использование (листинг 3.45).
Листинг 3.45. Установка значения параметра «НачалоПериода»
Настройки.ПараметрыДанных.УстановитьЗначениеПараметраС'НачалоПериода",'20111201')
В схеме компоновки данных параметры отчета задаются на закладке Пара-
метры. При использовании свойства Автозаполнение (стр. 346) параметры
виртуальных таблиц и параметры, указанные в запросе, автоматически добав-
ляются в список параметров отчета. При этом имена доступных параметров
схемы компоновки данных генерируются на языке, соответствующем вари-
анту встроенного языка конфигурации.
Редактирование параметров включает в себя:
и редактирование имени параметра,
я редактирование заголовка,
я редактирование доступных типов и значений параметра,
я определение значения и доступности списка значений параметра,
я определение выражения,
я определение параметра в качестве доступного поля настройки компоновки
данных,
я ограничение доступности,
я определение обязательности заполнения параметра,
я признак использования параметра,
я задание параметров редактирования.
Рассмотрим некоторые особенности использования свойств параметров.
Использование дат
Для примера рассмотрим отчет Отчет по системным блокам. Мы видим, что
на основании запроса платформа по умолчанию добавила два параметра —
НачалоПериода и КонецПериода и в колонке Тип задала для них значения Дата
(рис. 3.165).
Рис. 3.165. Параметры компоновки данных
Заметим, что если в отчет передается параметр, содержащий значение типа
Дата, то дата всегда содержит и время с точностью до секунды. Однако
пользователя, как правило, не интересуют данные в отчете с такой точно-
стью. Чтобы пользователь имел возможность ввести даты начала и окончания
отчетного периода без времени, в колонке Тип нужно нажать кнопку выбора
и в нижней части окна редактирования типа данных установить Состав даты
в значение Дата для обоих параметров (рис. 3.166).
ироваЛмй гмга данный X
летав ной тип данньм
О1®3 Число ] * ] •
Оа°с Строка I Т
|
0@1 Булево ' ?
ОН ХранилищеЗначения I
010 УникальныйИденгиФикатор ! .. *
+> СправочникСсылка ' |
ДокументСсылка |
| Ф ПеречислениеСсылка | |
I ® Оги! ПланВицовХарактерисгикСсылка < >
| ГП
| ПланСчетовСсылка
|{^рсгавдеты {Дата
। К Н Отмена !
Рис. 3.166. Редактирование состава даты
Но в таком случае, если пользователь задаст даты периода как 01.12.2011
и 11.12.2011, итоги регистра будут рассчитаны с начала дня 01.12.2011 00:00:00
по начало дня 11.12.2011 00:00:00. То есть данные за 11-е число, отличные от
начала дня, в отчет не попадут. Чтобы этот день включить, нужно внести в
поле Выражение для параметра КонецПериода следующий текст (листинг 3.46).
Листинг 3.46. Выражение для расчета параметра «КонецПериода»
КонецГ!ериода.(&КонецПерио, а
Это выражение, сформулированное на языке выражений системы компоновки
данных, содержит функцию Конецпериода (), возвращающую датэд! соответ-
ствующую концу какого-либо периода, например дня.
Использование стандартных периодов
Система компоновки данных позволяет использовать стандартные |, [периоды
для указания периода отчета.
Для примера рассмотрим отчет Отчет по продажам. На закладке Параметры
находится параметр с именем Период типа СтандартныйПеридд, а д!пя парЬ*
метров НачалоПериода и КонецПериода задано Выражение для1| расчета
и запрещено их редактирование пользователем (листинг 3.47).
Листинг 3.47. Выражение для расчета параметров
«НачалоПериода» и «КонецПериода»
&Перийд.Датб ^.чала
&Период.ДатаОкончания
Даты начала и конца стандартного периода также содержат и время I Однакр
здесь, в отличие от параметров НачалоПериода и КонецПериода, н|ральнар
дата имеет время 00:00:00, а конечная дата - 23:59:59. Таким <р|бразом|,
последний день включается в отчет, и не нужно использовать функция|>
Конецпериода (). В результате параметры компоновки данныр. примут вид
(рис. 3.167).
Отчет ОтчетП «Продажам: Осни«наяСхемаКомпоноглиД<:нных
Наборы дан-ык
С । нзбо ое
Имя
-•'Г'
Ластройки
Влсокеннь схе.
' Заголовок
Период
Д 1Д.4 Значение 1 Выражение
Вычисляемые п... Ресурсы : Параметры Макеты
Лериод.ДетаНачала
Л ериод. ДетаОкончания
'□Г
НачалоПериода Начало периода
1ип
. Дета
....щц
Рис. 3.167. Определение параметров отчета
КонецПериода Конецпериода Дата
При запуске отчета в режиме 1 С: Предприятие пользователь будет редакти-
ровать стандартный период непосредственно в отчетной форме, так как
параметр Период включен в состав быстрых пользовательских настроек.
При выборе стандартного периода ему предоставляется большой I1! выбор
значений: Этот месяц, Следующий месяц, Прошлый месяц, Эта неделя, Следу-
ющая неделя, Прошлая неделя и пр. (рис. 3.168).
Заменим, что реальные значения дат стандартного периода определяются
I во время исполнения отчета. Поэтому период отчета будет автоматически
меняться в зависимости от фактической даты запуска отчета. Пользоваться
। стандартным периодом отчета удобно, когда пользователь регулярно выпол-
няет; отчет за определенный интервал времени, например, текущий месяц.
Тогда можно заранее установить в стандартных настройках нужный период,
и пользователю не придется задавать его перед формированием отчета.
Рис. 3.168. Выбор стандартного периода
Для повышения удобства работы пользователя имеется возможность скрывать
параметры отчета от пользователя, используя свойства (см. рис. 3.165, 3.167):
I >ключатьВДоступныеПоля - если флажок установлен, то параметры будут
I: ключены в список доступных полей и видны в настройках пользователя;
н ()граничениеДоступности - если флажок установлен, то параметры не будут
видны в настройках пользователя на закладке Параметры.
Еслк параметр, указанный в запросе, доступен в настройках пользователя,
то есть у него снят флажок ОграничениеДоступности, то пользователь может
ука: ать значение параметра перед формированием запроса. В противном
случае система компоновки данных сгенерирует результирующий запрос
к ш формационной базе без учета данного параметра.
Есл’и отчетный период для пользователя не важен, то он может снять признак
использования параметров (флажок слева от параметра). В этом случае отчет
будет формироваться по всем записям выборки запроса для получения набора
данных.
При включенном признаке использования параметров также можцю
не задавать их значения. В этом случае поведение системы будет зав|исер
от значения свойства Запрещать незаполненные значения. В случае установки
этого флажка, при использовании параметров в отчете система проверяет
обязательное заполнение параметра. Если значение параметра не указано,
то будет выдана ошибка. Если флажок Запрещать незаполненные значения
не установлен (см. рис. 3.165), отчет будет формироваться без ошибки.
Если же, наоборот, отчетный период нужно вводить всегда, то у парам^рф
в поле Использование можно задать Всегда (рис. 3.169).
Рис. 3.169. Параметры отчета
В этом случае флажок использования параметра в пользовательр|кик
настройках отсутствует, т. е. параметр используется всегда. Если дополни-
тельно к этому установить также флажок Запрещать незаполненные значения
(см. рис. 3.169), то при формировании отчета с пустым значением параметру
будет получена ошибка.
Макеты
Понятие «макеты» очень часто встречается в системе компоновки данных
Существует макет как элемент системы компоновки, существуют предо пре
деленные макеты, существуют макеты оформления...
По умолчанию внешний вид отчета формируется системой автоматически]
Внешне отчет состоит из набора стандартных областей, которые сисзЮма
сама располагает в зависимости от вида отчета. Но разработчик может задать
собственное расположение и оформление различных областей. Это и ^рть
предопределенные макеты.
Система самостоятельно оформляет стандартные области отчета. Но разра-
ботчик может задать собственные правила, по которым будут оформляться
эти стандартные области. Для этого ему потребуется создать свой ма^ет
оформления. !
Таким образом, задать свой вариант оформления можно в обоих случаях. Но
в предопределенных макетах можно также изменить расположение полей
отчета, задать их размеры, изменить порядок следования, тип заполнения,
используя шаблон ячейки, в которой расположено поле, задать события для
ячейки и т. п. Но в отличие от макетов оформления, предопределенные макеты
привязаны к одному отчету, его конкретным полям и структуре.
Предопределенные макеты
Предопределенные макеты могут создаваться при помощи конструктора
схемы компоновки данных. Для этого предназначена закладка Макеты. Макет
представлен в виде обычного табличного документа, областям которого
можно задать нужное оформление.
Для примера создадим схему компоновки данных ПредопределенныйМакет
отчета Остатки номенклатуры. Данные для отчета будем получать при помощи
запроса (листинг 3.48).
Листинг 3.48. Текст запроса
ембрать
ОстаткиНоменклатурыОстаткиИОбороты.Номенклатура,
ОстатклНоменкла гуры'?"-таткиИОбороты.Склад,
Оста алНоменклатуры(\ аткиИОбороты.Количес.зоНачальны! Остаток
Оста । « иНоменклатурь’ОетсткиИОбороты.Количе' твоКоиечныиОстаток,
Остаж1НоменкГ{атуры( ггатлиИОбороты КоличествоПриход
Остатка 4оменклатурыОстаткиИОбороть..КоличествоРасход
ИЗ
Ре. ис1акопленйя.Ос’аткиЕо1иенклатурьг ОстаткиИОборотг КАК
Оста^иНоменклатурыОстаттиИОбороты
В ресурсы отчета добавим поля КоличествоНачальныйОстаток, Количест-
воПриход, КоличествоРасход и КоличествоКонечныйОстагок. На закладке
Настройки добавим в структуру отчета группировку Склад с вложенной в нее
группировкой Номенклатура и перенесем в список выбранных полей поля
ресурсов (рис. 3.170).
р <
Имя варианта! Представлю..;
Основной
Настройки |
--.СЙД?
вййа
ДО ». 1ЬР ПОЛЯ
X
3
3
3
©
4/
Номенклатура
Склад
{^'ни Склад
Й®33 Номенклатура
Настройки: [Ртчй::! Отчет
г Параметр | Выбранны...
. —й? ---------л : - Ч?.1^
О 5е* . Сотировка $ Условное ..зс =ат Друг не
Пеле
; © Выбранные поля
<
Рис. 3.170. Настройка структуры и полей отчета
КоличестеоНачальный0ста|1 V’:
КоличествоПриход
КоличествоРасход
СистемныеПоля
П араметры Данных
3 КоличествоНачальныйОстаток
3 КоличествоПриход
3 КоличествоРасход
3
Г
I
Для создания предопределенного макета сначала мы должны установить имена
группировок, чтобы мы могли самостоятельно указать, в какую именно область
нашего макета будет выводиться эта группировка. На закладке Настройки
выделим нужную группировку и вызовем ее контекстное меню. Выберем
в нем пункт Установить имя и зададим имена группировок (рис. 3.171).
ч-я*.- •«д.-фзь. ц&аи; .*••• ... ьиаваиж*- а • * Ч- <Т<ЧТ.^, ж Г * * • Л
Наборы данных б^зинабб&жй, Яычисяммые-. х» 1‘ Ре^сй .1, Оврвйетрыт МакётыРР Слоеенныесхемь)Т | Настройки
Имя вариант. Продгтарле
Основной
145 Отчет
® удаи Склад (Склад)
лаа
^Номенклат!
т_
Новая группировка..
!Л8
Новая таблица
; Й Новая диаграмма
Новый вложений отчет...
Настройки. |стчет. Номенксг Скопировать
Параметры » [ Выбранны.
Доступные поля
» Номенклатура
»» Склад
*
ЕЗ
&»
КоличествоН ачальньг
КоличествоПриход
КоличествоРасход
СистемныеПоля
ПараметрыДанных ’
Изменить
Р9
Г2
.Друпийна
Удалить
Конструктор настроек...
О^ремесгить вверх
<Ж' Пеммесл игь вниз
Сгруппировать...
Разгруппировать
УетвМВИГЬ ] Й
Выключить все
Пе1
<;
СЫ*5№<Цр
СМ+Яй+Оичп
и
Ж
&
с
Рис. 3.171. Установка имени группировки
Перейдем на закладку Макеты и нажмем кнопку Добавить макет. Существуют
следующие типы предопределенных макетов (рис. 3.172):
макет поля,
макет группировки,
макет заголовка группировки,
макет ресурсов.
&^>иисля- 5 Ресурсы ] Парами Ц Макеты И' "' л ожен Настрой...
2 ~ ГЖТ 1
м,
Ниосрьи
Добавить макет поля
Добавить макет группировки
Е Добавш ь макет заголовка группировки
Добавить макет ресурсов
Параметры макета
' Имя пар..яетм Рыражечис
_ 8
*_9
16..]
лО
13 >
1
,_Ю
иец?
Рис. 3.172. Добавление макета
Макет поля
Данный макет предназначен для оформления определенных выводимых
полей (рис. 3.173).
Склад: Номенклатура Количество Начальный остаток ; Количество Количестве Количество г
Приход „Л .. - г асход Конечный * ^.остаток . .;
Основной 1 ! ..... 13,000 ооо 4 ОГГ
Жесткий диск г ; 3.000 3,0001
Материнская плата ; 5,ооб 3,000! 2,000-
Память > ! 5,000 3,666; 2,000!'
Розничный | ' 24.000 7 00С 17,ода
Веб-камере 10,000 3,000! 7.000.
Микрофон —4 ) 10,000 2,000* 8,0001
Монитор ЬСО ! 4,300 2,000; 2,0001
Итого .. ,. ,. Е 37 00П ЕЕ 1бД)рГ; 2 Кию,
Рис. 3.173. Макет поля «Склад»
При создании данного макета необходимо указать поле, для которого созда-
ется предопределенный макет. Создадим макет для поля Склад. Зададим
ячейку Склад с заполнением Параметр. Зададим оформление ячейки — размер
и начертание шрифта. Определим границы диапазона области. Для этого
вызовем окно настройки диапазона границ и, не закрывая это окно, выделим
мышью в правом окне нужную область. Сохраним диапазон, нажав в его окне
кнопку выбора. После этого в левом нижнем окне появится список параме-
тров, определенных для макета (рис. 3.174). Более подробно этот процесс
рассмотрен во второй главе на стр. 197.
Рис. 3.174. Создание макета поля «Склад»
Установим схему ПредопределенныйМакет в качестве основной схефы компо-
новки данных для отчета Остатки номенклатуры.
Выполним отчет. Значения поля Склад выводятся с заданны^ оформлением
(рис. 3.175).
6 ет юьенкпа, = (1СПр, тгюиягие,
.V. з- М М* -
Все действиям ?
Т*
Остатки номенклатуры
Вариант отчета: [Основной_
Сформс фммвог* йЦ Настройка...
] 1 Выбрал чр1/ечг.^_
‘Склад Номенклатур® -,л ‘ Количество ; Начальный остаток., ! Количество Количество’ Приход Расход Количество ' Конечный остаток
(Основной 5 13^00! 9,000 4,000.
| Жесткий диск —1 ( 1 1 1 3,000 3,000 с
| Материнская плате 5,000 3 000 2,000
' Память 5,000 3,000 2,0001
{розничный 24,000' ; Ю~о66| *' 7.000, 47,6661
! Веб-камера 3,0001 7,000
I Микрофон 10 Л00 2,000; 2,6661 Г 8,666
| Монитор ЬСО 4.00( 2,0001
ИТОГО, .. . .. /'Л' 37.0Л0, 16.000 ‘ 21.000
$ ! _ .. . . .
'" - тЛииа.--? . - .. Д1аМи1»'»иС‘<ЧА- а д? • - <] ।
{ I
{ I
!
4
Рис. 3.175. Результат отчета
Макет группировки
ГТ 1' - I I 1 1
Данный1 макет предназначен для оформления значении группировки
(рис. 3.176).
I; Номенклатура 'Основной Кс н» ос г ^мчество Количеств! бальный Приход гаток I ; «7 । Количество . Количество Расход Конечный остаток 00 9,000 4,000*
жёсткий диск Материнская пл Память эта I ЗХ 5Ц 5,1 изо- з.ооо 00 Г ’ 3,000 " 2,000 )00'; ’ 3,000," "'2,000
1?бОНИ 1НЫИ , 24,000 7,000' 17,000
Веб-камера Мик юфо). Монитор ЮВ I, 10.000 3,000 7,000 ~ ЮДЗО. 2ДЗО|_' ~ 8,000 4,с130- '„ООО 2,000
ЙтйГО' г 1 37ф ют? 2г:вд
Рис. 3.176. Макет группировки «Номенклатура»
При создании
либо поля гр)
данного макрта необходимо указать либо имя группировки,
ппировки, для которой создается макет. Также необходимо
указать тцп] макета. Существуют следующие типы предопределенных макетов
(рис. 3.177): '
^Скй д । ' Номенклатура 1 1 < оличес энечнь статок - 30 4 ДЮ 4,000 4,000, 2,000, 2.000' 2,000 2Д00- 2,000' 2,000 4,000 4 ДЮ |17Д)0.
лмлле. укодие
| Ма|еринсцяд плат Материнская плат Память Память Комплекту цие Итого | ь!й
: И- ' 7,000
Микьофон м1|К|Ьофон Мондор цсо Монитор 1.С0 КоМгл1(|ктуювцле -<1— Итого - Итого | । I- ’ 8 000 8,000: еда; г.ооо: 2.С00-. 2.30''- 1|7.000. 'И'7,000" 1рОС
заголовок .
7^* Группировка
под в ал-4*
Рис. 3.177. Т^пы Пакетов
я Заголовок - данный макет предназначен для оформления заголовка груп-
пировки, Заголовок группировки выводится в начале группировки. Если
группйр<|)вкг содержит вложенные группировки, то заголовок группи-
ровки выводится перед записями вложенной группировки;
я Подвал - данный макет предназначен для оформления подвала груп-
пировки. Подвал группировки выводится в конце группировки. Если
группировка содержит вложенные группировки, то подвал группировки
выводится госле записей вложенной группировки. Если данный макет
не задан,| то
используется макет заголовка;
Заголовок иерархии — данный макет предназначен для оформления заго-
ловка иерархической группировки. Данный заголовок выводится в начале
иерархической группировки. Если данный макет не задан, то используется
макет заголовка иерархии; ।
Подвал иерархии — данный макет предназначен для оформления подвала
иерархической группировки. Данный подвал выводится в конце иерархи-
ческой группировки. Если данный макет не задан, то используется макет
заголовка иерархии;
Общий итог заголовок — данный макет предназначен для оформления
области отчета, отображающей общий итог по группировке, и выводится
в начале группировки;
и Общий итог подвал—данный макет предназначен для оформления области
отчета, отображающей общий итог по группировке, и выводится в конце
группировки. Если данный макет не задан, то используется макет общего
итога заголовка.
Создадим макет группировки с именем Номенклатура. В открывшемся диайоге
выберем имя группировки Номенклатура и тип макета Заголовок. Зададим
элементы оформления ячеек значений группировки — шрифт и цвет текста.
У всех ячеек в строке Заполнение укажем Параметр, а в строке Параметр — имя
конкретного поля, отображающегося в ячейке. Определим границы диапазона
области значений группировки. Платформа сформирует список параметров
для этой области и заполнит значениями по умолчанию (рис. 3.178). 1
.Ресурсы,^? Пари 1етри,1] Макеты |2 е схемы
$ Настройте !
<Склад>
Макет
ачтсги'СКПЙП \ Ни .... , гчоЛь- [•
гКоличеб1 этичёовоКонечныйОсй
Ма ‘ры^знн- « ,_]^Свяайнаборсь ..анныи 1 Г числяэм « по ля
1*7 .л
Иакйт -м * ™
' 1 €*ЙИмя группировки
4 6
... г------------
' I
Область
Н1С1
ВЗС1:ПЗС5
1 I
<
Выражение
4 Тип макета:
^Заголовок
ОК
ад
“Л"
.{[ 'тмена (; Справка .,
."я I
5
< КоличествоКонечныйОстагок; КоличествоКонечныйОстагок
Г
[ КоличествоПриход
I КоличествоРасход
Представление(Номвнклетура]
*» КоличествоНачальныйОста... КоличествоНачальныйОстаток
< КоличествдПриход
I КоличествоРасход
Параметры макета:
'Имя параметра
_26_
~27
28
19
20
О!
22
23
Рис. 3.178. Создание макета группировки «Номенклатура»
3;
4
11
12
13
14
15
24.
ОПолЯ группиров! 1
Поля
л
6
ВНИМАНИЕ
Список параметров, заданных для макета, появится в окне Параметры
макета только после определения границ диапазона области. При переопре-
делении диапазона список параметров формируется заново, и выражения
параметров заменяются значениями по умолчанию.
Выполним отчет. Значения группировки Номенклатура выводятся с заданным
оформлением (рис. 3.179).
Рис. 3.179. Результат отчета
Макет заголовка группировки
Данный макет предназначен для оформления заголовков группировок
(рис. 3.180).
Склад Номенклатура Количество Начальный остаток Количество ; Приход Количество 'Количество Расход Конечный остаток
Основной 13,000 9,000 4 000
Жесткий диск 3,000 3,000
Материнская плата 5,000- 3,000! 2,0001 3,000* 2,000;
[ Память 5,000
розничный I Веб-камере Микрофон Монитор ЬСО === — 24,000 7,000 17,000 10,000 3,000: 7,000- 1(^000- 2,000' ~ ™ е-000 4,000- 2,000 2,0001
[Итого .. Т - 37.000 16,000 21,000
Рис. 3.180. Макет заголовка группировки «Склад»
Заголовком группировки называется область отчета, содержащая имена выво-
димых в отчете полей. При создании данного макета необходимо указать либо
имя группировки, либо поля группировки, для которой создается макет. Также
необходимо указать тип макета. Типы макетов такие же, как и для макета
группировки. Существует следующее правило вывода макетов заголовка
группировки: макет заголовка группировки действует на указанную группи-
ровку и на все ее вложенные группировки до момента обнаружения другого
макета заголовка группировки. При обнаружении другого макета заголовка
группировки начинает использоваться обнаруженный макет заголовка груп-
пировки. Тем самым существует возможность создания разл апых макетов
заголовка для различных группировок. Для примера рассмотрим отчет с груп-
пировкой Склад и вложенной в нее группировкой Номенклатур^.
Создадим макет заголовка группировки Склад. В открываемся диалоге
выберем поле группировки Склад и тип макета Заголовок. Этрт макет также
действует на вложенную в нее группировку Номенклатура. ЗаДадим элементы
оформления ячеек заголовка группировки. У всех ячеек в строке Текст укажем
произвольный текст шапки, а в строке Заполнение - Текст. Опре деуим границы
диапазона области заголовка группировки (рис. 3.181).
Рис. 3.181. Создание макета заголовка группировки «Склад»
Выполним отчет. Заголовок (шапка) группировки Склад и Номенклатура выво-
дится с заданным оформлением (рис. 3.182).
Рис. 3.182. Результат отчета
Создадим отдельный макет для заголовка группировки Номенклатура и
выполним отчет. Теперь для каждой группировки выводится свой заголовок
(рис. 3.183).
Остатки номенклатура! - Демоист... (1С Предприятие] , \,
М М* М*
Остатки номенклатуры
Вариант отчета: Основной
Оформи ова.ь ; ЙЦНастройка...
Все действия’; И
Рис. 3.183. Результат отчета
Создадим макет группировки Склад для вывода итогов по группировке
(рис. 3.184).
Склад Номенклатура Количество Начальный остата количество Количестве Количество Конечный остаток
Приход Расход
основном 13.000 ' , 9.000 4,000^:
Жесткий ^иск 3,000< 3,000
Материнская плата 5.0®! 3,000 2,000!
Память 5,000 3.000 2,000;
Розничный .4 24.000 7,000 ..? 4/4 17.000?
I Веб-камера 10,000| 3,000 7,000;.
I Микрофон 10,000. 2,000 8,0004
I Монитор ЬСО .. 4,000 ’ 2,000 2,000?
|Итого 37да: 16ДЮ 21да|
Рис. 3.184. Макет общего итога заголовка
В открывшемся диалоге выберем имя группировки Склад и тип макета Общий
итог заголовок. Зададим элементы оформления ячеек итоговой строки груп-
пировки - шрифт и цвет текста. Зададим ячейку Итого с заполнением Текст.
У всех остальных ячеек в строке Заполнение укажем Параметр, а в строке
Параметр - имя конкретного поля, отображающегося в ячейке. Определим
границы диапазона области значений группировки. Платформа сформирует
список параметров для этой области и заполнит значениями по умолчанию
(рис. 3.185).
? НаборыДм.-иа=&.
I: киий
с.. Связи наборов данный 4' сыч; ;ляе у ыёполя
Iе» КоличествоПриход
! »» КоличествоРасход
ИСоличествоПриход
> КоличествоРасход
I
2
3
5_
в
7
8.
Номенклатура: Заголовок
Склад: Заголовок
Ног. енклатура: Заголовок
Параметры макета:
<—:----------—
I Имя параметра
13’ х
1 Макет
- щ е л лЛ-п -а
« ! ®
.214
22 {
23 •
Тип макета:
^ббщий итог заголовок
9.
<-*—•ичэдл Т’туд
ад | Ж?ого
24 1
.25^.]
26 1
27~1
28.*
29~] !
30
31. Т~;
Усбларть
' В1С1
: ВЗС1ВЗС5
[в5С1:Я6С5
' В8С1:В8С5 _
I 10С1:В10С5
__ ч -ф. 4?^
<Скпад>I
Макеты Вложенные схемы
<Номенкп <Количес :Количес‘ <Количес: <КоличесгвоКснечныйОс 8^1
Склад Начал ьш Приход Расход Конечны}» остаток
1
НоменюпНа тьнь Приход Расход Конечные остаток
встсоКонечный!
Вы; зжение
53В КоличествоНачальныйОстаток
! “» КолтчествоКонечныйОстаток < КоличествоКонечныйОстагок
О Поля группировки
' Поля
Макет грдпгл.м* ^
С’ грнпптфрвкц
11/;
12 I
13 I
* .
0~4ГНа , |; Справка.
з> Т
5
6
Выполним отчет. Общие итоги (итоги по группировке Склад) выводятся
с заданным оформлением (рис. 3.186).
» а?
«Зыбреть ву, манг ,..в |
Сфоьммро ггь 1 { ЗЦ Настройка
>а...
Есе действия^; 18
1. Остатки юме а туры
ч Вариант отчета: , Основной
Склад Начал, .н« ь остаток Приход Расход Конечный остаток ] .*]
{
я Основной I 13,000 9,000 4,000‘ таток :
Номенклатура Начальный остаток , Приход Расход Конечный ос 1 7
Жесткий диск 3! 1 г 1
Материнская плата Г со 2' * 1
Память Т ! 5 3 2< I
Розничный 24,000 7,000 17,о66'1 1
Номенклатура Начальный остаток Приход Расход Конечны^ остаток ? I
Веб-камера Т 1 10 з г! 1
Микрофон н 1 1 н 1 и Н л; I 1
Монитор !_СО 4 2 ]
37: ... 1 . . г. .Я)
1
. 4 ? с. а • . г Н*
Рис. 3.186. Результат отчета
Макет ресурсов
Данный макет предназначен для оформления ресурсов таблицы. Ресурсами
таблицы называется область отчета, содержащая значения полей ресурсов
группировок или детальных записей. Для каждого макета ресурсов необхо-
димо указать, для какой группировки строки и колонки таблицы он создается.
Таким образом, макет ресурсов создается как бы на пересечении соответ-
ствующей строки и колонки таблицы. Для примера рассмотрим отчет с
таблицей, в которой колонками являются Склады, а строками - Номенклатура
(рис. 3.187).
Номенклатура '
ТОсновной .Розничный : ? ' Итого
Л Л- .. * „Г-е .....
< Приход ' Расход ; Конечный . Приход Расх щ Конечный Приход Расход . Конечный
| Веб-камера
-Жесткий диск
«Материнская плата
] Микрофон
[монитор 666
[Память
! Итого
I..
остаток
остаток
остаток
3,666," 3,666
5,000 3,000;
10,000
,000
7,000. 10,000
5,000, 3,000
! 10,000,
4^ос6;
2,000*
уооо
гроб-
0,000
2,000
3,000!
5,000!
16,000 >
4,000-
3,000]
3,666
3,66о! '
2,666;
2,666;
7,000
13,000 9,000:
2,000 [ ~ ? 5,000; 3,000
1 3 24,ОСО /,00Г _.17 ГОО 37®;
2,000;
6.666]
2 00
2,666]
21Д10-
гроо|
Рис. 3.187. Ресурсы отчета
При создании макета ресурсов необходимо указать либо имя группировки,
либо поля группировки, для которой создается макет. Также необходимо
указать тип макета. Типы макетов такие же, как и для макета группировки.
Для демонстрации макета ресурсов создадим схему компоновки данных
ПредопределенныйМакет1 отчета ОстаткиНоменклатуры путем копирования
макета ОсновнаяСхемаКомпоновкиДанных. В настройках отчета удалим вариант
отчета Оформление и снимем признак использования у поля КоличествоНа-
чальныйОстаток.
На закладке Макеты создадим макет ресурсов для вывода значений на пересе-
чении строк и колонок таблицы. В открывшемся диалоге выберем для первой
группировки поле Склад и тип макета Заголовок и для второй группировки —
поле Номенклатура и тип макета Заголовок. Зададим элементы оформления
ячеек ресурсов таблицы — шрифт и цвет текста. У всех ячеек в строке
Заполнение укажем Параметр, а в строке Параметр — имя конкретного поля,
отображающегося в ячейке. Ячейки будет только три, так как поле Началь-
ныйОстаток не выводится в таблице. Определим границы диапазона области
значений группировки. Платформа сформирует список параметров для этой
области и заполнит значениями по умолчанию (рис. 3.188).
г
Рис. 3.188. Создание макета ресурсов таблицы
Аналогично создадим макет ресурсов для вывода общих итогов по горизон-
тали таблицы. В открывшемся диалоге выберем для первой группировки поле
Склад и тип макета Общий итог заголовок и для второй группировки — поле
Номенклатура и тип макета Общий итог заголовок. Зададим элементы оформ-
ления ячеек ресурсов (рис. 3.189).
/ .. х.-’-к - .
I Наборыденных. Связи наб!
Рь (чсляемые „ | ' .Ресурсы ЛПериметры
Макет
Й Склад: Заголовок; Номе... ' Н1СГ.Н1СЗ
<»' О'
-------------,
Область
,)ЯЗС1:ЯЗСЗ
1
.3
4
5
О Параметры макета:
; ~------------
{! < Имя параметра
4 ЖГМММ МИМ
Выражение
2 «» КоличествоРасх.
< «® КоличествоКоне.
КоличествоРасход |
КоличествоКонечны... |
?!
* Наед ки
Макеты } блстненныёсхе..
<Кояичес, ^Кояичеа <Кояи^ес}^еоКоне'-;ныйОстагт10
к -И
,ЭЛ®аВ*»8|М!.' .' ' “ , - — - > —~—
<Колич<<Колич«К©лич<ствоКонечныйОстаток>
Макет , деэдсов т тбиицы
(Группировка 1 —
О Имя группировки
Ло^ЯГруППИррБ^
Поля
Тип макета:
итог заголовок
имннммма
г Группировка 2--
|- О И МЯ группировки
У Пеля группировки
О В / х
Поля_______
< ^Номенклатура
| Т ип макета:
| ^ббщий итог заголовок
! ок
пцв*яяаяц^
1 2
А
т г
X
я
Рис. 3.189. Создание макета ресурсов таблицы
Установим схему ПредопределенныйМакет1 в качестве основной схемы компо-
новки данных для отчета Остатки номенклатуры и выполним отчет. Ресурсы
таблицы выводятся с заданным оформлением (рис. 3.190).
Рис. 3.190. Результат отчета
Чтобы стандартные макеты оформления не влияли на макет нашего доку-
мента, в режиме настроек отчета на закладке Другие настройки можно
установить макет оформления Без оформления.
Макеты оформления
Макеты оформления компоновки данных предназначены для оформления
отчетов. При помощи макетов оформления можно указывать различным обла-
стям отчета определенные цвета фона, текста, шрифты и т. д.
Система компоновки данных позволяет задавать различные макеты оформ-
ления как для всего отчета в целом, так и для его отдельных группировок.
Для этого в режиме настроек конструктора схемы компоновки данных
на закладке Другие настройки нужно перейти в режим настроек нужной
группировки или глобального отчета и установить для них значение пара-
метра Макет оформления. Или же можно установить макет оформления
отчета и отдельных группировок в режиме 1 С: Предприятие по команде
Все действия ► Изменить вариант... на закладке Дополнительные настройки.
В приведенном примере в режиме изменения варианта отчета Продажи номен-
клатуры для группировки Контрагент параметр Макет оформления установлен
в значение Море (рис. 3.191).
Все действия
© Й*®1 Номенклатура
Период
,-:В Ий.»
Все действия
Ц Л ' Д Гратам ..
Вариант “Оотовнюй" отчета "Продажи номенклатуры
Добавить ’ Щ X ' й1 # 13®
| Структура отчета
г © Й} Отчет
Парам....
Депол...
Услов.
|.У, ШШР
Текущий элемент имеет собственные дополнительные настройки^
с Г а^аметр Значение: ,.. _ _ ,... . М]
V- МакСТОфОрМлеНИЯ 1 ВЖ _ „ 0
с Количество записей ТО
о Процент записей 10
с Тип макета Авто
я Расположение итогов Авто
Расположение полей группировок Вместе
!□ Расположение группир ® ок Начало.
Расположение реквизитов Вместе с владельцем
Го — —
Заверчиить редакзииргаавни© ' Отмена ! Все действия
Рис. 3.191. Настройка макета оформления отдельной группировки
Аналогично для группировки Номенклатура задан макет оформления Зеленый,
для группировки Период задан макет оформления Арктика, а для всего
отчета - Яркий. В результате каждая группировка оформлена своим стилем
оформления, а оформление всего отчета отражено лишь в заголовке, отборе и
параметрах, если они есть (рис. 3.192).
Продажи товаров и услуг
Параметры: Начало периода: 01.12.2011
Конецпериода: 15.12.2011
Контрагент Номенклатура Пентод Количество Стоимость
ООО "Автоматика" 11 500,00
Диагностика компьютера 2 1 500,00
5 декабря 2011 г. 1 1 000,00
11 декабря 2011 г. 1 500,00
Компьютер для дома 10 000.00
1’ де сабря 2011 г. 1 10 001,00
ООО "Система" 1Г 000,00
Компьютер для офиса 10 000,00
9 декабря 2011 г. 1 10000,00
ООО "Стиль" “ 1 10 000,00
Монитор КО 1 10 000,00
6 декабря 2011 г. 1 10 000,00
Итого 31 500 10
Рис. 3.192. Результат отчета
Существуют следующие стандартные макеты оформления:
Без оформления;
Основной - макет оформления по умолчанию;
Яркий;
Море;
Арктика;
Зеленый;
Античный.
Однако можно создать собственный макет оформления и затем использовать
его в оформлении различных отчетов.
Создание собственного макета оформления
Собственный макет оформления можно создать, используя конструктор
макетов. Для этого необходимо добавить новый макет в папку Общие макеты,
находящуюся в папке Общие дерева объектов конфигурации. В открывшемся
конструкторе макетов необходимо установить тип макета Макет оформления
компоновки данных (рис. 3.193).
’зйецчои,. макета. X1
Имя; МнГ~~~.................. ~, ]
Синоним: [Радуга О»]
Комментар^ [ ]
-- Выберите тип макета:----------------------------------------
О Т абличный документ
О Т екстовый документ
О Двоичные данные
О АсЙ*е боситегЛ
О НТМЬ документ
О Географическая схема
О Графическая схема
О Схема компоновки данных
@ Макет оформления компоновки данных
Загрузить из Файла ;
,
Г 1 . Справка., ]
Рис. 3.193. Создание нового макета оформления
Редактор макетов оформления позволяет редактировать цвета фона, текста
и границы, шрифты, отступы и т. д. областей макета оформления (рис. 3.194).
Конфигуредни СистемаКокЧюнойкиДанных Рэдута ь —:С1 X
Области: X } "Й1 ♦ пример:
Рис. 3.194. Редактирование макета оформления
Выделив в верхнем лййом окне нужную область макета, можно изменить
элементы ее оформления в нижнем левом окне и сразу увидеть результат
оформления этой области в правом окне редактора макета. При этом названия
областей, содержащих (Оформление, выделяются жирным шрифтом.
При выделении в списвобластей макета нужной позиции двойным щелчком
мыши одновременно выделяется соответствующая ей область резуль-
тата оформления, при условии что для этой области задано специфическое
оформление. И наоборот. Для каждой области макета существует возмож-
ность создать несколько уровней оформления. Это можно сделать, выделив
нужную область и нажа в кг опку Добавить над списком областей.
В нижнем левом углу редактора есть возможность сохранить и загрузить
макет в ХМЬ-формате. Кроме того, можно в любой момент очистить макет
или загрузить предопределенный Стандартный макет. Это может понадо-
биться, чтобы не разрабатывать свой макет оформления с нуля или чтобы
получить недостающи! опыт в оформлении макетов. При этом можно взять
за основу какой-либо стандартный макет оформления и изменить только необ-
ходимые области. I
Поясним назначение областей макета оформления. Структуру отчета можно
представить в следующем гиде:
н Заголовок — область । отч< па, содержащая заголовок отчета;
в Информация - обла сть отчета, содержащая текст установленных в отчете
отборов, а также параметры данных отчета;
' Элементы отчета — содержат группировки, таблицы, диаграммы или
вложенные отчеты. Таких элементов может быть несколько, например:
Элемент отчета 1, Элемент отчета 2 ... Элемент отчета Ы.
Группировку отчета мс ;кно представить в виде областей:
I Заголовок - область группировки, содержащая заголовок группировки
верхнего уровня; |
: Информация - область группировки, содержащая текст установленных
для группировки ве тхне го уровня отборов;
п Заголовок таблицы об пасть группировки, содержащая имена выводимых
полей.
Заголовки группировок - области, содержащие значения выводимых полей
группировки. Дани ле выводятся в начале группировки. Таких элементов
может быть несколько: Заголовок группировки уровень 1, Заголовок груп-
пировки уровень 2 . . Заголовок группировки уровень К;
Детальные записи - область, содержащая значения выводимых полей
детальных записей;
Подвалы группировки - области, содержащие значения выводимых полей
группировки. Данные выводятся в конце группировки. Таких элементов
может быть несколько: Подвал группировки уровень 1, Подвал группи-
ровки уровень 2 ... Подвал группировки уровень И;
н Общие итоги по вертикали — область, содержащая итоги по группировке.
Когда в настройках параметров вывода группировки задается тип макета
Вертикально, группировка выводится в виде списка. Группировку отчета,
представленную в виде списка, можно представить в виде областей:
Заголовок — область группировки, содержащая заголовок группировки;
Информация - область группировки, содержащая текст установленных
для группировки отборов;
н Заголовки группировки списка — области, содержащие значения выво-
димых полей группировки. Данные выводятся в начале группировки.
Таких элементов может быть несколько: Заголовок группировки списка
уровень 1, Заголовок группировки списка уровень 2 ... Заголовок группи-
ровки списка уровень И;
я Детальные записи списка - область, содержащая значения выводимых
полей детальных записей;
Подвалы группировки списка - области, содержащие значения выводимых
полей группировки. Данные выводятся в конце группировки. Таких
элементов может быть несколько: Подвал группировки списка уровень
2, Подвал группировки списка уровень 1 ... Подвал группировки списка
уровень М;
я Общие итоги по вертикали списка - область, содержащая итоги по груп-
пировке.
Таблицу отчета можно представить в виде областей:
Заголовок — область таблицы, содержащая заголовок таблицы;
в Информация - область таблицы, содержащая текст установленных для
таблицы отборов;
Заголовок таблицы - область таблицы, содержащая имена выводимых
в строках таблицы полей;
Заголовки группировки — области таблицы, содержащие выводимые
в строках таблицы поля. Данные выводятся в начале группировки. Таких
элементов может быть несколько: Заголовок группировки уровень 1, Заго-
ловок группировки уровень 2 ... Заголовок группировки уровень М;
Подвалы группировки списка — области таблицы, содержащие выводимые
в строках таблицы поля. Данные выводятся в конце группировки. Таких
элементов может быть несколько: Подвал группировки списка уровень 2,
Подвал группировки списка уровень 1 ... Подвал группировки уровень Ы;
Общие итоги по вертикали — область, содержащая итоги по колонкам
таблицы;
Заголовки и подвалы группировки колонки — области таблицы, содержащие
выводимые в колонках таблицы поля;
Ресурсы заголовка группировки, ресурсы подвала группировки, ресурсы
детальных записей — области таблицы, содержащие выводимые в ячейках
таблицы поля ресурсов. Для иерархических группировок используются
соответственно ресурсы заголовка и ресурсы подвала иерархической груп-
пировки.
Отметим, что в качестве заголовков и подвалов группировки могут быть
использованы заголовки и подвалы иерархической группировки. Перед заго-
ловками группировок могут находиться области заголовка и информации
вложенной группировки. При отсутствии области подвала группировки
выводится область ее заголовка. При отсутствии заголовка или подвала иерар-
хической группировки выводятся соответствующие области неиерархической
группировки.
Более подробно процесс создания собственного макета оформления описан
во второй главе на стр. 191. Рассмотрим теперь работу с макетами оформ-
ления с помощью встроенного языка.
Настройки отчета
При заполнении системой настроек компоновки данных (при интерак-
тивном редактировании, обработке расшифровки и т.п.) все свойства типа
ПолеКомпоновкиДанных заполняются путем к данным на языке, указанном
в свойстве конфигурации Вариант встроенного языка.
Конструктор настроек
Конструктор настроек облегчает процесс создания простых стандартных
настроек, определяющих, как будет выводиться информация в отчет.
Конструктор не предназначен для того, чтобы создавать любые настройки
отчета. Он позволяет сделать только несколько наиболее типичных сцена-
риев. Это инструмент, предназначенный в первую очередь для пользователя.
А также им может пользоваться и разработчик, если нужно быстро настроить
отчет без хитростей или просто посмотреть данные, выдаваемые отчетом.
Работа с конструктором настроек на конкретных примерах подробно рассмо-
трена во второй главе (стр. 60).
Конструктор настроек вызывается на закладке Настройки схемы компоновки
данных нажатием кнопки Открыть конструктор настроек ч, расположенной
на командной панели в окне настроек.
Работа с конструктором представляет простой пошаговый процесс. Сначала
определяется тип отчета (рис. 3.195).
Набор» данных г Связг наборов ;.,.. Вычисляемые:..
! Имя варил. ; Продставл.
* XI
Отчет
I
оу йа л роек _к«» поиэвкм данных
Ресурсе. 1 Параметры Макеты Вложенные схе
Основной
' Оформление ! Оформление
Тип отчета:
С
; С Отображать недоступные пароме
' * IСЗ' Конец периода
О •• ЧИ I
1
Ч.|
. 3-
' Настройки: {СфЩт Отчет
11 Параметры 1^ Выбраны...
в ®1хЙ Таблица \
Э Строки
&$саз Номенклатура
О Колонки '
@•^0 Склад
Параметр
О Список. Данные го всем измерениям отчета выводятся списком.
>Таблица. Данные выводятся по измерениям расположенным как по
горизонтали, так ц по ^ертикали._ .......... ..........
О Диаграмма, Данные выводятся в виде диаграммы.
М*??1 □ Уй» )
г
X
К
Рис. 3.195. Конструктор настроек. Шаг 1
Список — соответствует элементу структуры отчета Группировка, где инфор-
мация выводится по строкам;
Таблица - данные выводятся в виде таблицы, сгруппированные по строкам
и колонкам;
Диаграмма — данные выводятся в виде диаграммы.
На следующем шаге определяются поля, выводящиеся в отчет. Второй шаг
одинаков для всех типов отчета.
На следующем шаге осуществляется выбор в зависимости от типа отчета.
Если выбран тип отчета Список, определяются поля для группировки записей
в списке (рис. 3.196).
Рис. 3.196. Конструктор настроек. Шаг 3
Если выбран тип отчета Таблица, определяются поля для группировки строк
и колонок таблицы (рис. 3.197).
Комртрцкуйр настроек «ановкм данный
1^-1
Выберите поля некоторым будет производиться группировка табл1!ц, строк и
колонок отчета. Поля грутпирсвок отображаются в отчета
ДоСТа тЫб ПОЛЯ
Строки
Г------
Поле
1
< Ф
4;
а
&
л
а
Склад
КоличествоКонечныйОстагок
КоличествоНачалььыйОстаток >
КоличествоПриход
КоличествоРасход
Тип групп! ровки I ф
| Без иерархи* (
'?>Л
Колонки
Гполе
<птруприровкй Д-ф
| Без иерархии ] ф
» I
15^7 Табпщы:
Поле
Тип группировки
I -ф-
Г
г
С <Нэзад Н Далее >'4;
рт»4ена । Справка.
Рис. 3.197. Конструктор настроек. Шаг 3
Если выбран тип отчета Диаграмма, определяются поля для группировки
серий и точек диаграммы (рис. 3.198).
Рис. 3.198. Конструктор настроек. Шаг 3
Четвертый шаг одинаков для всех типов отчета. Здесь определяются поля для
сортировки записей в отчете.
Если выбран тип отчета Диаграмма, на пятом шаге определяется тип
диаграммы.
Варианты отчета
У одного и того же отчета может существовать несколько вариантов, пред-
ставляющих одни и те же данные в различном виде. Например, для отчета
Динамика продаж одним вариантом отчета может служить диаграмма, пока-
зывающая продажи товаров по периодам, а другим - табличный отчет,
показывающий продажи товаров в разрезе покупателей. При этом каждый
вариант отчета обладает своим набором пользовательских настроек.
Выбирая различные варианты отчета, пользователь может легко проанали-
зировать данные. Для этого следует нажать кнопку Выбрать вариант... в окне
отчета и указать нужный вариант (рис. 3.199).
Рис. 3.199. Выбор варианта отчета
к
Варианты отчета изначально создаются разработчиком в схеме компоновки
данных (стр. 37), исходя из реальных потребностей пользователя (рис. 3.200).
Отчет ОстаткмНоменклатуры: ОсновнаяСхемаК^мпоновк" данных
Наборы дани
Связи набор.. В гчисляемы.
Ресурсы Параметры Макеты Вложенны-. с Настройки 71
--------------
• Имя ваоиа,
Предсгавл... ? Г5~
0Т'1ГТ
Форм л, ние Оформление!
О @123 Таблица
0 Строки
Номенклатура
© Колонки
@}т Склад
1
]
Рис. 3.200. Создание вариантов отчета в схеме компоновки данных
В приведенном примере (см. рис. 3.200) для отчета Остатки номенклатуры
в схеме компоновки данных созданы два варианта: Основной (этот вариант
стандартно создается платформой для любых отчетов) и вариант Оформление.
При этом каждому варианту соответствуют свои стандартные настройки-
структура отчета, отбор, сортировка и т. п. Оба варианта будут доступны
для выбора в режиме 1 С:Предприятие (см. рис. 3.199) всем пользователям
прикладного решения.
Но достаточно опытный пользователь может изменить какой-либо вариант
отчета или создать свой собственный и сохранить его для дальнейшего
использования. При этом если в конфигурации предусмотрен специальный
механизм обмена настройками, им смогут пользоваться все пользователи
прикладного решения. Об этом будет рассказано ниже (стр. 410).
Чтобы изменить вариант отчета в режиме 1 С:Предприятие, нужно выполнить
команду Все действия ► Изменить вариант... При этом пользователю откры-
вается окно настроек отчета, очень похожее на закладку Настройки в схеме
компоновки данных (рис. 3.201). После выполнения изменений нужно нажать
кнопку Завершить редактирование.
Рис. 3.201. Изменение варианта отчета в режиме «1 С: Предприятие»
Однако следует иметь в виду, что окно полных настроек отчета, вызываемое
по команде Все действия ► Изменить вариант..., предназначено лишь для опыт-
ного пользователя. Для большинства же пользователей следует помещать
необходимые им настройки в состав пользовательских настроек (стр. 410),
которые будут доступны в отдельном окне по команде Настройка. При этом
наиболее часто используемые настройки должны быть быстрыми, то есть
располагаться непосредственно в отчетной форме.
Если вариант отчета был изменен, то при выборе другого варианта или
при закрытии отчета пользователь может сохранить сделанные изменения,
ответив утвердительно на соответствующий вопрос «1С:Предприятия»
(рис. 3.202).
Рис. 3.202. Запрос приложения о сохранении варианта отчета
Если редактировался вариант отчета, созданный разработчиком в схеме компо-
новки данных, то пользователю будет предложено сохранить эти изменения
в собственном варианте отчета, как если бы он нажал Все действия ► Сохра-
нить вариант... (рис. 3.203). Если же редактировался другой вариант отчета,
сделанные изменения сохранятся именно в том варианте отчета, который он
изменял.
и «ДО и варианта। отчета - Демонстрвцибхм5 конф., ’чй!
Сохранение варианта отчета
Ранее сохраненные варианты.
I
Имя сохраняемого варианта
^Объем продааф _
Сохранись Отмена
Рис. 3.203. Сохранение варианта отчета
СОВЕТ
Советуем сохранять свои изменения в собственном варианте отчета,
а стандартный вариант оставлять без изменений как образец. Тогда в случае
ошибки всегда можно будет вернуться к правильному первоначальному
варианту отчета.
Следует понимать, что если в конфигурации не разработан специальный
механизм обмена настройками, то вариант отчета, сохраненный в режиме
1С:Предприятие, будет доступен только конкретному пользователю, создав-
шему этот вариант, в то время как варианты отчета, созданные разработчиком
в схеме компоновки данных, будут доступны для всех пользователей приклад-
ного решения.
При этом для каждого варианта отчета может быть несколько вариантов поль-
зовательских настроек, сохраненных пользователем при помощи команды
Все действия ► Сохранить настройку... Однако такие варианты настроек будут
доступны лишь тому пользователю, который их сохранил.
Сохранение и загрузка настроек отчета
В схеме компоновки данных есть возможность сохранить настройки отчета
в ХМЬ-файл. Для этого нужно нажать кнопку Сохранить настройки в файл
расположенную в командной панели конструктора схемы компоновки
данных на закладке Настройки, и ввести имя файла для сохранения настроек
(рис. 3.204).
3; Ресурсы Периметры , Макеты Вложенные Сда . Настройки
$ Ь*
'1мявзриа.
Представг
Непроданных ЙГ Связи небелое Вычисляёные;
Основной
Настройки: дадаЗ От*
•лг-Ч.®
Параметры | в?р
3 Отображать нодосту
Парсметр
Э К/1СШ Контрагент
Номенклатура
Период
1 3' Конец периода
Рис. 3.204. Сохранение настроек в ХМЬ-файл
Далее можно удалить все сделанные настройки кнопкой Заменить настройки
стандартной настройкой, расположенной здесь же, и на запрос конфигуратора
о подтверждении потери текущих настроек ответить утвердительно.
Затем можно восстановить сохраненные ранее настройки из ХМЬ-файла. Для
этого нужно нажать кнопку Загрузить настройки из файла расположенную
здесь же, и ввести имя файла для восстановления настроек (рис. 3.205).
Ъ’ чет Продах—Номенклатчоь- ОсновнаяСхе^аКоъюоновкйДанньк
« □ X
Набот ы данных* Связи набс;ое
Вычисляемые.,
Ресурсы Параметры Макеты Вложенные схе. | Настройки [
Основной
Папка | База
Отчет*
□Г| узить наст, юики из файла
Рабочие стол
231Су8РТх1
Э1СУ8Юд
Мои
документы
л
Мой
компьютер
© 0ой Контрагент
•Э 0е™ Номенклатура
Период
•П«|Е9 В»
Настройки О;*
Выб;
Параметры
Параметр
Имя Файла-
Документ ХМ1_ (” хт!)
Тич Файлов
встройки продажи_номенкпатуры
Сетевое
< '.руление
анализ_поступления_продаж
настройки_анализЦен_СБ
настройки остатки номенклатуры
?, остатки_продажи_товаров
предопределеный_маквт
ХлримермакЕта
5, схема_анагмзЦен_СБ
!= 8 схема_маквтСБ
в! схема_оказание_услуг
схема_остаткиноменклатуры
схема_остаткиноменклатуры_макет
Рис. 3.205. Восстановление настроек из ХМЬ-файла
Лесеп1
О Конец периода
схема_поступление_товаров
схема_продажи
схема_продажи_контрагентам
г-5; схема_продажи_номенкпатуры
^схема_СБ
1= схема_СБ_мастера
С~; схема_составСБ
,= схема_список_номенклатуры
схема_цены_комплектующих
|настройки_лродажи_номенклатуры
Открыть
Отмена
________2
1
Настройки можно также сохранять/восстанавливать и средствами встроен-
ного языка.
Пользовательские настройки
Среди всего многообразия настроек отчета разработчик в схеме компоновки
данных (или квалифицированный пользователь при изменении варианта отчета
в режиме 1 С:Предприятие) может предоставить пользователю возможность
самостоятельно задавать и использовать часть настроек отчета. Например, это
может быть настройка отчетного периода, настройка отбора, настройка сорти-
ровки записей отчета и т.п. Такие настройки называются пользовательскими
(стр. 99). Они будут доступны пользователю в отдельном окне при нажатии
кнопки Настройка или по команде Все действия ► Настройка...
Среди этих пользовательских настроек существуют такие настройки, которые
нужны пользователю постоянно, чуть ли не при каждом запуске отчета,
поэтому они должны быть всегда на виду. Например, это отчетный период
или код бухгалтерского счета. Такие настройки называются быстрыми поль-
зовательскими настройками (стр. 53). Они будут доступны пользователю
непосредственно в отчетной форме.
Чтобы сделать настройку пользовательской, в схеме компоновки данных
на закладке Настройки нужно выделить настройку, нажать кнопку Свойства
элемента пользовательских настроек, расположенную в правом нижнем углу
окна настроек, и установить флажок Включать в пользовательские настройки
(рис. 3.206). Чтобы при этом пользовательскую настройку сделать быстрой,
нужно установить режим редактирования в значение Быстрый доступ.
ЯК4ЙГ 9» ЭД- Ж КМ
। Наборы данных Связи наборов д. Вычисляемьеп
Ресурсы
Параметры
Макеты
Вложенные сйе..
стройки
Имя вариан...Представле Отчет
Я
‘I • > ».Г|.
Основной
Си&емньаблок
Настройки Отчет Системы €лок
Параметры Выфанны...
3 Отображать недоступные параметры (устанавливать значения недоступных параметров не рекомендуется)
Значение
. Параметр
Г7| Началопериода
Ё Конецпериода
Отбор С и вка Условное... Пользоваг.. /иена...
Рис. 3.206. Установка свойств пользовательской настройки
! Произвольнаядата
Произвольная дата
В рассмотренном примере (см. рис. 3.206) параметры отчета Начало периода
и Конец периода включены в состав быстрых пользовательских настроек.
В результате они будут доступны для редактирования непосредственно
в отчетной форме (1), а также в отдельном окне пользовательских настроек
(2), вызываемом при нажатии кнопки Настройка (рис. 3.207).
Для неопытных пользователей обычно вполне достаточно и удобно, когда
настройки заданы жестко и при этом пользователь может лишь включить/
выключить признак их использования или, например, выбрать для отбора
отчета конкретный вид номенклатуры. Но для опытных пользователей можно
предоставить свободу в использовании настроек, то есть возможность,
например, самостоятельно создавать настройки отчета: отбор, порядок,
условное оформление и пр., аналогично изменению полных настроек в схеме
компоновки данных.
П йЫч бЛзкам тГП! ОД11Нгт<е|
4 й-
Отчет по системным блокам
Вариант отчета: I Основной
в
В
Г • ротировать
• Настройка/.
Все действия’ .
/5‘ р *| Немало периода
*• _*й Конец триода
Г--------"-----------
01122011
11.12.2011
. .----------- —--------------------------------------—,
Настройки отчета "Отч^ по остемныл блокам" -, ем (1 С:Гс, приятие? X
Настройки отчета "Отчет по антенным блокам"
, Настройка
Знач1 г е
И?! Начало период.
01 12 2011
Конец периода
11.12.2011
т
В
Завершит» редактирование Отмена Все действия
*1
Рис. 3.207. Быстрые (1) и обычные (2) пользовательские настройки
Для этого на закладке Настройки схемы компоновки данных нужно выделить
элемент структуры отчета и нажать кнопку Свойства элемента пользователь-
ских настроек, расположенную вверху, в командной панели окна настроек
(рис. 3.208). В появившемся окне можно отредактировать состав пользова-
тельских настроек элементов отчета.
1
Наборы данин;
Связи наб-;. ; ов данных Вычис ляемые поля Рес^сы Параметры Макеты Вложенные схемы
Настройки ।
| Имя Варианта Првдст^рлен .. 1Г Ь
С СНОВНОИ
Основной
Отчет
Контрагент
С- Номенклатура
Период
,Г.
а
ьйЯ | 1
I
Сэбтй 9 пбиьзовательскик я“Отроек отчета
Настройки.
Представление
араметры :
О Выбранные поля
Режим редактирования
О., -Быстрейдоступ
рте наст.
Оформлю4**. ...
____ О Порядок
Ой ..Быстрыйдоступ
Условное оформление ,
ОГруппировки ;
О. .Обычный
О; .Быстрыйдоступ
ОК 11 Отмена
Справке
X I
! < !
I
Рис. 3.208. Состав настроек отчета
В приведенном примере (см. рис. 3.208) настройки отбора и условного
оформления включены в состав пользовательских настроек, которые будут
доступны пользователю в отдельном окне, вызываемом кнопкой Настройка.
Пользовательские настройки могут быть переведены в разряд быстрых
и наоборот. Это может сделать разработчик в схеме компоновки данных путем
установки свойств настройки в значение Быстрый доступ или Обычный доступ.
В режиме 1С:Предприятие пользователь также, не изменяя вариант отчета,
может изменить состав настроек, выполнив команду Все действия ► Изменить
состав настроек... (рис. 3.209).
Завершив редактирование
Отмена
Установить стандартные настройки
Изменить состав настрое <
। Изменить Форму...
' ? Справка И
Рис. 3.209. Окно пользовательских настроек отчета в режиме «1С:Предприятие»
В открывшемся окне Состав настроек пользователь может указать, какие
настройки будут редактироваться в форме отчета (правый список), то есть
будут быстрыми, а какие будут доступны по команде Настройка (левый
список). Кнопками Добавить, Удалить или двойным щелчком мыши можно
перенести настройки из левого списка в правый и наоборот (рис. 3.210).
Рис. 3.210. Редактирование состава настроек
Или же можно редактировать состав настроек в окне Настройки отчета,
выполнив команду Все действия ► Изменить форму... и включив признак
отображения у колонки формы Редактирование в форме отчета (рис. 3.211).
- г- . - “ ~ ~ - “ --.м.... ц.: ....’ррГ'5»" ..
Рйсгр^йкц ответа'Т|родаж.иноменк, стуры Дем «стпацисмная энфигурация "Система км и .й.‘‘Г СПрп.. зйятйй; '
'*Ш* Я».«•Л_. ,
Настройки отчета 'Продажи номенклатурьГ
Настройка
4Г" "мм-аг •л.И" С 1—Д---^э-е и^й'а*<5ч"—
@ щ] Начало периода
@ Конец периода
О ' й НоменклалгураВид н... ; Равно
Й Отбор'”
Г1' д Нстжий заказ
Редактирование е Форме отчета .5
: 01.12.2011
! 15.122011
5
Диагностика компьютера
Условное оФормлете
О ! й Номенклатура ' Равно
-
Рис. 3.211. Редактирование состава настроек
Отмена Все действия » } ?
з
1
В повседневной работе пользователю часто приходится выполнять опреде-
ленный отчет с определенными настройками. Если пользователя удовлетворяет
вариант отчета, полученный с помощью сделанных им настроек и если таким
отчетом он планирует пользоваться регулярно, то, вполне вероятно, он захочет
его сохранить на будущее. Для этого в окне отчета нужно нажать кнопку Все
действия и выбрать пункт Сохранить настройку... (рис. 3.212).
. ----———„——....................
ч? охранениенастроекотчета- Демонстрационна?. । онф...II СЛредприягие) *
Сохранение настроек отчета
Ранее сохраненные настройки:
Имя сохраняемой настройки:
(^Оформление
Рис. 3.212. Сохранение пользовательской настройки
В дальнейшем пользователь может экспериментировать с составом и значе-
ниями настроек отчета. При закрытии окна отчета настройки, сделанные
пользователем, запоминаются и становятся настройками по умолчанию для
текущего пользователя.
Если пользователь хочет выполнить отчет с другой, ранее им сохраненной
настройкой, в окне отчета нужно нажать кнопку Все действия и выбрать пункт
Выбрать настройку (рис. 3.213).
Ю(боп г острое пгчета Лемонстр Ьрфгакггиз’ г
Рис. 3.213. Восстановление пользовательской настройки
ВНИМАНИЕ
Сохранение и последующая загрузка пользовательских настроек очень
уцобны для пользователя, чтобы ему не приходилось каждый раз
редактировать настройки вручную. Однако пользователь может выбирать
только те настройки, которые он сам сохранил.
Настройки, сделанные в режиме 1С:Предприятие, естественно перекры-
вают стандартные настройки, сделанные разработчиком в схеме компоновки
данных. И если пользователь настолько все перестроил в отчете так, что его
не узнать, то всегда можно вернуться к стандартным настройкам по команде
Все действия ► Установить стандартные настройки.
Хранилище вариантов
и хранилище пользовательских настроек
Подобно другим настройкам пользователей настройки вариантов отчетов
и пользовательские настройки отчетов стандартно хранятся в системных
таблицах информационной базы, и разработчик может иметь к ним доступ
с помощью встроенного языка.
Заметим, что в стандартном хранилище сохраняются только варианты отчетов
и пользовательских настроек, созданные в режиме 1 (^Предприятие. Варианты
отчета, созданные в конфигураторе, сохраняются в самой схеме компоновки
данных и являются частью конфигурации.
Кроме того, разработчик может переопределить стандартное хранилище этих
настроек в конфигурации как на уровне всей конфигурации, т. е. сразу для
всех отчетов, так и на уровне отдельного отчета.
В первом случае используются свойства конфигурации Хранилище вариантов
отчетов и Хранилище пользовательских настроек отчетов (рис. 3.214).
'•'Основные:
Им;!
'ЭКОМПОНОВКИ
Синоним I Демонстрационная конфигурация "Система компоновки данных1
Комментарий
^1
Основной режим запуска
Вариант встроенного языка
Основная роль
Модуль управляемого приложения
Модуль сеанса
Модуль внешнего соединения
< Управляемое приложение
-усский
—----------------------
Открыть
Открыть
Открыть
Дополнительные словари полнотекстового поиска |
.1x1!
Хранилище общих настроек ;
........... г. -........-...—.г
Хранилище пользовательских настроек отчетов!
/Х'Л
Хранилище вариантов отчетов
Хранилище настроек данных форм
Поедставление:
Командный интерфейс
Рабочая область рабочего стола
(Храни лищеВариантовОтчетов
<
Открыть
Открыть
Командный интерфейс рабочего стола Открыть
Основной язык
IРусский
Рис. 3.214. Свойства конфигурации для хранения настроек отчетов
Во втором случае используются свойства конкретного отчета Хранилище вари-
антов и Хранилище настроек (рис. 3.215).
х
5 X *
•'Основные:
ин
и
Синоним
• ОтчетПоПродажам
{Отчетпо продажам
Я V
Комментарий I
"Хранилище вариантов
Хранилище настроек
Модуль объекта
Модуль менеджера
Представление:
Основная схема компоновки данных (ОсновнаяСхемаКомпоновкиДанных
Открыть
Открыть
Л
х;О,Й _
! 1
Использовать стандартные команды Ь*
Основная форма
Основная Форма настроек
Основная Форма варианта
Расширенное представление
Пояснение I
ХДЬ
XД|[
X Й
Д;
Справочная информация:
Включать в содержание справки О
С. .равочная ннфор! эция 0т1
Таким образом, при сохранении вариантов отчетов и пользовательских
настроек отчета платформа использует следующий алгоритм действий.
Сначала просматриваются свойства конкретного отчета. Если в них храни-
лище настроек переопределено, то варианты и настройки отчета сохраняются
в это хранилище. Если в свойствах отчета ничего не указано, то платформа
просматривает соответствующие свойства конфигурации. Если в них храни-
лище настроек переопределено, то варианты и настройки отчета сохраняются
в это хранилище. Если в свойствах конфигурации тоже ничего не указано,
то платформа сохраняет настройки в стандартное хранилище (в системные
таблицы информационной базы).
Предполагается, что в простых конфигурациях (как и в демонстрационной
конфигурации, прилагающейся к книге) будет использоваться стандартный
механизм хранения настроек в стандартном хранилище, который не требует
дополнительного кодирования.
В сложных конфигурациях (например, когда требуется обмен настройками
в распределенной информационной базе, когда нужна особенная структура
хранения настроек и т. п.) разработчик может создавать собственные храни-
лища настроек и самостоятельно управлять их работой.
Копирование настроек отчетов между пользователями
Несмотря на то, что стандартный механизм хранения настроек в большин-
стве случаев вполне устраивает, хотелось бы доработать конфигурацию так,
чтобы все пользователи прикладного решения могли пользоваться вари-
антами отчетов и пользовательскими настройками, созданными в режиме
1 С: Предприятие.
Предположим, что пользователь, обладающий административными правами,
является достаточно квалифицированным и может создавать различные вари-
анты и настройки отчетов. Предоставим ему возможность копировать эти
настройки другим рядовым пользователям.
Создадим общую команду КопироватьНастройкиОтчетов и укажем группу
Сервис в панели действий приложения, в которой она будет отображаться
(рис. 3.216).
Рис. 3.216. Свойства команды для копирования настроек
В диалоге Командный интерфейс рабочего стола предоставим доступ к этой
команде только пользователю с ролью Администратор (рис. 3.217).
ом<*щ«ый интерфейс рабочего с года 1
; ОтбЙ _ " _ ' з по ролям: !<Не установлен __ 1
... Команда [ Видимость । Видимость по ролям !А: I
е ... - - ‘ “ - ~ —.1 4
ДДМИнЙр тратор Менеджер | |
Местаработы © ед ) й !
'Оф Оказание услуг © в II в : 11
[Щ Остатки и продажи товаров © в |1 © ! Г
Остатки номенклатуры © |Д <| ©И
1 Остатки номенклатуры по периодам ® и! 1: © И!
&Й Отчет по продажам ©
Отчет по системным блокам © эд !; @ |
Й Поступлениетоваров © И ;; © ! 1
1 !Й] Продажи контрагентам © 9 > @ = I
;Й! ПродажиНоменклатуры © ЭД !. & ! 1
К( Работа мастеров а й 1 '
№ Расчет показателей продаж ©
|ЗД Сборка системней блоков ©
Список номенклатуры © ЭД Г ® Н '
1 2Й Пены комплектующих от поставщиков © ЭД
/С? Д Панель действий Сервис (ручной порядок! | г ... .. ! ’4
1 ^.-1 Копировать настройки отчетов © © и } М|
1 &' Т онсоль системы компоновки данных ©Г" © ! т !
8в Организация □ и : и
Показьвать данные о продажах © 1г © н 1
1 1 0.К Г Отмена ]' С правке 1
Рис. 3.217. Видимость команды по ролям
। !
В модуле команды напишем следующий код (листинг 3.49).
Листинг 3.49. Обработчик команды для копирования настроек
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды. ПараметрыВыполненияКоманды)
СколироватьНёстройкиОтчетов():
КонецПроцедуры
Процедура СкопироватьНастройкиОтчетов()
СписокПользователей = ПользователиИнформационнойБазы.ПолучитьПользователей();
СписокОтчетов = Метаданные.Отчеты;
Для Каждого Пользователь Из СписокПользователей Цикл
ТекущийПользователь = Пользователь.Имя;
Если ТекущийПользователь <> ИмяПользователя() Тогда
Сооощить(’,Копирование настроек для пользователя:" + ТекущийПользователь);
Для Каждого Отчет Из СписокОтчетов Цикл
ИмяОтчета = "Отчет.” н Йтчет.Имя;
СписокВариантовОтчета = ХранилищеВариантовОтчетов.ПолучитьСписок(ИмяОтчета);
Для Каждого Вариант Из СписокВариантовОтчета Цикл
КлючВариа ла = Вариант.Значение;
Сообщить("Вариант отчета:" + Вариант.Представление);
ОлисаниеВарианта = ХранилищеВариантовОтчетоз.
ПолучитьОписание(ИмяОтче1 а, КлючВарианта);
//СообщитЦОписаниеВариаж а Представление);
ВариантОтчета = ХранилищеВариантовОтчетов.
Загрузить'ИмяОтчета, КлючВарианта);
ХранилищеВариантовОтчетов.Сохранить(ИмяОтчета1 КлючВарианта,
ВариантОтчета, ОлисаниеВарианта
ТекущийПользователь);
КонецЦикла;
КлючВарианп Отчета = ИмяОтчета + 7'+ КлючВарианта;
СписокНастроекВарианта = ХранилищеПользовательскихНастроекОтчетов,
ПолучитьСписок’К^ючВардантаОтчета);
Для Каждого Настройка Из СписокНастроекВариантаЦикл
КлючНастройкиВарйанта = Наетройка.Значение;
Сообщить(”Пользовательская настройка:” + НастройкаГредставление);
ОписаниеНастройкиВарианта = ХранилищеПользовательскихНастроекОтчетов.
ПолучитьОписание ХлючВариантаОтче а,
КлючНастройкиВарйанта);
//Сообщить(ОписаниеНастройкиВарианта.Представление);
НастройкаВариантаОтчета = ХранилищеПользовательскихНастроекОтчетов.
Загрузить(КлючВариантаОтчета, КлючНастройкиВарйанта);
ХранилищеПользовательскихНастроекбтче ов.
Сохранить(КлючВариантаОтчета, КлючНастройкиВарйанта,
НастройкаВариантаОтчета, Описание! йсТройкиВарианта,
ТекущийПользователь);
КонецЦикла;
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
В процедуре СкопироватьНастройкиОтчетов() Ьначала определяется
список пользователей информационной базы и список отчетов в коллекции
метаданных. Затем для каждого пользователя, кроме текущего (т.е. админи-
стратора), обходится список отчетов.
В цикле для каждого отчета получается список вариантор отчета, сохраненных
в стандартном хранилище (ХранилищеВариайтовОтчетов. Полу-
чит ьСписокО). Доступ к менеджеру стандартного хранилища настроек
получается при помощи метода глобального контекста ХранилищеВариан-
товОтчетов или ХранилищеПользовательскихНа1Строек0тчетов.
Затем для каждого варианта отчета, используя методы менеджера стан-
дартного хранилища настроек ПолучитьОписаниеО, Загрузить (),
Сохранить(), получаются описание варианта, собственно сам вариант
отчета, и полученные данные сохраняются для каждого пользователя.
Далее для каждого варианта отчета получается список пользовательских
настроек варианта отчета (ХранилищеПользовательскихНастроекОт-
четов.ПолучитьСписокО). |
Затем для каждой пользовательской настройки варианта отчета, используя
методы менеджера стандартного хранилища настроек ПолучитьОписа-
ние(), Загрузить(), Сохранить(), получаются описание пользователь-
ской настройки, собственно сама пользовательская настройка, и полученные
данные сохраняются для каждого пользователя.
В качестве ключа объекта для вариантов отчета используется полное имя
отчета, например, строка Отчет.ОстаткиНоменклатуры. В качестве
ключа объекта для пользовательских настроек вариантов отчета используется
полное имя отчета плюс через флеш (/) ключ варианта отчета.
В результате выполнения команды Копировать настройки отчетов, иницииру-
емой администратором, все варианты отчетов и пользовательские настройки,
созданные им в режиме 1 С:Предприятие, будут скопированы другим пользова-
телям прикладного решения.
Фиксированные настройки
В некоторых случаях существует потребность в настройках, которые не будут
зависеть от текущего варианта отчета и от текущих настроек отчета.
Например, бывает нужно, чтобы при открытии отчета (р указанным отбором,
условным оформлением и т. д. указанный отбор, условное оформление и т. д.
не применялись непосредственно к пользовательским” настройкам, так как
в этом случае они будут сохраняться вместе с ними и затираться при выборе
другого варианта отчета или пользовательской настройки.
Иногда при анализе отчета может возникнуть потребность изменять вариант
отчета, сохраняя при этом некоторые настройки неизменными. Например,
нужно проанализировать различные варианты отчета для одного и того же
контрагента.
Для решения подобных задач существуют фиксированные настройки,
к которым можно получить доступ из встроенного языка, используя
свойство ФиксированныеНастройки и метод ЗагрузитьФиксирован-
ныеНастройки(), аналогичный методу ЗагрузитьНастройкиО объекта
КомпоновщикНастроек.
При исполнении отчета, а также при получении настроек с помощью метода
встроенного языка ПолучитьНастройки () происходит следующее:
н пользовательские настройки применяются к основным настройкам
(в возвращаемой копии настроек);
н отбор из фиксированных настроек добавляется к отбору основных
настроек;
м условное оформление из фиксированных настроек добавляется к услов-
ному оформлению основных настроек;
н параметры данных, установленные в фиксированных настройках, уста-
навливаются в основных настройках.
При наличии пересечения отбора и параметров фиксированных настроек
с отбором и параметрами пользовательских настроек варианта отчета, при
исполнении отчета и получении настроек при помощи метода ПолучитьНа-
стройки () выдается ошибка.
При наличии у отчета фиксированных настроек любая расшифровка выпол-
няется в новом окне.
При наличии фиксированных настроек в реквизит представления варианта
добавляется строка «(Установлен дополнительный отбор)».
Упорядоч и ван ие
Так как в отчет может выводиться множество группировок и таблиц, упоря-
дочивание в системе компоновки данных желательно выполнять средствами
самой системы компоновки данных, а не средствами языка запросов.
В запросе также можно упорядочить записи в отчете, но, во-первых, система
компоновки предоставляет для этого больше возможностей, которые будут
рассмотрены ниже, а во-вторых, упорядочивание в запросе делает отчет менее
гибким с точки зрения его дальнейшей настройки пользователем.
Упорядочивание группировок
По умолчанию каждая группировка будет упорядочена по полям группи-
ровки. Например, в отчете есть группировка по полю Номенклатура и не
указан порядок. В таком случае упорядочивание гругпировки будет осущест-
вляться по полю Номенклатура (рис. 3.218).
{Продажи товаров и услуг
1 Параметры: Начало периода: 01.01.2012
Конец периода: 31.01.2012
Контрагент Количество Стоимость ;
, Номенклатур_а, Код 1. Г
! Период Г . , Л
ООО "Автоматика* 13000,00;
• компьютер игровой, 000000013 1? 13000,00
| 12 января 2012 г. | 1| 13000,00
ООО ‘7 .тл&нт 9 000,00.
1/"Восстановление данных 000000016 \ Г, 5 000,00
15 января 2012 г. 1; 5 000,00;
Ремонт компью. эри, 000000014 1; 3000,00;
13 января 2012 Г. 1: З'обо,об;
Сопутствующие услуги, 000000015 1 000,00
13 января 2012 г. 2' 1 000,00;
ООО ,1дгандарт'/н" ' . 4500,00
Диагностика компьютера, 000000007 1, 500,00
14 января 2012 г. 1; 500,00
Ремонт компьн. .ера, 000000014~ 1| 3000,00
14 января 2012 г. 1, 3000,00-
Сопутствующие услуги, 000000015 2. 1 000,00:
14 января 2012 г. 2 1 000,СО'
ООО “Стиль" ; 18 500,00
Веб-камера, 000000026 . 3; 4 500,0о
12 января 2012 г 3| 4 500,00'
Микрофон, 000000028 г 2 , 2 000,00.
12 январи 2012 г. ! 2! 2 000,00
М энитор ЬСО, 000000012 ] 11 12 000,СО
12 января 2012 г. 11 12 003,00
"ТОГ 45000.00
Рис. 3.218. Ре:
>ультат отчета
! I
<:а по полю Номенклатура
отчета в целом указано
Рассмотрим другой пример. В отчете есть груп пиров]
и в глобальном упорядочивании, то есть настройках
поле Номенклатура.Код (рис. 3.219).
; кл{ОДгадЗ^^,
Вариант ХписокПродаж" отчета “Продажи номенклатур^’
Рис. 3.219. Настройка сортировки отчета в целом
В таком случае упорядочивание группировки будет осуществляться по полю
Номенклатура.Код, после чего — по полю Номенклатура (рис. 3.220).
I Продажи товаров и услуг
| Параметры: Начало периода: 01.01.2012
Конец периода: 31.01.2012
Контрагент ~ ^оменклаг.ра Код Количество .Стоимость.
Период . .. „ ., . .. . - - . - -=< 3
^ООО "Автоматике. 13000.0С
| Компьютер игровой, 00000001 ? - 1 13 000,001
I 12 января 2012 г. 1 13 000,001
^Ремонт. омпьютер , 000000014 9 000,00'
: I * 1 3 000,04:
; 13 января 2012 г. 1 ЗОО^ДО!
! Сопутствующее услуги, 000000015 2 1 ооороь
< 13 января 2012 г. _ 2, 1 000,00'!
Восстановление данных, 000000016 , 1< 5 000,00'
I \*_ 1& января 2012 г. _х 1 5 000ДО!
ООО "Стандарт" 41 00 ДО 1
I Диагностика компьютера, 000000007 1 500до!
14 января 2012 г. 1 500,00*
Ремонт компьютера, 000000014 1 3 000Д0
14 января 2012 г. 1 ЗОПОДОЬ
’ Сопутствующее услуги, 000000015 1 000,001
14 января 2012 г. 2 1 000до 5
ООО "Стиль" 18 500,00-
Монитор ЬСО, 000000012 1 12000,00',
12 января 2012 г. 1 12 000ДО [1
! Веб-камера, 000000026 3 4 500,СЮ '
1 12 января 2012 г. 3 4 500,00!
г Микрофон, 000000028 _ 2 2 000,00'
| 12 января 2012 г. 2 2 000,001
[Итого X'-.'. -.гуу.-'Х'!:., А.. , 45 000ДО
Упорядочивание полей
Для упорядочивания ссылочных полей система компоновки получает поля, по
которым следует упорядочивать таблицу, на которую осуществляется ссылка,
и использует вместо упорядочивания по самому1 полю упорядочивание по
полученным полям. |
Например, отчет нужно упорядочить по полю Номенклатура, являющемуся
ссылкой на справочник Номенклатура, который, в свою очередь, является
иерархическим справочником с основным представлением в виде наимено-
вания. В таком случае система компоновки будет получать поля Это Группа,
Наименование, Ссылка для значения ссылки и упорядочивать по этим полям..
При этом поле Ссылка уже будет сравниваться в соответствии с правилами
сравнения ссылок. I |
Система компоновки данных предоставляет возможность указывать рдра-
жен ие упорядочивания для полей набора данных? Для этого в конструктору
схемы компоновки данных на закладке Наборы данных следует ввести соот-
ветствующее выражение в колонку Выражение упорядочивания для йоля
набора данных (рис. 3.221).
Пеле
и». Код
=»: Наименование
' Путь
. Двтозаголовок
I
}
(
Код
' Наименование
>'_! Наименование
Ссылка
Ссылка
; Ограничение поля , Роль Выражение представления
' П.. У... • Г... । У... ; Выражения упорядочивания
: Ограничение рек...
гь. Г-.., У... :
(У о ’оУ
Выбор Когда Н зимёнов -'
"Ремон 'Ои^ютара*'Тогда7
". -------------------------
'Пр
^Нг
I -
:Пе
«м; Ссылка
Рис. 3.221. Выражение упорядочивания для поля «Наименование»
Если в схеме компоновки для поля указаны вы|ражения упорядочивания,
то для упорядочивания по этому полю будут ^пользоваться результаты
указанных выражений.
I
I I
Для примера рассмотрим отчет СписокУслуг. На загладке Сортировка указано,
что данные в отчете будут упорядочиваться по полн> Наименование. Но вместо
стандартного представления для этого поля на закладке Наборы данных задано
собственное выражение, по которому и будет проводиться упорядочивание
записей в отчете. Нажав кнопку выбора для поля Наименование в колонке
Выражение упорядочивания, можно вызвать диалог его свойств, который
содержит:
Выражение — текст выражения на языке выражений системы компоновки
данных;
Тип упорядочивания - по убыванию или по возрастанию;
Необходимость упорядочивания — флажок для определения упорядо-
чивания ссылочных полей. Если данный флажок установлен в значение
Истина, то для упорядочивания ссылочных полей, полученных в резуль-
тате вычисления выражения, будут использоваться поля, по которым
следует упорядочивать таблицу, на которую осуществляется ссылка.
В противном случае ссылки будут упорядочиваться в соответствии с прави-
лами сравнения ссылочных значений компоновки данных, описанных
в документации.
Диалог выражений для упорядочивания поля Наименование содержит две
записи. Чтобы создать выражение, нужно нажать кнопку Добавить и ввести в
колонку Выражение следующий текст (листинг 3.50).
Листинг 3.50. Выражение для упорядочивания поля «Наименование»
В^бор Когда -1аи:леновани9 = "Ремонт компьютера" Тогда 1 Иначе 2 Конец
Для данного выражения указан Тип упорядочивания - по возрастанию. Для
второго выражения в колонке Выражение выбрано поле Код и указан Тип упоря-
дочивания - по убыванию. Таким образом, установлено, что первой в списке
услуг должна располагаться услуга с наименованием Ремонт компьютера,
а остальные записи в отчете должны располагаться по мере убывания кода
услуги. В результате окно диалога имеет вид (рис. 3.222):
Рис. 3.222. Установка выражения упорядочивания
В результате выполнения отчета записи будут упорядочены в соответствии
с описанными выше условиями (рис. 3.223).
Список услуг
Кпд , • !Наименование
000000014 ’емонт компьютера 1
000000016 000000015 ~ 000000007 Восстановление данных । Сопутствуюшдеуслуги ; Диагностика компьютера ;
□00000006 Сборка компьютера !
Отбор
По тем же причинам, что и упорядочивание (стр. 417), отбор в системе компо-
новки данных желательно выполнять средствами самой системы компоновки
данных, а не средствами языка запросов.
В настройках компоновки данных возможно указание главного отбора
и отбора группировок. Главный отбор устанавливается для всего отчета
в целом. Отбор группировок устанавливается у конкретной группировки.
Главный отбор отчета
Главный отбор используется для фильтрации записей, выводимых в отчет.
В приведенном примере в настройках отчета Продажи номенклатуры уста-
новлен отбор по виду номенклатуры (рис. 3.224).
Г? йа₽ан Е ।И Польз.., ГЖ ОтбоГЪОслов-.
Текущий элемент имеет собственный отбор (для фильтрации записей, выводимых в элементе)
Выбрать
Все действия - ^Добавить новый элемент ! Сгруппировать условия ; X 1 51г Ф 1 ч®
1
Г
I
Все действия- I
’ Доступные поля
" 1ПЙ« ГКО-
1»
1«
Контрагент
Номенклатура
Период
Стоимость
Параметры
П зле
; 9 Отбор
-.Виа сравнения
Значение
Ф Номе(•йитдгу Вид момент., к |г ы я&внс
I
I-
Г
Рис. 3.224. Отбор отчета в целом
В результате в отчет выводятся только продажи услуг (рис. 3.225).
| Продажи товаров и услуг
Отбор: Номенклатура. Вид номенклатуры Равно "Услуги"
Контрагент Количество Стоимость
Номенклатура .. I
Период ., . •. ..
ООО "Автоматика" г _ - - 1 500,00
| Диагностика компьютера 2 1 500,00
5 декабря 2011 г. 1 1 000,0П
11 декабря 2011 г. 1 500,00
ООО "Атлант" 8000,00
Восстж ©слеше данных 1 5 000,00;
15 января 2012 г. 1 5000,00;
Ремонт компьютера Г 11 зо66,бо'
13 января 2012 г. 1 3000,00
Сопутствующие услуги 2 . 1 000,00;
13 янвсря2012 г 2 1 000,00
ООО тендер-1 - - .. 4 500,00
Диагностика компьютера 1 500,001
14 января 2012 г. 1 500,001
Ремонт компьютере 1 3000Д0!
14 января 2012 г. 1 зоооро
Сопутствующие услуги 2 1 оооро;
14 января 2012 г. ~~ 2 1 000,0'
Итого • / . 15000,00
Особенности использования отбора при работе
с несколькими наборами данных
Заметим, что если в главном отборе накладывается условие на поле некоторого
дочернего набора данных, то в сгенерированном макете компоновки данных
дочерний набор данных будет связан с родительским набором данных с типом
связи Внутренняя. Родительские наборы данных набора данных, к которому
применяется условие, также будут связаны со своими родительскими набо-
рами данных с типом связи Внутренняя. Данный тип связи означает, что запись
родительского набора данных будет выводиться в результат отчета только в
случае, если в дочернем наборе данных будут найдены связанные записи.
Отбор группировок
Отбор группировок используется для фильтрации записей, выводимых
в группировке. При этом отбор распространяется на саму группировку,
на вложенные группировки и не влияет на другие группировки, имеющиеся
в отчете.
В приведенном примере в отчет выводится группировка Склад с вложенной
группировкой по полю Номенклатура в ее строках и группировка Детальные
Ьаписи. Отбор установлен в режиме настроек группировки Номенклатура
и будет применяться только к ней (рис. 3.226).
, Имя вариан а Представление •_
ч данных Свя&пнабсч о®данных к ВжисляемыелоМ
Реет х । ' Параметр Макеты I» Вложенные схемы * | Настройки
Дсновно', , Основной
г
КоличествоНачальныйОстаток
Номенклатура
КоличествоПриход
КоличествоРасход
Склад
ПараметрыДанных
Р Склад
йй833 < Детальные записи?
Рис. 3.226. Отбор группировки «Номенклатура»
Поля труп! црпг1..и
Другие настро»- ки
Доступные поля
I Левее значение
Вид сравнения Пргеоезн../* П,
• ,,-г । •
' & Отбор
гКонечныйОс ж ♦
Больше
1,000-: О
В результате в верхней группировке отчета отсутствуют записи с конечным
остатком меньше или равным единице, которые мы видим в группировке
Детальные записи (рис. 3.227).
Остаткь Н0МГН .ЛСЯ‘’ре1ь.»ладие) л /’ 'Н / М*; Н*
Ост Варне атки номенклатуры
1нт отчета: [Оформление ; Выбрать вариант.....] Ц,
Все действия ” <
1 Сфорыироиас ' Настройка...
1 Н I Остатки номенклатуры . ;
И-..-,..... Приход Расход Конечный 1 остаток
цы год печален
остаток
бсноьной ' . 13,000! ’• 9,ВР"|‘| 4Ж : 1 !
?тбов: Конечный остаток Больше'Т' ] |
Материнская плата 5,000 [ 3,000] 2,0001
Память ? । 5.000 3.000! 2,000! ! 1
Розничный . • - • - ! 24Д «О! 7,000 17.000; * 1.
! 1 1 I 1 а 1 I п 1 Отбор: КонечныйОстаток Больше"1“ 2^
(Веб-камера ] юдзоо] 3,000 ! 7,ооо; ; ; |
Микрофон I 10,0001 2,000 ; 8,000
Монитор БСБ 4,000 2 900 ; 2,0001 ! | |
Итого 37.000 16.0011 21.000 КШ .
Список номенклатуры на складах ; | I 1 1
Номенклатура Склад! Прихя сход Конечный ?
'Микрофи Розничный ! 10,06.3 2,000 ’ 8,000' , > 1 Веб-камер ‘Розничный ; 'Ю.ООО' 3,000 Г 7,000; ' | № МниторЬСО ^Розничный _] 4,000 ' 2,000 2,000 [материнская плата 'Основной 5,000 . 3,000 2,000 четкий диск Основной I 3,000 3,000 у Н: Г " * :»
- -1 . ,1Г1 г * ч , 1,-. . Я; 1 Л-> ! 0
• - - , г
Рис. 3.227. Результат отчета
Тип применения отбора группировок
В отборах, применяемых к группировкам, возможно указывать тип приме-
нения условия для выводимых записей.
Возможны три варианта типа применения:
Без иерархии - условие применяется только к неиерархическим записям.
При этом иерархические записи не фильтруются. В отчет выдаются только
те иерархические записи, в которых присутствуют неиерархические
записи, удовлетворяющие условию. Итог по ресурсам в иерархических
записях и общий итог по группировке учитывают условие;
и Иерархия - условие применяется как к неиерархическим, так и к иерархи-
ческим записям. Итог по ресурсам в иерархических записях и общий итог
по группировке отбор не учитывает;
Только иерархия - условие применяется только к иерархическим записям.
Итог по ресурсам в иерархических записях и общий итог по группировке
отбор не учитывает.
Более подробно этот вопрос рассмотрен в разделе о выводе уровней иерархии
в группировке (стр. 434).
Особенности отбора по полям-ресурсам
При использовании отбора на поля-ресурсы следует учитывать, что если отбор
на поле-ресурс был добавлен в главный отбор отчета, то этот отбор будет
помещен в текст запроса, то есть фильтроваться будут именно детальные
записи, которые получаются из запроса, а не итоги ресурса для группировок.
Таким образом, если в отчете требуется получить только записи группировки,
в которых значение ресурса удовлетворяет некоторому условию, то следует
добавлять отбор в группировку, а не в главный отбор.
Рассмотрим эту особенность на примере отчета Продажи номенклатуры. Уста-
новим отбор для отчета в целом, чтобы значения ресурса Стоимость были
больше 3000 (рис. 3.228).
Вариант “Основной*' отчета ‘‘Продажи номенклатуры
Все действия
С рчктура отчета
Поля
Бол >ше
^Стшмость
* Завершит! актирование Отмена Все действия
_ 4 д - -
«У Контрагент
В Номенклатура
р]ааз Период
Рис. 3.228. Отбор отчета в целом
Т екущий элемент имеет собственный отбор (для Фильтрации записей, выводимых в элементе)
Выбрать
' Доступные поля
&вя
Все действия ’ (^31 Добавить новый элемент | Сгруппировать условия Бездействия
Количество
Контрагент
Номенклатура
Период
О Параметры
’ Поле я
у'1. Ру^ор
Видсравнения ^Значение
&
В результате фильтруются детальные записи, и в отчет выводятся только
продажи со стоимостью больше 3000 (рис. 3.229).
Создадим то же условие отбора для группировки Контрагент (рис. 3.230).
В результате в отчет попадут продажи, стоимость которых меньше 3000, но
суммарная стоимость по контрагенту для которых удовлетворяет заданному
условию (рис. 3.231).
Продажи товаров и услуг
Параметры: Начало периода: 01.12.2011
Конец периода: 15.12.2011
Отбор: Стоимость Больше "3 000“
Контрагент Номенклатура Период КьЛИЧБиТВО .: Стоимости д •; 1
ООО “Автоматика" 5 • 10.000,00
| Компьютео для дома ж I ! I : 10 000ДО
I 11 декабря 2011 г. 10 000,00
ООО "Система" . Г ' ... ЮОООДО
Компьютер для офиса ! 1 10 000ДО
9 декабря 2011 г. г 10 000ДО
ООО Стиль" 10 ооо,Ьо
Монитор ЬСО I 1 ЮОООДО
6 декабря 2011 г. { 1 10 000,00
Итого _ 30 000Д
Рис. 3.229. Результат отчета
1^»1йнг’',ЗкНй^й1' ’ г. гт Т» здь “и н модЛя», ы - X, тачстоаин тная конфычц ади * , х1С11редпрЦятйе( X, :
Вариант "Основной" отчета "Продажи номенклатуры"
Добавить ’ | ; X } &
Все действия
| Структура отчета.
1_а
и...
у Номенклатура
06Ш Период
Г.О.
пел
Поля,; I
. Г™ Г
75] Текущий элемент имеет собственный отбор (для Фильтрации записей, выводимы с элементе)^
1
Выбрать
В се действия
Добавить новый элемент ! Сгруппировать условия ( Все действия
доступные роля
[Поле
Вод сравнения
Значение Пр»
Номенклатура
Период
Количество
й Отбор
Больше
06
II
® 3
Системные поля
Параметры
Завершить < сдакт^рова* ие Отмена | Все действия
Рис. 3.230. Отбор группировки «Контрагент»
Продажи товаров и услуг
Параметры: Начало периода: 01.12.2011
Конецпериода: 15.12.2011
Отбор: Стоимость Больше "3 000'
Коитоа/е-г Количестве Стоимость
Номен! натура й
бериод..._
“Автомат^®" |г 11 5СЗ,ф>
Диапюстика лампыотере 2 1 500,00
5 декабря 2011 г. 1 1 000,00
11 декабря 2011 г. 1 500,00
Компьютер для дома ъ 10000,00;
11 декабря 2011 г. - -- ,1 ЮОООДО
(ООО ‘'Система" ;. 10 000.00'
компьютер для офиса 1 10 000.00
9 декабри 2011 г. Г 10 000,00,
ОСС "Стиль" 10 000 ДО’
| Монитор ССЭ 1 10 000,00:
6 декабря 2011 г. 1 юооодо;
Итого :» ’^г-:“ хикуЗ 31 500.00
Расположение реквизитов
Реквизитами поля в системе компоновки данных называются все его подчи-
ненные поля, доступные через точку. Например, для поля Номенклатура
реквизитом является поле Номенклатура.Код. Дополнительные характеристики
объектов, например Регион, Категория, также являются реквизитами поля
Контрагент с точки зрения системы компоновки данных.
Управлять расположением реквизитов можно в конфигураторе, в режиме
настроек конструктора схемы компоновки данных на закладке Другие
настройки или в режиме 1 С:Предприятие при изменении варианта отчета (Все
действия ► Изменить вариант) на закладке Дополнительные настройки.
Для этого нужно установить значение параметра Расположение реквизитов
(рис. 3.232).
• Л Л-.-Г
Папаметры . Выбрани... Отб. С «мад. Усл. *н. я ПтмивзоЦи.; Другиен..
Параметр
',О- Макет оформления
|ГЗ; Расположение итогов
| О Расположение полей группировок,
к--;'-- ~ -........-- ----
। О; Расположение групп-ровок
* Расположение реквизитов
О Расположение ресурсов
| Значение
Основной
Авто
Вместе
Начало
Вместо с вг.цельцем;
| Вместе
□ Расположение общих итогов по горизонтали I Отдельно
О Расположение общих итсгов по вертикали
!СЗ' Т ип заголовка полей
| В специальной позиции
I
Рис. 3.232. Настройка расположения реквизитов
Существуют следующие варианты расположения реквизитов:
Вместе - реквизиты располагаются вместе в одной колонке и разделяются
запятой. В приведенном примере создано две колонки, отображающие
реквизиты контрагента и номенклатуры соответственно (рис. 3.233);
.Контрагент /Код. Регион . \ Номенклатура /Код, Ви; номенкге ''р^'Количество. Стоимость
'ООО "Автоматика" 000000001, _ 13 000.007
Компьютер ипэоьой 000000013, Комплекты 1 13 000,00
ЗОО "Атлант" ОтООООК \1оскв а зоооро
1 Восстановление данных 000000016, Услуги 1 5000,00
1 Ремонт компьютера 000000014, Услуги 1 3000,00'
Сопутствующие услуги 0000(00015, Услуги 2 1 000.00
'ООО Стандарт" Г" ' - г 000000006, Королев 4500.00'
Диагностика компьютера 001,0,0007. Услуги 1 500,00
г Ремонт компьютера 000000014, Услуги 1 3000Д)
Соп тствующие услуги ШООЦО015. Услуги 2 1 ОООрО'
|ООО”СТИ' “ ООООПООи, 18 500 Л0
1 Веб-камера 000000026, Материалы 3Г 450Г.00.
1 I Микрофон 000000028, Материалы 2 2000,00'
I Монитор 1.СО 1Щ0000012, Материалы / 1 12000.05
[Итого --- 3? < л. С {45 000.0.1
Рис. 3.233. Вывод полей реквизитов - «Вместе»
Отдельно - для каждого реквизита создается отдельная колонка. В приве-
денном примере для каждого реквизита контрагента и номенклатуры
создано по отдельной колонке, причем при выводе группировок Отдельно
колонки реквизитов контрагента располагаются после колонки Контрагент,
е. колонки реквизитов номенклатуры отображаются после колонки Номен-
клатура (рис. 3.234);
11-П ' - |ф.- - _ —- 111Ьнтрагент Код Регион Номенклатупа Код Вид номенклатуры Коли» ество СТОИМО! ’Ъ 1, 4
Автоматика” 000000001 13000,00
Комгьютер игрец ой 01 “30001С Комплекты 1 13 000.ОС
С ОФ"|Атлант" ‘ 00000005 Москве 9000,00
— , —*'*• . Зое т_!,.чокпени< данных ’емонт компьютера Сопутствующие услуги ОПООООП'6- 000000014 000000015 Услуги Услуги Услу|И — 2 5(100,00, ' збоо.сг 1 ЛОО.ОС
С ОС» 1100С0000К Королев 4500,00
———-— . Диап-г ин компьютера ’емонт компьютера 000000007 000000011 1 :луги_ Услуги л_ 1' лоо,оо ’ 1; з оо( .о
Сопутствующие услуги 0001 00015 Услуги Г—’ 1 000,00
|СОО” Стиль" И000Ш07 - — 18 500.00
Зеб-камера ООГ0ОО26 Материалы 3 4 500,00?
МикосЛоч 000000028 Материалы 2 2 000.0С
топ Монитор ЬСО 0011000012 Материалы 1 12000/33'
.- . .. .. ... А 45000,00 ’
I Т' ’ ’ ₽ ис. 3.234. Вывод полей реквизитов - «Отдельно» ।
Е
||
мрсте с владельцем - реквизиты располагаются в колонке, отображающей
владельца. Данное расположение реквизитов используется по умолчанию.
Ё приведенном примере реквизиты контрагента расположены в колонке
□нтрагент, а реквизиты номенклатуры - в колонке Номенклатура (рис. 3.235);
К
(знурагент. Код, Регион *^бмегклагура. Код, Вид н< менклатур» > X ^Количество Стоимость
X Ю’Автоматика", 003000001 ' 13000,00
Компьютер илэовой, 000000013, Комплекты 1< 13000,00 1
тлант', 000000005 Москва 9000,00
. _ Восстановление данных, 000000016, Услуги 1< 5ОООАЗГ
..... .... . । Ремонт компьютера, 000000014, Услуги 1 "000,01
5К Ю' ^танлаи -1 000000006, Королев Оочутст1 тощие услуги. 000000015 , слуги 2- 1000,00 ' "7” 4 500,00
:г • - — — Диагности а компьютера, 000000007, Услуги^ Ремонт г хипьютера. 000000014, Услуги 1] 500,00 ’з'абод з
'Г ”* Сопутств ,то1"ие у слуги, 000000015, Услуги 2- 1 000,0"
тиль”. 000000007, ! 1850000
г 4 Вес те’ере 000000026, Материалы Микрофон, 000000028, Материалы Хрии - . 1 СО, 000000012, Материалы 2/ _3|_ _ 4 500,00, __ 2! _ 2030.00 1 К 000 О
|?1-оГо 4 »000,00
4 4 »V. »
Рис. 3.235. Вывод полей реквизитов - «Вместе с владельцем»
В специальной позиции - реквизиты располагаются в специальной колонке,
расположенной правее всех остальных колонок. В приведенном примере
реквизиты контрагента и номенклатуры расположены в одной колонке
к разделены запятой (рис. 3.236);
Центра [|| р гент I Номенклатура1" И<сл, Регион Код, Змд номенклатуры Количеств^ Стоимость
Ф?.'Я тематика” I ': . ,000000001. 13 000,00
Компьютер идеовой 000000013 омплегты 1 13 000,00
1 б 3 "Атлант’ ! ;000000005, Москва .9 000.00
7 Л !_ ц .Восстановление данных 1000000016, Услуги 1 с 000,03
р емонт компьютера /000( 1014, Услуги >"3000015 Услуги 1 3 000,00
11 Сопутствующее ислум _ . -Л 1 ооодз
.Е ... ... ООООшоое Королев 4500,00
’Диа1ностика компью~ера :0(Ю000007, Услуги 1 500.011
!Ремонт компьютера 300“00014 Услуги ! 1 зооодо’
Сопутствующие услуги ООО 00015, Услуги > 2 1 000.0(
Л'о 3 УиТЦпь" . ОООООГС37. 18 50000
Веб-кам* р >000000026, Материалы 3 4 500.00'
^Микрофон >000000028, Материалы 2 2000,00!
.Монитор 1_СО >200000012, Материалы у 1 12000,001
№•^1 .45000,30
Р|||Ср 3.236. Вывод полей реквизитов - «В специальной позиции»
Настройка группировок
Управлять настройкой группировок можно в конфигураторе, в режиме
настроек конструктора схемы компоновки данных на закладке Другие
настройки или в режиме 1С:Предприятие при изменении варианта отчета (Все
действия ► Изменить вариант) на закладке Дополнительные настройки.
Расположение полей группировок
Для управления расположением полей группировок нужно установить
значение параметра Расположение полей группировок (рис. 3.237).
Параметры Вьк'ранн. Отбор СортирсЬка Условное., Польэова... Другие н...
Рис. 3.237. Настройка расположения полей группировок
Существуют следующие варианты расположения полей группировок:
в Вместе - поля группировки располагаются друг под другом. Данное распо-
ложение группировок используется по умолчанию (рис. 3.238);
| Контрагент [Номенклатура Количество Стоимость
ОЙ6 'Автоматик^11 500 00
Диагностика компьютера 2 1 500,001
Компыс гер для дома 1 . 10000.301
300 “Система” 10000,00
Комг ьютею для ой ее 1 10000,30
ЗОО 'Стиль' 10 00б ДО
^Монитор ССО 1 юооо он
Итого 1 31 50000
Рис. 3.238. Вывод полей группировок - «Вместе»
в Отдельно - каждая группировка располагается в отдельной области
отчета слева направо. Выводимые поля группировки также выводятся во
вложенных группировках. В приведенном примере поля группировки по
контрагенту расположены в крайней левой колонке, а поля группировки
по номенклатуре - справа от колонки контрагента, при этом для груп-
пировки по номенклатуре выводятся поля группировки по контрагенту
(рис. 3.239);
Контрагент Номенклатура Количество Стоимость
ООО "Автоматика 11 500,00;
ООО “Автоматика" Диатостика компьютера 2 1 500,00'
ООО “Автоматика Компьютер для дома 1 10 000,00’
ООО "Система" 10000,00
ООО "Системе1 Компьютер для офиса 1 10 000,00!
ООО‘ Стиль" 100СП00
ООО “Стиль" Монитор 1X0 1 _ 10 000,001
МЯММММВ11аМММ|МШ|М*ММ|ММЦММт11Мр||ЯМа|МаВЦйШ|№ЫММШ1**МЙ1НЫМ|В1ЙМ*№МЫММЫ1М1ШМЙМММ(* 1 ’ПГ | "-и--— [—»-~~ - “—-~— - -
Итоге: х.:. .. 31 500.00
Рис. 3.239. Вывод полей группировок - «Отдельно»
и Отдельно и только в итогах - каждая группировка располагается в отдельной
области отчета слева направо. Выводимые поля выводятся только
в данной группировке. В приведенном примере поля группировки по
контрагенту расположены в крайней левой колонке, а поля группировки
по номенклатуре - справа от колонки контрагента, при этом для группи-
ровки по номенклатуре не выводятся поля группировки по контрагенту
(рис. 3.240).
Кантээгент Номенклатура Количество Стоимгсп ?
(ООО “Автоматика" 1 11 500,0?
Д"яттстика компьютера 2Г 1 500,00
1 Компьютер для дома 1; 10 000,0
|ООО “Система" 10 000,00
Компьютер для офиса ' и 000,00.
|ооо "Стиль" 10 000,00
Монитор 1ХО 10 000,00
Итого 1 - й. 31 600,00
Рис. 3.240. Вывод полей группировок - «Отдельно и только в итогах»
Если параметр Расположение полей группировок настройки системы компо-
новки данных установлен в значение Отдельно и только в итогах, то при
создании макета группировок объединение ячеек макета группировки выпол-
няется только в пределах колонок соответствующей группировки.
Заголовки группировок
Для каждой группировки можно указать собственный заголовок, который
будет выводиться перед выводом ее значений. Для этого нужно перейти
в режим настроек отдельной группировки и на закладке Другие настройки/
Пополнительные настройки ввести нужный текст в строку Заголовок.
В приведенном примере для группировок Контрагент и Номенклатура указаны
собственные заголовки (рис. 3.241, 3.242).
Ьаоиап.г
Вариант "Основном" отчета "Продажи номенклатуры"
Добавить ’) Щ < X I
и
Все действия
*
1
।
Г
1
Завершить редактиро ение Отмена ! В се действия »| , ?
<»г» п •- ,.езй^ ; уттчт। »пг.. кув—те—»
Рис. 3.241. Настройка заголовка группировки «Контрагент»
В.й^ант^ЗДвздй1'стметъ монет] А 1?С*М<Л[н*п> •,;*.
Вариант "Основной" отчета “Продажи номенклатуры"
Добавить ’ ! Щ; X ' Ж # | ^2
I Структура отчета
1Тг1 Пара.
Все действия
© И023 Контрагент
,']ьпэ1'Период
7Й Поль
ц
' Уело. . Допо...
Текущий а леменг имеет собственные дополнительные настройки
Завершить редастмрсю?»иг' Отмена I Все действия
Рис. 3.242. Настройка заголовка группировки «Номенклатура»
В результате перед каждой группировкой выводится ее заголовок. Если задан
общий заголовок отчета, то он выводится вверху над заголовком родитель-
ской группировки (рис. 3.243).
I _------ - --- -
[(Продажи контрагентам)
контрагент Количество Стоимость!
Номенклатура ....X ., ___
ООО‘‘Автоматика" 11"500 °Р !
Продажи номенклатуры^
Диагностика компьютера ; _21 1 500,00'
Компьютер для лома 1| 10 000,00!
700‘‘Система", ~ Т * 10 000ДО
({Тродажи номенклатуры
Компьютер для офиса __1< 10 000,00
ООО'^тильГ ' " Г" 1000,00^
^родадшн^^клатурь|2>
| Монитор 1_С0 11 10 00“ ДО
* Итого . ______ _.Т ... Г’ 31 500,СО
Рис. 3.243. Вывод заголовков группировок
Ограничение количества записей
и процента выводимых записей в группировке
В режиме настройки отдельной группировки на закладке Другие настройки/
Дополнительные настройки можно задать ограничение количества выводимых
записей для группировки и вывод определенного процента от количества
записей в группировке. Это нужно, например, для вывода определенного
количества самых дешевых товаров и т. п. При этом если заданы оба этих
параметра, то в отчет выводится наименьшее количество записей, рассчи-
танное по каждому из ограничений (рис. 3.244).
Загадят‘Огне ‘зной“ отчета "Лродажиноме-С'Яатуры' - 1е.4он: ационнаг хонфиг ицгл "'мегома рС.Предприягир]. X.-
Вариант “Основной" отчета 'Продажи номенклатуры"
Добавить - ! I X I
I Структура отчета
Период
дй Лара.
Все действия»
Контрагент
« • . «? Летя зУ) Отбор : & Сорт,
Т екущий элемент имеет собственные дополнительные настройки^}
Уело. Ж Допо...
; Параметр
Макет оформления
Количество записей
Процент записей
ю Тип макета
Расположение итогов
|о.и Расположение полей группировок
Расположение группировок
В се действия»
|а
Значение
Основной
Завершить редактиров ни ’ Отмена ! Ясь действия» ;
Авто
Авто
Вместе
Начало
Вывод системных полей и % в группировке
В режиме настройки отдельной группировки, а также на уровне глобального
отчета можно добавить в отчет поля, сгенерированные платформой. Для вывода
системных полей, таких как № п/п, уровень и т. п., на закладке Выбранные поля
в списке доступных полей нужно раскрыть группу Системные поля и перета-
щить в список полей нужные поля. Чтобы добавить в отчет поля, автоматически
рассчитанные платформой для числовых полей-ресурсов, например Процент
общий или Процент в группе, нужно раскрыть поле ресурса в списке доступных
полей и перетащить в список полей нужные поля (рис. 3.245).
Отчет ОтчетПоСистемнымБлокам: ОсчовнаяСхемаКомпоновкмДанных
Наборы данных Связи набо, о
Вычисляемы
Ресу сы
Па- эметры
Макеты Вложенныесх.
_ □ X
Настройки !
& X
€> Склад
Основной
Настройки Отч <^5ист~м> шйЕ~ок^
Условное ОФ
Прибыль
ареной
Проценгибщий
Другие н<'тр
СтоимостьПриход
СтоимостьРасход
СистемныеПоля
{~------------$--— ..-----
Лмя вариа.. Предстаел
---------__
11 Доступные поля
^ор Сортировка
По п,э группир. В ыо^анные п...
Рис. 3.245. Добавление в отчет системных полей и % в группировке
3
I
3
9
•Л
1
НомерПоПорядку
“ НомерПоПорядкуВГруп'
ПроцентВИерархии
ПроцентВ И ерархииВ Кс
ПроцентВ И ерархииВ Ст
ПроцентВГ руте
ПроцентВГруппеВКолон
ПроцентВГруппеВСтрок;
ПроцентВКолонкеИлиТ
П роцентВ гтрокеИ лиСей
В результате мы получим (рис. 3.246):
Склад Не Системным блок п/п Количество Приход । Количество Конечный Расход ' остаток I I Стоимость ;Приход Стоимость Расход Прибыль .% общий
Основном 2 2 17 500,00 20 000,00 2 500,00
[ 1 Комгъип зр для дома к 2/ компьютер для офиса 11 1 9 ГдЗОДО 10 000,01 1 000,00 | 40,00]
1 1, 8 500,00 10 000,00 1 500,0! 1 во до)
Итого 2 2 17 500 00 20 000 00 2 500ДО
Рис. 3.246. Результат отчета
Заметим, что в первой колонке выводятся номера по порядку «насквозь».
Для вывода номера по порядку в каждой группировке нужно выбрать
из списка системных полей поле Номер по порядку в группе. В последней
колонке выводится процент, который составляет прибыль в данной строке от
общего итога. Для вывода процента прибыли от текущей группировки нужно
использовать поле Процент в группе.
Расположение полей в макетах группировок
В режиме настройки отдельной группировки на закладке Другие настройки/
Дополнительные настройки можно задать Тип макета полей группировки.
Данное свойство имеет смысл только для группировок отчета и не использу-
ется в группировках таблицы или диаграммы (рис. 3.247).
Рис. 3.247. Настройка типа макета отдельной группировки
Существуют следующие типы макетов:
Горизонтально - поля располагаются слева направо, поля ресурсов распо-
лагаются правее всех остальных полей. Это стандартное расположение
полей в группировке (см. рис. 3.248);
Вертикально - поля располагаются сверху вниз в две колонки. В левой
колонке располагаются имена выводимых полей, а в правой — значения.
Поля ресурсов располагаются ниже всех остальных полей (см. рис. 3.248);
Авто - расположение будет определяться автоматически;
В приведенном примере для группировки Контрагент задан Тип макета - Верти-
кально, а для группировки Номенклатура - Горизонтально (рис. 3.248).
/контрагент, Код
I Количество
Стоимость
ООО “Автоматика", ООООООООЛ
11 500,00
5 ' " "
Но» енкязтура Копи.ествл Стоимость :;
Диагностика компьютера 1 500,।,00^
Компьютер для дома 1 0 000,00,
контрагент, Код
Количество
Стоимость
ООО "Система", 0000&0ОД4
10 000,00
Номенклатура Количество 'Стоимость
[Компьютер оря офиса
1; 10 000,001
Контрагент, Код
Количество
Стоимость
ООО “Стиль”, 000000007
10 000,00
Нон&нкчатур Количество 'Стоимость
[Монитор 1.0 _
1Х 10^00.00
Литого
IКоличество
^Стоимость
31 500,00
Тип макета-
Г оризонтально
Тип макета-
Вертикально
Рис. 3.248. Результат отчета с разными макетами группировок
Возможность отбора уровней иерархии в группировке
Система компоновки данных позволяет выводить в отчет записи заданного
уровня иерархии в группировке. Для этого в режиме настройки отдельной
группировки нужно задать отбор на уровень иерархии и указать в свойстве
Применение, к каким записям будет применяться отбор. Возможны три вари-
анта типа применения:
и Без иерархии - условие применяется только к неиерархическим записям.
При этом иерархические записи не фильтруются. В отчет выдаются
только те иерархические записи, в которых присутствуют неиерархиче-
ские записи, удовлетворяющие условию;
и Иерархия - условие применяется как к неиерархическим, так и к иерархи-
ческим записям;
и Только иерархия - условие применяется только к иерархическим записям.
Для примера рассмотрим отчет, в котором выводится список номенклатуры
вместе с уровнями иерархии (Уровень и Уровень в группе), которые в данном
отчете идентичны (рис. 3.249).
Мы видим, что группа товаров Электротовары имеет первый уровень
иерархии, а записи в ней — второй уровень. Эта группа содержит вложенные
группы Пылесосы, Телевизоры, Чайники второго уровня, записи в которых
имеют третий уровень.
Товар Уровень Уровень в группе Итого 4 Количество ’ Остаток '1
>бупь ч 71,00
Босоножки 2 21 11.00;,
Ботинки 2 2 5,00
Валенки 2 2 22,00
Кроссовки 2 2 -2.00
Пинетки 2 2 4,00
Сапоги 2 2 <5,00
сланцы 2 2 1.00;
Тапочки 2 2 12,03
/уфли 21 3.00
Л" здукть Г. ! : ! ( г; 854,00
| йогурт 2 2 430.00’
Колбаса 2 2 12ЩЮ>
* Масло 2 2 113,00 \
( Молоко 2 2 79.00
, Ряженке 2 2 305.00:
Сметена 2 2 9* 8,00'
Торт 2 2 205,00
| Хлеб ь- -21 2- 20,00
•Усл> 1И 2,00
! Достдрка , 2 __ 2 2Л01
^летротоеары Пылесоса?! 1 7.11 ’ 2 2 /•У Тлдо .7 16.00
Уеко876М 3 3' 18,00'
Виу.юь 3, 3 -1.00
Тайфун-12 3 3 -1,6ср’
Телевизоры ,и2 2 100,00
Золу К3456Р 3 3 100,00;
Чайники 1 2 55 Л0
ВозсМ234 3 3 7,оо;
ВозсМб СО1 3 .. -зда
Уеко671МЕ 3 3‘ 52,00;
УекоМТ02 3
Итого 1098,00/
Г
Рис. 3.249. Результат отчета с разными уровнями иерархии
Изменим вариант отчета. В режиме настроек группировки Товар(Иерархия)
создадим отбор на системное поле Уровень. Зададим Вид сравнения - Равно,
Правое значение - 1, Применение - Только иерархия (рис. 3.250).
В результате в отчет в группе Электротовары выводятся записи только первого
уровня, причем это условие будет применяться только к записям, имеющим
иерархию (являющимся родительскими), рис. 3.251.
Товар
Отбг« Уровеь Равно "Т
.Сбуеь - ’ .. ’
Г _ ------..-.—ии. ----- -
ОСОН к И
; Ботинки <
^Уровень вровень Итого
в группе «Количество 3
, Ч. |у....Остаток- . - 2^
2|
21
2!
2"
71 до;
11.66;
"5,66;
! Валенки 2^ 2; 22.0СЙ . Кроссовки 1 21 2' -2,66'
Пинетки ; 2; 2! 4,00! ! „Сапо м ] 2< 2- _ 15.00^ । Сланцы ’ 21 21 1,00!
^„Тапочки „ ?! 2; 12Д0' [' Туфли' ~Г ~~2;~~~ ~~/~ 2;' ~~ ~3.б0; :^<уукты -ЛТ~г 654.Ж| 1 1 Йогурт ; 2> 21 430,00,
1 Колбаса ; 21 21 120,00' Г Масло"" Г "~2Г~ "" "21 ~ 113Д0- !\м°локо^ Т .2; 2; ! „Ряженке 1 2|„ 2| Г~ Сметана 2- 2^ __ -918.66' ?. 1 Торт’ 21' -л--—’"2^9'0 ! Хлеб 2! 2: 20,002 "у 2Г .21Т; 1:1.. Т..'Т ад»; г } . Дастат - - - - -' - 2.'.- --- - - 2! 2-°1' /
С5летротовары 1 О 171,00а
' Ъага щн г ^ау.-туу-ж..- 1 т 098ф)..
Рис. 3.251. Результат отчета
Изменим условие отбора, чтобы уровень был меньше трех и это условие
применялось только к иерархическим записям. В результате мы увидим исхо-
дную таблицу, как будто никакого отбора не было (см. рис. 3.249), т.к. в ней
изначально нет иерархических записей больше второго уровня (рис. 3.252).
.. М. .ДО-Пойй!.! . ^.йёия . ('1^ Отбор Ссйи„ ЛУ&лоеЦ
_'4^—«***•--*•* -4Ж2Г - л. .. -><- „ыг ь-Л.
Т екущий элемент имеет собственный отбор (для Фильтрации записей, выводимых в элементе]
: Выбрать Все действия’- Добавить новый элемент < Сгруппировать условия I X ф- Все действия’- |
Достугные поля
{ХА
Товар
Количество Остаток
Системные поля
Параметры
Т (Поле з
| > в Отбое
Вид сравнения Значы- » Ч Чимснен. в
ьпчэдр . <
( у1. - . > Ш в ень Меньше
3
а
23
Э
I
Рис. 3.252. Создание отбора в группировке по уровню иерархии
Теперь изменим условие отбора, чтобы уровень был меньше трех и это
условие применялось к иерархии вообще (Применение - После группировки или
для иерархии), рис. 3.253.
- Ж Г‘.ара7
^.Сорти „ »Йч] Ысдаж.
Б? Т екущий элемент имеет собстветный отбор (для фильтрации записей, выводимых в элементе]
| Выбрать
Все действия’• ^Добавить новыйэлемент ( Сгруппировать условия М ! ф Все действия’- [
,5 -упныеполя
Поре Г.-,
в Отбог
' Вид сравнения Знача к ; Применение
4*5
4
Ез
!Э
Товар
Количество Остаток
Системные поля
Параметры
!<? / Уровень '‘йтыщ
. . ГН Полы
< УиаЛ-д
(
I
1
I
В результате в отчете мы не увидим записей третьего уровня из группы Элек-
тротовары (рис. 3.254).
Товар Уровьн:> Уровень Итого
е группе Количество }
•• . - Ч Остаток ,
,Отбор: Уровень Меньше "2 г
’обувь.': ; : 1 71,00
Босоножки 2 11,001
Ботинки 2, 5,66;
Валенки и 2 22.00
Кроссовки 2 21 -2,со;
Пинетки 2Н 21 4,001
Сапоги ! ю 15.бо|
* ланцы ! : । !к»!
Тапочки сч ; ! 1 12,001
Туфли 2| 2 з,оЫ
Продукты ' 1 ..... 654,00
I Ло<урт 2 и . 2 430,00
Колбаса Ъп н ; ! 3 120 00.
| Масло 2| 2 113,00.
Молоко п - „ ?. ;сч;сч’ : ! 1 г г 1 | ; ; ! । ; । 1 ! 579,00!
Ряженка 2. 305,00^
I метана 2] 2 -916,00;
I Торт 2, 205,00-
1 Хлеб 2 2 20 .ПО
{Услуги 2.00
| Доставка 2 2 2,01
Л “= рОТОбарЬ. 1 1 171 ПО
( ХЧылёсось' .. Л К 16.00
| Г Телевизоры 2 2> ) 100,ПС
[ Ч&иники 2 2^ / 55,00
ИТОГО 1 ВДОр
-
Рис. 3.254. Результат отчета
Теперь зададим условие, чтобы уровень был равен единице и это условие
применялось к иерархии вообще (рис. 3.255).
; -Пара.-- _ Г-'&Д Групп... : К§[Лаля ) : ^"Отбор^ рор#.- ~ Допод..
ц/} Текущий элемент имеет собственный отбор (для фильтрации записей, выводимьк в элементе)
Выбрать
Все действия
Добавить новый элемент ( Сгруппировать условия > X > Ф Все действия
Д хж^пные поля , : Пале Ви А сравнения (ньчение Лр^иенение
‘?зг се» | | { ! От^ор 1
<5 «* Товср Количество Остаток # а Системные поля ® ЕЗ Параметры ! у вровень Равно /МВ31ИВ1 После группировки...
| 1 1 т —!
Рис. 3.255. Создание отбора в группировке по уровню иерархии
В результате мы увидим в отчете только иерархические записи первого уровня
(рис. 3.256).
Гэвар
. Уровень (Уровень 'Итого =' " Л
;в группе Количество
Остаток
Равно “1
’Обувь " ’ > 71Д0
Продукты ; 1 054,00
УсЛуП4 1; 1- 2,00
Элетрото! ары 1! 1 171,00
Итого 1 098 ДО
Рис. 3.256. Результат отчета
Г руппировки-периоды
Часто в отчетах требуется вывести данные за период с промежуточными
итогами по дням, месяцам, полугодиям и т.п. Для этого нужно сгруппиро-
вать данные по этим периодам. При разработке отчета в схеме компоновки
данных нужно добавить в набор доступных полей поля-периоды и создать
группировки по этим полям в настройках отчета. Затем вывести в отчет поля
ресурсов отчета, чтобы для каждой группировки были посчитаны промежу-
точные итоги.
Для примера рассмотрим Отчет по продажам. Данные в нем сгруппированы по
периодам Месяц и День.
Чтобы добавить поля-периоды в набор данных, нужно задать периодичность
виртуальной таблицы, из которой извлекаются данные. В данном случае это
таблица Продажи.Обороты. Откроем конструктор запроса и вызовем диалог
параметров виртуальной таблицы. Для этого в списке таблицы нужно нажать
кнопку Параметры виртуальной таблицы (рис. 3.257).
Таблицы и.Гнули бека Условия
База данным
Таблицы
НачалоПериода
КонецПерис^а
Периодичность
Условие
<онстанг а
1рсйат'и0б . с и IV -с »ень
Минута
Час
День
Неделя
Декада
Месяц
Квартал
Полугодие
Год
Дополните.. Обь© инея .
Отмана ( Справка
Автс
Рис. 3.257. Выбор периодичности виртуальной таблицы
По^ч
Ф Г Справочники
Параметры виртуа льной таблицы
ГТ ядок ^омлоновк | Характерис... Пакет зале.
» ПродажиОборотыПериодМесяц
Е. ПродажиОбороты Контрагент
ПродажиОборогыКоличествоОбсрот
Я ПродажиОборотыСтоимостьОборот
К
Запрос
В открывшемся диалоге можно выбрать различные значения параметра Пери-
одичность. В зависимости от выбранной периодичности виртуальной таблицы
становятся доступными различные поля-периоды. В данном отчете выбрана
периодичность Авто. Это наиболее универсальный вариант. Раскрыв список
полей таблицы, мы можем перенести в список полей запроса следующие поля
(рис. 3.258).
Таблицы
ПродажиОбороты'
НомерСтроки
Регистратор
ПериодСекунда
ПерисдМ инута
ПерисдЧас
ПериодДень
ПериодНеделя
ПериодДекада
ПериодМесяц
ПериодКвартал
ПериодПолугодие
ПериодГод
Номенклатура
Контрагент
9 КоличествоОборот
$ СтоимостьОборот
Рис. 3.258. Доступные поля-периоды виртуальной таблицы с периодичностью «Авто»
В отчете выбраны поля-периоды ПериодДень и ПериодМесяц. При вклю-
ченном свойстве Автозаполнение (стр. 346) платформа заполнит в роли полей
свойство Период. На основании этой информации будут рассчитываться итоги
по этим полям.
Затем в структуру отчета добавляются группировки по полям-периодам.
В группировку Контрагент добавляется группировка по полю ПериодМесяц, и
в нее вкладывается группировка ПериодДень. Группировка ПериодДень также
добавляется в точки диаграммы, но ее для наглядности лучше отключить.
В отчет выводится ресурс Стоимость для вывода итога по группировкам
(рис. 3.259).
Рис. 3.259. Добавление группировок периодов в структуру отчета
В результате данные в отчете сгруппированы по дням и месяцам,
и по каждому периоду выводится промежуточный итог (рис. 3.260).
Рис. 3.260. Результат отчета
Заметим, что в отчетах можно выводить группировки-периоды, не получая
при этом данных из родительских группировок. Например, группировку Реги-
стратор можно использовать без ее родительской группировки Секунда, так
как система компоновки данных сама подставит при компоновке нужные
родительские поля-периоды, а внешне в отчете это никак не отразится. Исклю-
чение составляют отчеты, в которых получаются остатки по периодам. В этих
случаях для подсчета правильных остатков при получении поля-периода
в запросе должно присутствовать его родительское поле-период.
Группировки по ресурсам
Система компоновки данных позволяет не только выводить поля ресурсов
‘ в ячейках отчета, но и группировать по ним данные. В приведенном примере
в выбранных полях отчета указаны ресурсы Количество и Стоимость, при этом
данные в строках таблицы сгруппированы по ресурсу Количество и полю СБ
(рис. 3.261).
Можно также указать выражение для расчета ресурса на языке выражений
системы компоновки данных и затем сгруппировать по этому ресурсу данные
в отчете. Например, в отчете Расчет показателей продаж (стр. 217) определен
ресурс на основе вычисляемого поля ОбъемПродаж. Значение ресурса рассчи-
тывается следующим образом (листинг 3.51).
Работа мастеров ДадасграционнаякЬнфигд.- ПСПредприятие) к-4'43 * X
Работ© мастеров
Вариант отчета: [Основной
। Выбрать вариант.. |
* * Сформировать Настройка..
Все действия"' ?
Выбранные поля ^Количество, Стоимость |
Строки Количество СБ
| , нН Колонки Мастер
г Количество СБ Ильин Сергей количество Соколов Андрей Итого Количество Стоимость и г
Стоимость Количество Стоимость
Й 3 1 9 000,00 2 19000,00 3 26 000,00 I
I I Компьютер для дома 1 9 000.00 1 9 000,00
1 Компьютер для офиса 1 8 500,00. 1 6 500,00
1 Компьютер И1ровой 1 10 500,00 1 10 500,00
И1О10 1 9 000ДО 2 19 000,00 3 28 000 ДО
1 к 1
Рис. 3.261. Отчет с группировкой по полю-ресурсу
Листинг 3.51. Выражение для расчета ресурса
на основе вычисляемого поля «ОбъемПродаж»
Выбор Когда Сумма(Стоимость) <= 3000 Тогда "Малый" Иначе
Выбор Когда Сумма(Стоимость) >=10000 Тогда Большой*’ Иначе "Средний" Конец Конец
Вариант отчета ОбъемПродаж имеет следующую структуру. Отчет содержит
составную группировку по полям ОбъемПродаж и Номенклатура с вложенной
группировкой Номенклатура. В выбранных полях отчета указаны поля Стои-
мость и ОбъемПродаж (рис. 3.262).
ь результате выполнения отчета в колонке ооъем продаж выводится значение
выражения, заданного для ресурса в листинге 3.51. Кроме того, записи отчета
группируются по значению ресурса Объем продаж — сначала выводятся записи
с большим (Сумма (Стоимость) >= 10000) объемом продаж, затем записи
с малым (Сумма(Стоимость) <= 3000) объемом продаж и затем записи
со средним (3000 < Сумма (Стоимость) < 10000) объемом продаж
(рис. 3.263).
-р- <1СЛ- 11 -М • М М* ЭД- . - Д Ж
Расчет показателей продаж
Вариант отчета ^Обьем продаж | (^Выбрать еар:®?
СФ пировать | Настройка... Все действия »| 1
1 | Обь ем продаж 1 Стоимость Объем * 1
I Номенклатура ,продаж 1
1 РЗ Большой 55 000,00 Большой 1
| Компьютер для дома ЮОООДО Большой в
К( мпьютер для офиса 10 000,00. Большой 1
1 Компьютер игровой 13 000,00: Большой 1
1 Монитор ШЭ 22 000,00 Большой I
1 А *'Лалый 6 000,00 {Средний 1
I Диагностика компьютера 2 000,00 Малый
1 Микрофон 2 000,00 Малый
| Сопутствующее услуги 2 000,00 Малый
Н Средний 15 500,00 Большой
Веб-камера 4 500,00 Средний в
Восстановление дантых 5 ООП ,00'Средний
Ремонт компьютера 6 000,00 Средний
Итаг[1 76 600,00 Большой 1 1 1
..... --
| г- -г - -- 1 ►
|
Рис. 3.263. Результат отчета
Особенности группировки детальных записей
Напомним, что если у группировки настроек отчета отсутствуют поля группи-
ровки, то такая группировка называется Детальные записи. Для создания такой
группировки достаточно при добавлении группировки в диалоге выбора поля
группировки нажать кнопку ОК, не выбирая поле (рис. 3.264).
0 Отчет
Детальные алнси
Рис. 3.264. Группировка отчета «Детальные записи»
Если выбранные поля детальных записей содержат поля - не ресурсы, то такая
группировка будет выводиться в виде простого линейного отчета. Например,
если выбранные поля детальных записей содержат поля Номенклатура, Склад,
то в отчет будут выводиться строки с полями Номенклатура и Склад.
Если выбранные поля детальных записей содержат поля-ресурсы, например
поле Остаток, то по группировке для этих полей будут выдаваться итоговые
данные.
Однако если данные получаются при помощи запроса, в котором использу-
ется виртуальная таблица, то результирующий состав строк набора данных
будет зависеть от использованных в запросе полей, так как виртуальная
таблица автоматически группирует данные по использованным измерениям.
Например, при получении остатков из виртуальной таблицы Остатки регистра
накопления с двумя измерениями Номенклатура и Склад состав строк будет
зависеть от используемых в отчете полей.
Так, если в детальных записях выводятся поля Номенклатура и Остаток
и в настройках отчета не задействованы другие поля-измерения, то детальные
записи будут содержать данные по остаткам номенклатуры (рис. 3.265).
Номенклатура Количество
к Остаток
Монитор ЬСР 2,00'
Материн каяплата Память 2 ДОС 2 ДОС
Втб-камер 7,000
МИК) эфон 6,000
Итого 21,000
Рис. 3.265. Результат отчета
Если же где-либо в настройках задействовано другое измерение, например
Склад, или же в роли этого поля установлено свойство Обязательное, то
детальные записи будут выводиться с учетом склада. Таким образом,
детальные записи могут содержать данные по номенклатуре на различных
складах (рис. 3.266).
Номенклатура (. —... . Кили-«гс гео Остаток.
Мони гор 1_СР ,Монитор ЬСР ^Веб-камерэ 1,000: ... ..... з.одо':
Микрофс 1 , Веб-камера 5,000 . ....... ...
| Микрофон 3,000.
! Материнска я плата [память Итак 2,000! " 2Д0С 21Д?(
Рис. 3.266. Результат отчета
Поэтому для того, чтобы получить в группировке значения ресурсов для
конкретных измерений, следует явно указывать, по каким полям нужно груп-
пировать данные в группировке. В данном примере следует группировать
записи по полю Номенклатура.
Если в выбранных полях детальных записей используются поля - не ресурсы
из нескольких наборов данных, то в результат будут выдаваться данные для
последнего в цепочке связей набора данных, задействованного в группировке.
Например, в схеме компоновки данных имеются наборы данных Продажи
и Остатки, при этом указано, что набор данных Продажи является родитель-
ским по отношению к набору данных Остатки. Если в группировке будут
использоваться только поля набора данных Продажи, то детальные записи
будут получаться для этого набора данных. Если же в группировке задей-
ствованы поля набора данных Остатки, то будут выдаваться записи набора
данных Остатки, связанные с записями набора данных Продажи. Использо-
вание в детальных записях полей из нескольких не связанных другом с другом
наборов данных не допускается.
Если выбранные поля детальных записей содержат только поля-ресурсы,
то такая группировка будет рассматриваться как общий итог, т. е. содержать
только одну запись, в которой будет выдаваться итог по выбранным ресурсам.
Такую возможность можно использовать для того, чтобы выдать общий итог
вне некоторой группировки (рис. 3.267).
Количс ство ]
и___ 21(000 Рис. 3.267. Результат отчета
Если выбранные поля детальных записей не содержат ни одного поля, то
группировка в отчет не выводится. Такую группировку можно использовать
для визуальной организации структуры настроек.
Несмотря на то, что сама группировка в отчет не выводится, ее отбор будет
применяться. При этом все вложенные в такую группировку элементы струк-
туры будут содержать только данные с примененным отбором. Данную
возможность можно использовать для того, чтобы вывести несколько
элементов структуры с одним отбором в ситуации, когда применять отбор
в главном отборе нежелательно.
Управление выводом ресурсов в итогах таблицы
Иногда возникает потребность вывести в итоге по строкам/колонкам таблицы
только некоторые ресурсы. Например, требуется вывести в колонках таблицы
контрагентов с указанием суммы оборота и количества продаж номенкла-
туры, а в строках таблицы нужно вывести номенклатуру с итогами только
по сумме оборота.
Если просто добавить в настройки таблицу с группировками в строках по
полю Номенклатура, а в колонках - по полю Контрагент и указать, что нужно
выводить в отчет ресурсы Стоимость и Количество, то результат будет следу-
ющим (рис. 3.268):
)Номенклатура «ООО/Автоматика" ООО “Система" 7. ООО “Стиль" Итого
“Количество Стоимость Количество Стоимость Количество Стоимость Количество Стоимость
Диатостика компьютера 2.00 1 500,00 , ! • 2,00 1 500,00
. —- " — —. - — —* — - —. --------------------- - •- ——- - I
Компьютер для дома > 1,00;_ ЮОООДО/ Компьютер для офиса ; _ Монитор КС Итого 3,00 11 500.00 _ • •• • — - — - ' - - - 1 ! ] ; 1,00 10 000,00 1,00 _ 10 000,00' _ 1 ; 1,00 10 000,00 1,00*/ 10 000,00 1,66 10 000,00 1,00 10 000,00“ 1,00 ~ 10 000,00 5,00 31 500,00
Рис. 3.268. Результат отчета
Для того чтобы итог по строке содержал только определенный ресурс, можно
воспользоваться детальными записями, в которых выводятся только ресурсы.
Для этого добавим в колонки таблицы группировку без полей группировки
(рис. 3.269).
'Э О) Отчет
© Таблица
-? Строки
И*™ Номенклатура
й Колонки
0 й11 Контрагент
Детальные записи
Рис. 3.269. Структура отчета
В результате в правой части таблицы появится еще один итог по строке,
в котором выводятся все ресурсы (рис. 3.270).
Номенклатура . ООО "Автоматика" ООО "Система” ООО "Стиль" Итого
I Количества Стоимость Количество Стоимость Количество Стоимость Количество Стоимость Количество Стоимость
Д. тостика компьютера 2,00 _ 1 500ДО; 2,00^ 1 500,00 1~00 ЮОООЛО Г ~~ 1 |_00- 10ПОЛ00 2ДО! 1 500,00
; Компьютер для дома 1ДО 10 ЛПОДО
Компьютер для офиса | • ’ 1,00 1О«Ю,0( I -ДО 10 000 ДО 1.00 10 000 ДО
{Монитор ЬСО 1 ; Г 1 1ДО; 10 000,00 1ДО 10001,00 1ДО к соедо
Итого г здо пдадо яроо.оо Гоооодо воо 31600.00 5,00 3? БОС,С Л
Рис. 3.270. Результат отчета
Нам требуется, чтобы в итоге по строке выводилось только поле Стоимость,
поэтому перейдем в режим настройки группировки Детальные записи и на
закладке Выбранные поля добавим поле Стоимость и удалим или уберем признак
использования у автополя, которое содержит все ресурсы отчета (рис. 3.271).
Наборы данных Связи наборе.» Вычисляемые Ресурсы Параметры Макеты Вложенные сх.. Г Настройки |
Ойх*» й-х гг ♦1Й.ЧЛ1583
Имя вариа. Предстал..
Основной
е Отчет
- Таблица
н Строки
!-/|ваа Номенклатура
© Колонки
(У!1™ Контрагент
Детальные записи
1.1^
I
41
й
Полягруппио
Количество
’ шмость
СистеьныеПоля
ПарамегрыДанных
“ Контрагент
™ Номенклатура
Настройки: С1тчет^<Д>. альные залистает
Зьюраннь э п... Отбор
Сортировка Условное оф..
Другие настр.
Доступные .юля
Поле
1^.. .'.^? Лыбдашы&яйда
<=• <Авто>
I Стоимость
- X
~~
В результате отчет примет следующий вид (рис. 3.272):
Номенклатура ООО "Автоматика" ООО "Система" Количество Стоимость Количество Стоимость СЮС "Стиль" Количе :тв*_ Стоимость Итого Количество Стоимость Стоимость
Диатос тика компьютера 2,001 1 500,00- ~| _ _ □ 2,00 1 500,00 1 500,00
। Компы 'ер для дома 1,00 10 000,00 Г"' ” — 1,00 10 000ДО 10 000 ДО
Компьют гр дгя офиса Г 1,00 10 000,00 1,00 10000,00 10000,00
’Монито]. ЬСО •1,00 10 000,00 1,00* 10000,00 10000,00
Итого • гЧГ/Л . . «41 3.00 11 500,00 1,00 10 000,00 1 00 10000,00 5.00 31 500.00 31 500.00
Рис. 3.272. Результат отчета
В заключение для того, чтобы итог по строке не выдавался два раза, уберем
вывод общего итога для группировки Контрагент. Для этого установим пара-
метр вывода Расположение общих итогов в значение Нет (рис. 3.273).
I |
!
ыданных • Связи наб Вычисляемые.. Ресу, ля
П ч амстды Макеты
Вложенные сх
Настройки
1 Имя вариа... Предотавл.,,
гневной
Основной
Гэ Отчет
I ® Таблица
! -9 Строки
| @в° Номенклатура
с’1 Колонки
Сонтрагент
< Детальные записи)
— -им» 14 * **»)*
Другие настр.
Настройки, Отчет^Контрагент
{ Поля груггар.. Выбранные п. Отбое.
Гортировка Условное оф..
ГП - 1 Параметр ! Значение 5]
Процент записей 10
рсг Расположение итогов Авто
Расположение полей группировок Вместе 4*1
|ю! Расположение группировок Начало II —
Но. Расположение реквизитов Вместе с владельцем 11
1 ь—V Рагг сложение ес сов Р изонтальнс
Расположение общих итогов 1 _ин
Тип заголовка полей Авто I’
!
Рис. 3.273. Вывод общих итогов для группировки в колонках таблицы
(
В результате отчет примет требуемый вид (рис. 3.274).
Нтлснклатура ООС 'Автоматика ООО "Система ООО "Стиль Количество Стоимость Количество Стоимость Количество Стоимость Стоимость
Диагностика компьютера 2 ДО, 1 500,00 ‘ ; 1 500,00
Ком чьютер для дома 1,00' 10 000,00' 1 ! 10 000,00
Компьютер для офиса Мони «р ЬСО 1,00 10 000,00^: । ' [ 1 1 ДО 10 ОООДО 10 000,00 Го ОООДО
Итого 3,00 11500,00 1ДО 10000,00 1,00 10 000^ 31 500,00
Рис. 3.274. Результат отчета
Вывод дополнительной информации в отчете
Система компоновки данных позволяет выводить дополнительную инфор-
мацию в отчет после всех полей. Для этого используется группировка
Детальные записи, для которой параметр Вариант использования группировки
установлен в значение Дополнительная информация. В качестве дополнительной
информации можно использовать все поля, доступные в данной группировке.
Для примера создадим вариант Дополнительная информация отчета Отчет
по продажам, в котором данные о продажах выводятся в таблицу, в строках
которой данные группируются по контрагентам, а в колонках - по периодам
продаж. Допустим, требуется вывести в строках таблицы после всех полей
некоторую дополнительную информацию о контрагентах, например, их
характеристики.
Для этого добавим в колонки таблицы группировку без полей группировки,
перейдем в режим настроек группировки Детальные записи и установим
параметр Вариант использования группировки в значение Дополнительная инфор-
мация (рис. 3.275).
Этчет четПсНроцалгам. ОсновнаяГхе?аКсмг:ипвкыЛ анныя
Наборы данных Связи набора Вычисляемые..,
Ресурсы / Параметры < Макеты 5
Вложенные сх..
* Ч*
1 Настройки | ’
'-I
а»
1 Имя верна...: Представл.
Ы! Отчет
Основной < Основной I1
Динамика... Динамика... И
> &ЙЯ Таблица
& Строки
Контрагент
3 Колонки
й®33 ПериодМесяц
«•*
Настройки:
О гбор жгийоекч Условное о$.. I Другие настр... {
Н
я
Подагруппип Выбранные п.
Рис. 3.275. Структура отчета
Сформируем отчет. В режиме изменения варианта отчета Дополнительная
информация для группировки Дополнительная информация на закладке Поля
перенесем характеристики контрагентов Категория и Регион (рис. 3.276).
вариант "До;— нительная информации" отчета "Отчет по продажам” Де. «нстоационная конФип ацияТ. (Ю Прздприятие) X
Вариант "Дополнительная информация" отчета “Отчет по продажам”
Все действия •»
С.рктура отчета
® Й® Таблица
Р1 Строки
Й1™ Контрагент
Колонки
У1ДВ Период, месяц,
Попэянигельная илф
1Й/-ЧЧ
; Допол..
Текущий элемент имеет собственные настройки выбранных полей (для детальной настройки элемента]^
Выбрать
Все действия » Добавить новое поле | Сгруппировать поля ! X I Ф ’У’ §8 Все действия
•» Контрагент
®» Версия данных
Щ Дополнительная информ...
л.
Категория
* Доступные поля
А
С
» I Поле
। • €? Вь бранные поля
| <Аето>
/**, ' К нтрагентКатегория
Контрагент.Регион
Рис. 3.276. Изменение варианта отчета
Код
Наименование
Пометка удаления
Предоплата
Завершит, редактирование1 Отмена ; Все действия ~ '
В результате отчет примет следующий вид (рис. 3.277):
Контрагент
Декабрь.2011
Январь.2012 Итого
Количество С оимость Когич
2 Контрагент.Категория Контрагент. Регион
Стоимость Г
01/10С%01; ООО "Авт метика'
'(ОООббООМ) ООО ’АтланГ ~
1(Обббообб4) ООО "Система" ' ^ ”
[(000330006) ООдхЗтандар?™
00001 1007) ЭООЧ'ЛП:'
Итого
зло 11 500.00 " 1,оо; 13000,00 4.00 24500,00 1 г
< 4,00 9 000,00, 4,00 9 000,00 -Постоянный партнер -Москва
1.00; 10000.00 I > 1.00, 10 000,00 $
4,00 4 500,0 4,00 4 500,00 ?арукежньй партнер 'Королев
1/30- 10 000,00 6/30 18 500,00 ’ 7/30 28500,00 ' —"В и
5 ДО 31 500ДО 15.00 45 000,00 20 ДО 76500.00 »
г
1
Ч
Рис. 3.277. Результат отчета
Настройка полей группировки
в пользовательских настройках
При разработке отчета можно сделать отчет максимально универсальным,
чтобы позволить пользователю в режиме 1 С: Предприятие, не обращаясь
к полным настройкам отчета (не выполняя Все действия ► Изменить вариант...),
самостоятельно настраивать, каким образом группировать данные в отчете.
Необходимость настройки группировки пользователем в отчете можно
указать как в отчете в целом, так и у группировки (как в простой группи-
ровке, так и в группировке таблицы и диаграммы).
Для этого в конструкторе схемы компоновки данных на закладке Настройки
или в режиме изменения варианта отчета необходимо выделить нужный
элемент структуры отчета и нажать кнопку Свойства элемента пользователь-
ских настроек, расположенную вверху, в командной панели окна настроек
(рис. 3.278). В появившемся окне нужно включить в состав пользовательских
настроек элемент Группировки.
В режиме 1 С:Предприятие создадим вариант отчета Настройка группировок
для отчета Продажи номенклатуры. Отчет имеет структуру, показанную на
рисунке 3.278. Предоставим пользователю возможность группировать данные
на уровне отчета в целом.
Все действия
... -. Л .-Г-.1 , ** : * —
-яг?- Уйвгпрс|Дв»
Вари аН1 “Настройка группировок'’ отчета 'Продажи номенклатуры"
Добавить » , |
Номенклатура ।
Состав пользовательских настроек отчета
' Пара
Й Текушийзлч.'
Вьюрать
Доступные пот
&
€3
Номенк
Период
Количес
СтоимоЛ
Системные поля
Параметры
$
$
—— ----“
I Структура отчета
|Г-»
& Контрагент
.. . ▼ - * <
ле Состав поль^ов^тельр найяроекотчета - ,
Рис. 3.278. Изменение варианта отчета
Представление: Режим редактирование
Й Выбранные поля 1 «Быстрый доступ
О Отбор 1 __ Обычный У г
О Порядок | ] «Быстрый доступ
О Условное оформление ( .7 (Обычный • 1 *
Группировки 'Быстрый доступ
ПК Отмена \
ЗйВ|ершйтыредвктипо,ва^ие Отмена ; Все действия ” | 1?
Перед формированием отчета пользователь может поменять местами поля
группировок, изменить или добавить новое поле группировки (рис. 3.279).
Рис. 3.279. Редактиро зание группировок отчета
В результате будет получен другой отчет, основанный на тех же данных, но
представляющий денные по-иному (рис. 3.280).
Л.
пел едп ия.
Выбрать варнак
Все действия
аг- *т И
М •«* М
Продажи номенклатуры
Вариант отчета: {Настройка группировок
Сфорк«ироват 11 Настройка...
и
Параметры: Начало перио
Конец период
1э: 01 12.2011
I: 1*12.2011
)меьклатура
Контраген
ООО 'Автоматика’
5декабрями г.
11 декабря 2011 г.
Кг .шыотер дл~ дома
ООО “Автоматика"
11 декабря 2011 г.
Компьютер для офиса
ОСС "Система"
9 декабря 2011 г.
'Монитор 1X0
I ООО’Ститъ"
С декабря 2011_т.
Итого
.личество Стоимость
2 1 500,00
2 1 500,00
1' 1 000 Ь
1 “ ’ 500,01’
1 ~ 10 000,00
1{ "Тоооо.00,
1 10 000,0г
10 000,00
10 000,00
10 001 >,00
10 000,00
10 000,00
10 000,00
31 500.00
Для того чтобы предоставить пользователю возможность представлять
данные в отчете в виде таблицы со свободной структурой, как это сделано,
например, в отчете Работа мастеров (стр. 106), нужно выделить элемент струк-
туры отчета Таблица и, нажав кнопку Свойства элемента пользовательских
настроек, включить в состав пользовательских настроек элементы Группировки
строк и Группировки колонок (рис. 3.281).
Вариант "Основной" отчета "Работа мастеров"
й Отчет
Структура отчета
Строки
Мастер
О Колонки
М-
Состав полноцвэтелвбкил г
Состав пользовательских настроек » , « - ; -'-„'•г - ’ таблицы
Представление: Режим редактирования:
| 0 Таблица [" ] [Быстрый доступ /г! |
1 @ Выбранные поля [ ' [Быстрый доступ |
| О Условное оформление [ ~ _ Быстрый доступ
I /5( Группировки строк ! ! Группировки колонок ! [Быстрый доступ , ! Быстрый доступ / :
I ОК Отмена
Рис. 3.281. Изменение варианта отчета
В результате пользователь перед формированием отчета может задавать груп-
пировку строк и колонок в таблице в соответствии со своими предпочтениями
(рис. 3.282).
Работа • >асте«;ов • емонстраиис^ ЦСПредприит <е] ,4^ . <
Работа мастеров
Вариант отчета: [Основной_____
Сформировать [ Настройка...
4
Выбрать вариант.,, [
Все действия » . 5
® Быб, ант.ь.е по ля
Стон- хггъ
|1~г Строки
Колонки
Мастер
СБ
МаСтер
Компьютер для домг, Компьютер для офиса Компьютер игровой 'Итого ] [Т
'Стоимость, ^Стоимость _ -Стоимость ~ Стоимость 1______
{Ильин Сергей
{Соколов Андрей
«Итого
9000,00.
§00000
8 500,00
8 500.00;
_____ ! 9000,00!
. )50Ь.(Л 19 000 .00
10500,00 28 000ВС
к-
Рис. 3.282. Результат отчета в виде таблицы со свободной структурой
Можно также задать возможность пользовательской настройки для вложенных
группировок (рис. 3.283).
^1 ега Тродг инъ,/":» яагчры" Пемонстраш
Вари' г *> 1астройка группировок" отчета "Продажи номенклатуры
Добави-э ’ ) й! I X I
Все действия
11,1 Пара...
Представление:
.№
•>&*ы
Ко.
Состояние: Включена
<!есн Номенклатура
ОК Отмена ->
Зассршитъ редактирование Отмена Все действия
Рис. 3.283. Изменение варианта отчета
Струк тдаа отчета
с. Состаз пользователь ихнаст оек г ужтц ки-Демонст ^ионная кол и-до (Ю.Пред *. е{
Состав пользовательских настроек группировки
Режим редактирования-
Па :
На^
О Группировка { ] —— —_— —ч Б ыстрый доступ * |
С.! Выбранные поля 3 ' ™ .. Быстрый доступ
Г Отбор _ _ О Порядок ; 1233 Быстрый доступ _ ^Быстрый доступ
О Условное оформление | Быстрый досту 1 * * * 5 6
и *\ Вложенные группировки {Группировка контрагенте} Быстрый доступ '
В приведенном выше примере пользователь может настраивать состав
вложенных группировок для родительской группировки всего отчета Контр-
агент (рис. 3.284).
п- ,1-' * X* ®
Продажи номенклатуры
Вариант отчета: {Настройка группировок
% М . М* - - X
; ! Выбрать вариант ,.^]
. СФсрмирот _ть । [фНастройка..
Период
Количество ' Стоимость
р итид , контра хита
В
« I
? I
Рис. 3.284. Результат отчета
Параметры Начало периода: 01.12.2011
Конец периода. 15.12.2011
Автоматика"
5 дек. Зр 12011 г.
• 11 декабря 2011 г.
ОО^1'Система"
I 9 де1 абря2011 г.
,>ОО “Стиль'
6 декабря 2011
Итого
Все действия
11 500.00
"Гооодо
10 500,00;
10000,00
Тб 000,00
10 ОООДО
10 000,00.
31 500,00'
При указании необходимости пользовательской настройки группировки груп-
пироваться будут все вложенные элементы, начиная от места, где указана
необходимость группировки, вплоть до места, где встретится элемент струк-
туры, отличный от группировки, или до места, в котором на одном уровне
будут расположены несколько элементов структуры.
Расположение ресурсов
Система компоновки данных позволяет настраивать отображение полей
ресурсов в отчете. Управлять расположением ресурсов можно в конфигура-
торе, в режиме настроек конструктора схемы компоновки данных на закладке
Другие настройки или в режиме 1С:Предприятие при изменении варианта отчета
(Все действия ► Изменить вариант) на закладке Дополнительные настройки.
Для этого нужно установить значение параметра Расположение ресурсов
(рис. 3.285).
Па;аметры ^ЛВыб «ли , : Отбор | Сор-ир^екь
□
Параметр
Макет оформления
Расположение итогов
Расположение полей группировок
I ]: Расположение группировок
П^Распол не
)' Расположение ресурсов
асположение общий итогов по горизонтали
С_1 ’ Расположение общих итогов по вертикали
|С- Т ип заголовка полей
| О' Т ип диаграммы
,|4;Ч
^Вертикально
Условное.. Поле зова ] Другие н... [
I *
I :_______-
Значение
Арктика
Авто
Вместе
Начало
Авто
и Гистограмма объемная
Рис. 3.285. Настройка расположения полей ресурсов
В приведенном примере в отчет выводятся поля ресурсов Количество и Стои-
мость. Существуют следующие варианты расположения ресурсов:
н Горизонтально — поля ресурсов располагаются горизонтально слева
направо. Каждый ресурс отображается в отдельной колонке. Данное
расположение ресурсов используется по умолчанию (рис. 3.286);
Номенклатура
^Период________________
Диагнос гика:ожлпыо ера
I 5 декабря 2011 г._
[ 11 декабря 2011 г.
|Компыотер для дома
[ 11 декабря 2011 г.__
Компьютер дляофиса__^
| 9 декабря 2011 г.
Мпгжтгор ЬСО ________
Г 6 декабря 2011 г.
[Итого .
гличепвоСгоимость\
500,00
Т1 1 00^,66
1Г
1|
1
"Л
1|
1|
10000,06
^10 000,00
10 000,00
10 000 00
10 000,6 '
10000,00
Рис. 3.286. Вывод полей ресурсов - «Горизонтально»
Вертикально - поля ресурсов располагаются вертикально друг под другом.
Все ресурсы отображаются в одной колонке. Также создается специальная
колонка, отображающая имена полей ресурсов (рис. 3.287).
Номенклатура Период Д югностика компьютера ’7’"’ - * количество Стоимость 1 500,50
5 декабря 2011 г. Количество ; 1
11 декабря 2011 г. Стоимость I 1 000,00
Количество 1 Стоимость 500.00 Количество 1 Стоимость ЮОООДО
Компьютер для дима
11 декабря 2011 г. Количество 1 Стоимость 10 000,00
Компьк?-ео для офиса [1,- Количество 1 Стоимость ; 10000.00
9 декабря 2011 г. Количество 1 Стоимость 10 000,66
Мони ор ГСО Количество к 1 Стоимость 10 000,00 Количество 1 Стоимость < 10 000,00
6 декабря 2011 г.
Итого Количество зримость 31 500,ЦУ
Рис. 3.287. Вывод полей ресурсов - «Вертикально»
Также есть возможность управлять порядком расположения полей ресурсов
в отчете - можно располагать ресурсы либо после всех полей группировки,
либо в порядке расположения в отчете. Стандартной позицией ресурсов явля-
ется расположение После всех полей.
В приведенном примере параметр Авто позиция ресурсов установлен
в значение Не использовать (рис. 3.288).
Рис. 3.288. Настройка автопозиции ресурсов
При этом данные в отчете Сборка системных блоков сгруппированы по полям
Системный блок и Мастер. В детальных записях отчета поля выводятся в следу-
ющем порядке: Количество, Стоимость, Дата, Номер (рис. 3.289).
В результате при значении параметра Авто позиция ресурсов - Не использовать
поля ресурсов (Количество, Стоимость) будут располагаться в порядке распо-
ложения в отчете - сначала поля группировок, потом в том порядке, в котором
они расположены на закладке Выбранные поля настроек отчета. При этом поля
ресурсов всегда будут располагаться горизонтально, независимо от значения
параметра Расположение ресурсов (рис. 3.290).
е, тнг "Оснг“нц^’ отчета “'бфка-иет'емньвблоков" Демйтстраципнная ^онф ураииФ “Система к-мг- . (}^)|распр1
Ьарианг "Основной" отчета "Сборка системных блоков"
Добавить ’ ) Щр X # 11|Й
1 Структура отчета
Все действия
Л
Й1333 Системный блок
г- ’^чеш Мастер
< Детальные записи»
!
Поля | Отбор -- Сорим. ~ Црлов.,.
Долог
| @ Текущнй элемент имеет собстве иные настройки выбранный полей (для детальной настройки элемента)
I Выбрать
! ? Доступные поля
| -
Все действия’- Добавить новое поле ; Сгруппировать поля ! X * Ф Все действия
•»» I
1^.
-'..Поле
Т5
4>
язв
$
Мастер
Номер
Регистратор
Системный блок
Ссылка
Количество
Стоимость
2 Количество
$ Стоимость
» Дата
•» Номер
Завертиить редактирование’ Отмена Все действия’! ;
Рис. 3.289. Настройка порядка полей в отчете
(Сборка системных блоков
I
;Пареметры: Начало периода 01.122011
; Конецпериода 15.01 2012
1
1 истомный блок Количество Стеимотть
Мастер
’ . ... ,...Д . •_ . Дэта 1онер
Компьютер для дома 1. 9 ООООД
| .Ильин Сергей_. ____,__ _ _ . „Д>. .и.. 9000,00 ] .',
; _Т~ 9 000,00 1112 2011 000000002 ’ {/
Компьютер для офиса 1 8 500 00
Соколов Андреи ; 1 0 500.40
|' 1 . ~ 8 500,00 06.12.2011 '000000001"’;;
Компьютер,игровой 1 10 50000
> Соколов Ацлрей 1ь . 10 500.00
Г ' ~ ’ 1 ' 10 500,00;11.012012 ;Оюб00003
Итого 3 2вшед
Рис. 3.290. Результат отчета
Если установить параметр Авто позиция ресурсов в значение После всех полей,
то ресурсы будут выводиться в стандартной позиции (рис. 3.291).
1 Сборка системных блоков
Параметры: Начало периода: 01.122011
Конецпериода: 15.012012
Системный блок
Мастер
.Количество .Стоимость
Дат? _ Номер
Компьютер для дома л '2; 9600,80
‘ Ильин Сергей 1 9 000,00
" 11.122011 ~ ;000000002 ~ 1< ’ 9 000,60.
Компьютер для офиса 1 8 500,00’
Соколет Андрей '.‘г 9 00,00
08.17.2 31, <000606001 ~ 8 500,Со
Компьютер игровой 10500Р0
Соколов Андреи 10500,00
I ’ :.1 Г 2012 :о6о66оооз’' ' 11 ~ Юпоодо
Итого л * •**г? . Л -Г . , - Г 1 «1;- 28 ОДР,00
Расположение группы выбранных полей
Система компоновки данных предоставляет возможность изменять располо-
жение групп выбранных полей. Управлять расположением группы выбранных
полей можно в конфигураторе, в режиме настроек конструктора схемы компо-
новки данных на закладке Выбранные поля или в режиме 1 С:Предприятие при
изменении варианта отчета (Все действия ► Изменить вариант) на закладке
Поля.
Если на данной закладке в поле, отображающем выбранные поля, сделать
активной какую-либо группу, то справа от нее появится колонка Располо-
жение, позволяющая управлять расположением выбранных полей в группе.
В приведенном примере создана группа полей Реквизиты и в нее добавлены
поля Номенклатура.Код и Номенклатура.ВидНоменклатуры (рис. 3.292).
I. Ййрам... Э Г ;.!В Поля") СортирХ ЙСйИг.,’ | .Допив», *
I нр Текущий элемент имеет собственные настройки выбранных полей (для детальной настройки элемента)
’ Выбрать Все действия» ^Добавить новое поле Сгруппировать поля ; X I "'ш’ ’Ф’ | Все действия»
I Г Доступные гпзля
«• Номенклатура
«» Версии данных
Вид Г йг ЙНГ
Заголовок
; ) Г 1 Выбранные поля
|. > 1 ‘ Приход
; I (?’‘ ’Э -л Реквизита
I . й 1»1 » Т «
' Расположение
1гВТ
•ЙО
Кед
Мой родитель
Наименование
Пометка удаления
Предопределенный
Родитель
“ Номенклатура.Код
«и Номенклатура.Вид номенк.4 Горизонтально
-------- .. ---------------
। Вертикально
> В отде/ьной колонке
• Вместе
1
«® Это группа
® «“ Регистратор
Я
Рис. 3.292. Настройка расположения группы выбранных полей
Существуют следующие варианты расположения выбранных полей в группе:
и Авто - расположение полей определяется автоматически. Для группи-
ровок и строк таблицы поля располагаются горизонтально, а для колонок
таблицы - вертикально (рис. 3.293);
Ншёййййт/!; *.Кед
. .. -А.»
! Монитор исс ОООАЛ0012 Материалы 4,000
-л..Лу. рададзэ-.
Память 000000004 Материалы 5,000
У’' ,,ы' У ’ .•Л
• Жесткий диск оосЖособ Материалы 3,000
I Магер.нгхая плита |КЮ00003 Мате-малы 5 0130
очие ч’ ЧИь-,ё .
[ Веб-камгта Х0000026 : атериаль 10,000
Микрофон 10,060 кжааан
Рис. 3.293. Вывод группы выбранных полей - «Авто», «Горизонтально»,
«В отдельной колонке»
Горизонтально - поля располагаются горизонтально слева направо.
Для каждого поля отводится отдельная колонка (см. рис. 3.293);
Вертикально - поля располагаются вертикально сверху вниз. Для каждого
поля отводится отдельная строка (рис. 3.294);
Приход
Ней^Ш'лат^а.ВйД ' -
МОНЮ „рЫ • -- -с-яг. аг^-.-З (ОЧЛ •' ' Мрзт» . ...
Монитор ОСО 000000012 Материалы 4/300
! О3>'- ' ' .
। !амять 000000004 Материалы 5,000
*• ДОЙН-' ' „ . . ••• • * ойОйоОГ V.? » Ш
Жесткий диск 1 000000005 Материалы 3,000
Материнская плата 000000003 Материалы 5,0130
т.. ОСО.?. '4 \ яцр Мн'т.’ги <Ы 4 'ЙНКЗ А - к
Веб-камера 000000026 . Материалы 10,0001
1 Микрофон 00000026 10.000
Чте-малы У
ррм
Рис. 3.294. Вывод группы выбранных полей - «Вертикально»
» В отдельной колонке - поля располагаются горизонтально слева
направо. Для каждого поля отводится отдельная колонка, при этом все
колонки группы располагаются правее всех остальных колонок (кроме
ресурсов, если ресурсы располагаются стандартно — после всех полей),
см. рис. 3.293;
Вместе — поля располагаются вместе в одной колонке и разделяются
запятой (рис. 3.295).
^1гменж',йц-ра Рейвизлак». . . ........ ... . 1
Ййшоййги ЙЙоайЖ ?.; ’ ..... ... .
Монитор ОСО Г Ж».. ..Жа». 0000С. 012, Материалы 4.000
оеу су у- . Память 000000004, Материалы - 5,000
Жесткий диск СЙ . г_., ' с, :^ед«Ж
6Ш000005, Материалы 3.000
Материнская плата ОС!ЗОООООЗ, Материалы 5000
Веб-камера сктаюбй?.:3' 000000026, Материалы : жде 10,000
ОН 1^^|ППППг>Я 10,000
Заголовки выбранных полей
Система компоновки данных предоставляет возможность изменять заго-
ловки выбранных полей. Управлять заголовками выбранных полей можно
в конфигураторе, в режиме настроек конструктора схемы компоновки данных
на закладке Выбранные поля или в режиме 1 С:Предприятие при изменении
варианта отчета (Все действия ► Изменить вариант) на закладке Поля.
Для этого нужно выделить в списке выбранных полей нужный заголовок
и вызвать его контекстное меню правой кнопкой мыши. Затем выбрать пункт
Установить заголовок... и ввести новое название заголовка. Нажав кнопку
открытия со значком лупы, можно задать альтернативный вариант заголовка в
случае использования в конфигурации нескольких языков (рис. 3.296).
Параметры | Выбрани... [ Отбор
Доступные поля
темный&лок.
________________
I
I
9
0
а
3
С. стад
КоличествоП риход
КоличествоРасход
КонечныйОстаток
НачальныйОстаток
Прибыль
СтоимостьП риход
СтоимостьРасход
СистемныеПоля
П араметры Данных
КонечныйО стагок
!Н.
В
$
Сорт«кжкг г Условное . Гольцова.-.
I©
""7------—“
|.Пбле
& Выбранные поля
# НачальныйОстаток
! Приход (КоличествоПриход)
СтоимостьП риход
СтоимостьРасход
Прибыль
{Расход!
е
Г
Затжииж
Рис. 3.296. Настройка заголовков выбранных полей
Таким образом, для одной и той же схемы компоновки данных разные
настройки могут задавать разные заголовки полей.
Расположение общих итогов
Система компоновки данных позволяет настраивать отображение общих
итогов в отчете. Управлять расположением общих итогов можно в конфигура-
торе, в режиме настроек конструктора схемы компоновки данных на закладке
Другие настройки или в режиме 1 С: Пред приятие при изменении варианта отчета
(Все действия ► Изменить вариант) на закладке Дополнительные настройки.
Для этого нужно установить значение параметров Расположение общих итогов
по горизонтали и Расположение общих итогов по вертикали (рис. 3.297).
Параметры Выбрани... Отбор ?, Сортировка Условное,., , , Пользоез.. Другие н... |
1 Параметр Значение л &
@ Макет оформления Арктика
(Д Расположение итогов 1 1 Расположение полей группировок Авто Вместе
Ц Расположение группировок Начало 5»
□; Расположение реквизитов Вместе с владельцем
| О: Расположение ресурсов Г овизонтально
/3; Расположение общих итогов по горизонтали Ает
Расположение общих итогов по вертикали Нет - )
Тип заголовка полей Начало
[О Тип диаграммы Конец
О Базовое значение Начало и конец
Пропускать базовое значение _ ЕДИИИИМИИИММ
Рис. 3.297. Настройка расположения общих итогов
Параметр Расположение общих итогов по горизонтали имеет смысл только для
таблиц, а параметр Расположение общих итогов по вертикали — для группировок
и таблиц.
Существуют следующие варианты расположения общих итогов:
Нет - не отображать итоги. Для группировок не отображаются только
итоги по вертикали, а для таблиц - итоги по вертикали и по горизонтали.
В приведенном примере параметр Расположение общих итогов по вертикали
для группировки установлен в значение Нет (рис. 3.298).
Номенклатура Склад Приход Расход Конечный
1 —• . д 1 остаток
Микрофон 'РОЗНИЧНЫЙ 10Д00' 2,000 ; 6,000
Веб-камера {Розничный 16,000) 3,000 7,000
Мин <тор ЬСО Материн. я плата Розничный (Основной 4,000 ’ 5,6661 2,666 2,000 ~ЗД00 2,000
Память ! Жесткий диск 'Основной Основной ] 5,0001 3,000; 3,000: 2,000- Д'здбо ’ 2
Рис. 3.298. Вывод общих итогов по вертикали - «Нет»
В приведенном примере параметры Расположение общих итогов по верти-
кали и Расположение общих итогов по горизонтали для таблицы установлены
в значение Нет (рис. 3.299);
Номенклатура Основной 1 Розничный 1
Приход Расход Конечный " Приход Расход Конечный
остаток остаток ;
Веб- аь.ере (Жесткий диск ; 10,000 ЗДОО^ [
] 3,000 г- - \ 3,000; 7.00СГ
{Материнская плата -Микрофон Монитор ШЭ [Память 5,000; 3,000' 2,000 1 10,000 ~Д' __ ДТ" ”4,000 здоб, ' 7 2-ооо1 2,000 2,000 6,000; 2,000; : ;_~г1
Начало - отображать йтоги в нач|але. Для группировок и строк! таблицы
общие итоги отображаются п~рсд строками группировки, а для колонок
таблицы - перед колонками гэуппировки. В приведенном примере пара-
метр Расположение общих итогов пр вертикали для группировки установлен
в значение Начало (рис. 3.300)
Номенклатур Склад 7 Г1| -1. " ’ 1 . Ч ЖХЦ, 1 . Расход^ («ней >ста_|Ой э»Й «’
©ого 37 Д ю. даадд 21 о_5>
। Микрофон (Розничный 10,1 00? 2,000 5,000;
Веб-камера (Розничный ; 10^1 00 3,00(Г Л.ОООР
{Монитор ЬСО (Розничный ; 4.1 00 2,66(3 г,ооо’
(Материнская плата (Основной ; 5,( 00 3,00(1., г ,000:,
(Память (Основной ; 5,( 00 3,00(Т’ г,ООО:
(Жесткий диск (Основной ; :ц 00 3,66(3^ п ; ।
' ----- - - -- ' - -Г.-Г -^.-,--=>^4 И]! ]=:
Рис. 3.300. Вывод общих |1тогов гк} вертикали «Начало»
В приведенном примере параметры Расположение общих итогов |ро|верти-
кали и Расположение общих итогов ро горизонтами для таблицы установлены
в значение Начало (рис. 3.301)
Номенклатура" ” * ТОГО Дсноьнзй " Розничный
к Приход ;Р< эсход * онечный иход Расход ’Конечны! । Приход Р асход 'Конечный
, остаток остаток остаток
^ТОГО з/да 16,000 21ДЙ 13,0С 3 9,000 . 4,0)0 24,000- 7,000. 17,00^
'Веб-камера 1?,00Г 3,000 7,000 1__ 1. „ ю,ооо: зооо: 7,ссо
(Жесткий диск 3,000! 3,000 3.0(0 3,000;
(Материнская плата 5,000! 3,000 2 ДОГ 5,0(0 3,666' 2,С об1 Тб,боб! 1
(Микрофон 10,000; 2,000 8,000 2,000 ! 8,000 2,666: где
(Монитор ЬСО 4дюо; 2,000 2,000 4,000’
(Память V 5,000! 3,000 где 3,0(0 З.ООО! 2,С 00 г
Рис. 3.301. Вывод общих итогов гк вертикали и горизонтали - «Начало»
и Конец - отображать итоги в конце. Для группировок и строк таблицы
общие итоги отображаются после строк группировки, а для колонок
таблицы - после коленок группировки. В г ривсдснном примере пара-
метр Расположение общих итоюв пр вертикали для группировки установлен
в значение Конец (рис. р.302).,
Номенклатур' 'ЬкЛаД: !| 4 ж= - Ч Триход и Расход (лнечн • <статок ЙЙ И И
Микрофон Розничный ; 10,С ю 2,000 чОООГ
Веб-камера Розничный ( 10,С ю1 3,000 * 1 1 ,000 р
Монитор 1.СО Розничный 4,С ю 2,000 Г :
Материнская плата 'Основной ; 5.С ю 3,666 1 Т .ооб]<
Память ^Основной 5^ т 3,000 /300'?
Жесткий диск Основной : V ю1 З.С0С [ _т Н
Йтого .37,01 О 16,006
Рис. 3.302. Вывод общих Итогов т| вертикали - «Кон||ец»
В приведенном приме тс парШетЬы Расположение общих итогов по |верти-
капи и Расположение общих итогов по горизонтали для таблицы установлены
в значение Конец (рис. 3.303);,
Номенклатура Основной - Розничный ^ОГС
Приход Расход Конечный Прихгд Расход Конечный Приход Расход Конечный 7
’ остаток , остаток остаток
[Веб-камера ! ; 10,000; 3,000! 7 ДЮ ~'здюГ~" '"~7 > ЮДИН 3,ЛОО( 7000
{Жесткий диск Н .. (Материнская плата 3,000 ЗД)0; ЗД)0 !
5,000 3,000! 2,ооо: ; ; 5,000? 3,000 2,000;
| Микрофон 10,000; 2,000! 6.00Г 10,000 Г 2,000 6,000;
{Монитор ЬСС ; I 4.000 2,000; 2,000 4,000! 2,000 2,ооо;
(Память 5.000 3,000 ! 2,000 ; ‘ 5.000 ; 3,000 2.000!
,г _ 13,000 9,000 . проа. 24,000; .7,000 17.000 .. 16.000.
Рис. 3.303. Вывод общих итогов по вертикали и горизонтали - «Конец»
Начало и конец — отображать итоги в начале и конце. Для группировок
и строк таблицы общие итоги отображаются перед и после строк груп-
пировки, а для колонок таблицы - перед и после колонок группировки.
В приведенном примере параметр Расположение общих итогов по вертикали
для группировки установлен в значение Начало и конец (рис. 3.304).
Номенклатура I. . Склад .Приход (Расход ; Конечный .. - [ ...т . .. 'остаток
Сотого Ж.000, 16,000. 21,00^
.Микрофон /Веб-камера _ {Монитор 1_С0 (Материнская плата {память Жесткий диск детого {Розничный^ _ {6,бой; ^,636/ _ Й.ЙОО розничный | 10,000; 3,000* 7Д® {Розничный 4,000 ! 2,000! 2,000 .Основной ; 5,000; 3,000! 2,000 {Основной Т 5,000; 3,000 ! 2,000 основной ; З.обб. 3,000' •37.000 16.ооп 2100?
Рис. 3.304. Вывод общих итогов по вертикали - «Начало и конец»
В приведенном примере параметры Расположение общих итогов по верти-
кали и Расположение общих итогов по горизонтали для таблицы установлены
в значение Начало и конец (рис. 3.305);
Номенклатура Итого Основной Розничный И^ого
I -х Приход Расход Конечный остаток. Приход Расход ‘Сенечный Приход Расход Конечный - остаток . . . -остаток Приход Расход Конечный остаток ;
(ЙГОГО ‘ 37,000 16,000' 21,000 Узда: й*'00 4.00( 24,000 7.000; <7,000 37,000 .16,006 21.000.
Веб-кэмера 10,000, 3,0001 7Д00 1О.66О1 3,000- 7,000 10,000. 3,000^ 7,000
(Жесткий диск 3,000 3,000 здоо; 3.000 3,000 3,000!
/Материнская плата С.000 3,000' 2,000 5,000 3,000 . 2,000! 5,000. 3.000! 2.000'
/Микрофон 10.004 2 ЛОО 8,004 ю.ооо; 2,000 . 8,000 10,800 2,000! 8,000!
^Монитор ОСО {память-..-.. .,1..1Д.Ц-П.[Х-П.,. 4.000, 2,000 2,000 4,000 2,000 ! 2 00п 4,000, 2,000; 2,000'
5.000' з.боо; - 2.000 ^оро 3,0.00;... 2.000.-. , . 5.000 ... , , 2ДО:
<Й~ог;| . . 437,000- 16,060 21,000? 13,000 9,000 . 4,0С0 24.60(1 7,000, . . 17.000 <37,000 16,000/ . .21,РОДУ
Рис. 3.305. Вывод общих итогов по вертикали и горизонтали - «Начало и конец»
Авто - расположение общих итогов определяется автоматически.
Для группировок верхнего уровня общие итоги отображаются в конце, для
остальных группировок общие итоги не отображаются.
Заметим, что параметры Расположение общих итогов по горизонтали и Распо-
ложение общих итогов по вертикали можно использовать и для вложенных
группировок. Для этого нужно задать эти же параметры в режиме настройки
отдельной группировки. Например, в приведенном примере для группировки
Склад общие итоги (отображаются в конце, а для группировки Номенклатура -
в начале (рис. 3.306).
Склад Начальны? Приход Расход Конечный
Номенклатура , остаток а -1 остаток !
Основной 13,000 9,000 4,000
« ^Тгого 13,000 9,000 4,00(Г>
Жесткий диск 3.000 3.000
Мат ркиская плата ~ ' . ... 5.000 злое 2.00г<
Память т 5,000 ЗД00? 2.Ж
Розничный 24,000 7.000 17,000
Оттого > М.бИ ?.мг 17,17^
| Веб-камере Ю.осб ' утя ^^7 НО;
Ми мофон „ 4 ю.ооо 2,000 6,000
I Монитор 1.С0 4,000 2,000 2,000
|ИтОГ1 37,006 16,000 21 ЛОО |
Рис. 3.306. Вывод общих итогов по вертикали для отдельных группировок
Также заметим, что отбор, применяемый в группировке, влияет на отобра-
жение общего итога по данной группировке. Например, в указанном ниже
отчете для группировки Номенклатура установлен отбор. В приведенном
примере в общем ит|оге по группировке Номенклатура указаны приход, расход
и остаток с учетом отбора, тогда как для вышестоящей группировки Склад
указываются приход, расход и остаток без учета отбора (рис. 3.307).
Склад Начальный Прих( Номенклатура остаток Расход Конечный остаток
Основной 13 Л00 9,000 4,00Т>
Стёо.. Конечный остатб1 больше
Итого □
'ни' й 24 000 7,000 17,СОО>
Ст^ор. юнечный остаток олыге ",
|> Итоге- 20|000 5,000 15,0001
Веб-камера | 10|000 3,000 7,000-
Микрсфсн 10 2,000 6,000
СЕтого 37,( ЮО 16.000 21ДМ>
Рис. 3.307. Вывод общих итогов с учетом отбора по отдельной группировке
Отображение заголовков, параметров данных и отборов
Система компоновки данных позволяет настраивать отображение заго-
ловков, параметров Данных и отборов. Управлять отображением заголовков,
параметров данных и отборов можно в конфигураторе, в режиме настроек
конструктора схемы компоновки данных на закладке Другие настройки или
в режиме 1 С:Предприятие при изменении варианта отчета (Все действия ►
Изменить вариант) на закладке Дополнительные настройки.
Для этого нужно установить значение параметров Заголовок, Выводить заго-
ловок, Выводить параметры и Выводить отбор (рис. 3.308).
Заголовком в системе компоновки данных является текст, выводимый в начале
отчета или группировки. Заголовок может задаваться для отчета в целом,
таблицы, диаграммы^ а также для отдельных группировок.
^;Пара ; < ^-Пспь- Групп.. , < '(^-Вопя^ ( Отбор. /Ж йрт.^ 11 Уста. Г ^Дотто... )
; у: Т екушкй э лемент имеет собственные дополнительные настройки |
! Все действия» {
Параметр ^на% а
но Размещение легенды Нет 1 ! .з :
ИС2 Полосы измерительной диаграммы Нет полос 1
Расположение ресурсов в диаграмме Дето
Выводить заголовок Дето
Заголовок Продажи товаров и услуг 1-
к. Выводить параметры Выводить 1-4
Выводить отбор ”5
. —— —-•— • — —. . - ...— „—.
Рис. 3.308. Настройка отображения заголовков, параметров данных, отборов
Для управления отображением заголовков используются следующие пара-
метры:
Выводить заголовок - управление отображением заголовка. Существуют
следующие варианты отображения заголовка:
□ Авто - отображение заголовка определяется автоматически. Если
в заголовке указан текст, то заголовок отображается, иначе - нет;
□ Не выводить - заголовок не отображается;
□ Выводить - заголовок отображается всегда.
В строке Заголовок задается текст заголовка. Чтобы не выводить заголовок,
можно просто снять флажок его использования в этой строке. В приведенном
примере параметр Выводить заголовок установлен в значение Выводить, при
этом выводится общий заголовок отчета (рис. 3.309).
41 Р— (1С-П V -
э Продаж*/! номенклатуры Вариант отчета (Основной ; > Ор м# , : ш ‘Настройка.. ! В ыбрать вариант. Все действия» ; и.—' 4»
' (Т?, Начало периода 01.12.2011 '''' М^- й?! Конец периода 15.12.2011 * 1- 1
< Мелкий заказ И : Г" ь.
^Продажи товаров и услу0 [<
< /Параметры: Начало периода: 01.12.2011 ; Конец периода: 15.12.2011 г-
у 1 1 Контрагент Количество Стоимость Номенклатура .Гериод _ гг- .ООО 'Аетоматига” 11 500,00 •; Р-: ; Диагностика комгьютера 2^ 1 500,00' ; I 5 декабря 2011 г. 1! 1 000,00' ! • 1 11 декабря 2011 г. 1; 500,00 : —1 ) Кокитьютер для дома 1] ЮОООДО: , ; 11 декабря 2011 г. 1‘ 10 000,00 {ООО “Система" [ 10000,00 ; Н) ; Компьютер для офиса 1, 10000,00' 1.1 1 9декЦэя2011 г. ' 1 Г^"юд6о,о6: 1’ [ОООСтиль" ”Т“7 ТООООД) ; ; МодйторССО ._ 1; _ ЮОООДО. * ; ' 6декабря2011 г. 1^ 10 000,00. _ .. 31И)О.рО: » , ] и». а. --*л—* — .«Аг-«*^г4< V 1 ,
Параметры данных отображаются только в начале отчета. Для управления
отображением значений параметров данных используется параметр Выводить
параметры.
Авто — отображение параметров данных определяется автоматически. Если
параметры данных указаны, то отображается текст вида Параметры:
<параметр1>: <значение1> (см. рис. 3.309), иначе параметры не
отображаются;
и Не выводить - параметры не отображаются;
я Выводить - параметры отображаются всегда. Если параметры не указаны,
то отображается только текст вида Параметры:.
В приведенном примере параметр Выводить параметры установлен в значение
Выводить, при этом параметры в отчете не используются (рис. 3.310).
1;
Сф рмирыл •« I ед Настройка...
1араметры:
1
01.12.2011
15.12.2011
Конец периода
ИЖ Мелкий" заказ
Продажи номенклатуры
Вариант отчета: [Основной_
На
,Во^с-’ь вариант- I
I Продажи товаров и услуг
контрагент Номенклатура Период . |Количествб.- Сюимость
<ЗОО "Автоматика 24 500,00
Диагностике компьютер > 4 1 500,00
5 декабря 2011 г. 1( 1 000,00
11 декабря 2011 г. и 500.00
омпьютер для доме. 1 10 000,00;
11 декабря 2011 г. г 1; 10 000,00;
Компьютер игровой 1! 13 000,1)0
12 января 2012 г. > 1; 13 000,00)
<. ЮС "Атлант" V’ 1 эооо.оо;
□постановление данньг . 1! 5 000,00:
15 января 2012 г. 1 1 5000,00
Ремонт компыст ара 1 - 11; з ободе
13 января 2012 г. г • .11 з о6о,оо;
Сопутствующие услуги 1 , 2* 1 000,00'
13 янве^эя 2012 г. 1 _ 1. _ 2! 1 000,00
(ЮО "Система^' , 1 10 000,00)
Все действия
- 2’;™$
Рис. 3.310. Вывод параметров отчета
Ж
Отбор может отображаться как для отчета, таблицы или диаграммы, так и для
отдельных группировок. Для управления отображением отбора используется
параметр Выводить отбор.
Авто - отображение отбора определяется автоматически. Если отбор уста-
новлен, то отображается текст вида Отбор: <текст отбора>, иначе
отбор не отображается;
{я Не выводить - отбор не отображается;
Выводить - отбор отображается всегда. Если отбор не установлен, то
отображается только текст вида Отбор:.
В приведенном примере параметр Выводить отбор установлен в значение
Выводить, при этом отбор задан только для группировки таблицы Номенкла-
тура. Параметр Выводить заголовок установлен в значение Авто, при этом для
таблицы и группировки заданы различные заголовки (рис. 3.311).
'5^” О.с.агкмн'тые. {1С.Предп 1ятче1 .зкИ'С'ЛВ •!/ м- - ~
Все действия’' I
Г’
|,Остаткк но менк лату р ьг
}А
Выбрав вариант.-.
Остатки номенклатуры
Вариант отчета: {Оформление
> Зе®» 'рочап, Щ Настройка...
Рис. 3.311. Вывод отбора для отчета в целом и отдельной группировки отчета
ТОтбор:
| Склад Номенклатура Начальный остаток Приход 1 Расход Конечный остаток
Оснозног „ .. . ' .! 43000 5 СОЙ
С5тбор: Конечныйостаток Больше “1“
[Материнская плата 5,000 3,000 2,0001
'Память 5,000 3.0Ю соя 2,003
Р« алчный ? 24,000
<25тбор: Конечныйостаток Больше
'Веб-камера 10,000 3,000] 7,0001
Микрофон 10ДО0 ”~2даТ 8,000'
' [Монитор 1_С0 | 4,000 2,000] 2,000
| Итого 37,000 16 000 2^ 1-00]
; Список номенклатуры на складах
1 1 | 1 1 ! 1
Номенклатура Склад Приход Расход Конечный «остаток
Микрофон 'Розничный 1 10,000 ? 2,000;^ 8,000 ! Веб-камера ^Розничный _ 10,000 _ 3,000 < _ 7,000] Монитор БСб ^[Розничный 4,000* 2,000 ' 2,000! Материнская^ата (Основной 5,000 ; 3,000; 2,000 < Память 'Основной 5,000 3 000 2,000!
1 Жесткий диск . [Основной •_ 3,000]~ 3,000 1 __ ]
Г7: Ь I ' 1 1 I н г ; 1 1 1 6 1
Настройки диаграмм
Система компоновки данных предоставляет возможности для настройки
различных свойств отображаемых в отчете диаграмм. Управлять настройкой
диаграмм можно в конфигураторе, в режиме настроек конструктора схемы
компоновки данных на закладке Другие настройки или в режиме 1 С:Предприятие
при изменении варианта отчета (Все действия ► Изменить вариант) на закладке
Дополнительные настройки.
Логически Диаграмма является совокупностью Точек, Серий и значений серий
в точке. В качестве значений выступает один из ресурсов отчета, в качестве
точек - объекты, для которых мы получаем значения характеристик, в каче-
стве серий - характеристики, значения которых нас интересуют.
Прежде всего, исходя из эффективности графического представления
результатов отчета, выбирается тип диаграммы: график* гистограмма, измери-
тельная, круговая и т. д. Например, для демонстрации изменения каких-либо
значений характеристик во времени лучше всего выбрать тип диаграммы
График, где точками будут моменты времени, а сериями - характеристики,
например продажи товаров. Для демонстрации доли объема продаж каждого
контрагента подходит Круговая диаграмма и т.д. Далее можно настроить
ряд свойств диаграммы^ таких как расположение легенды, состав подписей,
расположение ресурсов в диаграмме и др.
Так, например, для отчета Продажи контрагентам в настройках диаграммы задан
тип диаграммы - Круговая объемная, параметр Состав подписей установлен в
значение Серия + процент, а параметр Размещение легенды - в значение Верх
(рис. 3.312). I
Парам,.. 1'ользо.. Группи. Поля Отбор Сортир... Условн. Г допол
м Т екуШ11й э лемент имеет собственные дополните г ьные настройки
Все действия
Параметр Значение
Сс р & Т ип диаграммы 1 Круговая объемная 2^
Базовое значение
Пропускать базовое значение Да
Состав подписей Серия + процент
Ю Режим раздвижения Нет
□ Отображать таблицу данных Нет
□ Максимальное значение 1
; Минимальное значение
го ; Окантовка Нет
о Градиент Нет
о ' Шрифт Шрифт диалогов и меню 1
1о Цвет Фона 0,0.0
[п • Стиль линии Нет линии 1
Размещен, е легендь: [' ерх
Полосы измерительной диаграммы Нет
о Расположение ресурсов в диаграмме Лево
о , В вводить заголовок Право
|С Заголовок 1
_ Выводить параметры Низ . __ к
Рис. 3.312. Настройка вывода состава подписей, легенды и типа диаграммы
В результате диаграмма будет выведена в следующем виде (рис. 3.313).
В диаграмму можно выводить сразу несколько ресурсов. Управлять их распо-
ложением в точках или сериях диаграммы можно с помощью параметра
Расположение ресурсов в риаграмме. Например, в варианте Движение номен-
клатуры для отчета Остатки номенклатуры по периодам в отчет выводится
гистограмма, в точках которой данные сгруппированы по номенклатуре, а
в сериях - по складам. Ресурсы Приход и Расход выводятся в сериях диаграммы
(это стандартный вариант расположения ресурсов в диаграмме), рис. 3.314.
л‘ 'Ъ7Ъ ;Й;\ НМ-
Продажи контрагент.^и . Ьмшстгэджнн . ПСПредприятиеТ ^•^. л&
Рис. 3.313. Результат отчета
[й.
Остатки нрменклатчрыгш периодам - Демон. ПСДгедприятие), , _ .
М; М« М-
Остатки номенклатуры по I .еркодам
Вариант отчета: ! Движение номенклатуры
В «брать вари ".
Все действия I
11
10
9
7
2;
8
31
Сформировать ' Настройка...
»О Вертикально
г Большая закупка________________
( ’ Расположение ресурсовв диаграмме
6
4
Веб-камера материнская плата Монитор ОСО
Жесткий диск Микрофон
Память
Основной, Приход
л Основной, Расход
м® Розничный.
Приход
Розничный,
Расход
В результате мы видим не две серии - по числу складов, а четыре - на каждый
склад по два ресурса.
Если же установить параметр Расположение ресурсов в диаграмме в значение
Точки, то ресурсы в диаграмме будут располагаться в точках, и, поскольку
точек получается много (на каждую номенклатуру по два ресурса), текст
в точках диаграммы автоматически располагается вертикально (стандартно
текст располагается горизонтально), рис. 3.315.
л
^рет^индаа1клвгуръ1поп^ юдам Демин РРТ лрияп®| ^4
О
'! Вь1брать вари-знт.,
Все действия " |
11 I
10И
§
§
Остатки номенклатуры по периодам
Вариант отчета [Движение номенклатуры
Сфор.«ф а 1 • ^Настройка...
[Г] : Вертикально
йЩ Большая закупка
а
г
в
ЭС
О
ГО
'к
Б
'_Л
г. "
бЙ
4
Рис. 3.315. Диаграмма отчета
Основной
ЙЗ Розничный
8
5
8
с
1
Но можно и принудительно расположить текст в точках диаграммы
вертикально. Для этого используется условное оформление диаграммы,
рассмотренное в следующем разделе.
Условное оформление
Для более наглядного представления данных в отчете система компо-
новки данных позволяет задавать условное оформление областей отчета.
При помощи условного оформления можно изменить цвет текста или фона,
шрифт, горизонтальное или вертикальное положение и т.п. как отчета в
целом, так и его отдельных областей. Условное оформление применяется к
отчету при определенных условиях. Например, когда остаток товара равен
нулю, соответствующие строки номенклатуры выводятся красным цветом.
Для управления условным оформлением используются настройки компо-
новки данных. В конструкторе схемы компоновки данных или в режиме
изменения варианта отчета нужно перейти в режим настройки отчета в целом
или его отдельной группировки и открыть закладку Условное оформление.
Элементы условного оформления могут быть следующих типов:
Главное — применяется ко всему отчету. Такое условное оформление
распространяется как на специальные области отчета (например, текст
отбора или заголовка отчета), так и на все вложенные элементы отчета
(таблицы, диаграммы и группировки);
Условное оформление таблицы или диаграммы - применяется к таблице или
диаграмме соответственно. Такое условное оформление распространя-
ется как на области таблицы, так и на все группировки строк и колонок
таблицы;
Условное оформление группировки - применяется к отдельно взятой груп-
пировке, то есть условное оформление родительской группировки не
распространяется на дочернюю.
В соответствии с типом оформления нужно перейти в режим настроек груп-
пировки, таблицы, диаграммы или отчета в целом.
Для применения условного оформления необходимо определить следующие
его элементы:
Оформление - описание применяемого оформления. Описанием оформ-
ления является перечень свойств оформления (таких как цвет, шрифт,
стиль границы и т. д.), которые применяются к указанной области;
Условие - условие, в соответствии с которым применяется условное
оформление. Если условие не указано, то условное оформление применя-
ется к указанным областям без условий;
Оформляемые поля - область отчета, к которой применяется условное
оформление. В качестве области указываются имена полей, для которых
будет применяться условное оформление. Если область не указана, то
условное оформление применяется ко всему отчету, таблице или группи-
ровке;
Представление - необязательный элемент для представления условного
оформления пользователю. Если Представление задано, то оно исполь-
зуется для представления настроек условного оформления в отчетной
форме, что, безусловно, более понятно и доступно для пользователя.
Порядок обработки элементов условного оформления следующий: сначала
обрабатывается условное оформление группировок, затем обрабатыва-
ется условное оформление таблиц или диаграмм и в конце обрабатывается
условное оформление всего отчета.
Для примера рассмотрим условное оформление диаграммы варианта Движение
номенклатуры для отчета Остатки номенклатуры по периодам. Поскольку
вариант отчета содержит только диаграмму, то условное оформление задается
на уровне всего отчета.
Использование условного оформления в диаграммах имеет свои особенности.
Так, в параметре Оформление элемента условного оформления используются
только свойства Цвет в диаграмме и Ориентация текста. Также стоит отметить,
что условное оформление применяется только к точкам и сериям диаграммы
и не применяется к значениям.
На закладке Условное оформление схемы компоновки данных варианта отчета
задано два элемента условного оформления диаграммы. В первом элементе
установлена вертикальная ориентация текста для точек диаграммы (поле
Номенклатура). Условие оформления для этой настройки отсутствует, пред-
ставление настройки - Вертикально (рис. 3.316).
Паоаметоы Выбраним..
Оформле
V
Сортировка Условное.. I Пользоеа.
Другие на
Отбор
I Номенклатура
Вертикально
Условие
х
Оформляемые поля Прег.ставлете
Рис. 3.316. Настройка условного оформления диаграммы
Во втором элементе условного оформления установлен фиолетовый цвет
для точек диаграммы (поле Номенклатура), в которых значение поля Приход
больше 8. Представление этой настройки - Большая закупка (рис. 3.317).
Обе эти настройки включены в состав быстрых пользовательских настроек.
В результате отчет выводится с заданным условным оформлением - текст
в точках диаграммы (наименования номенклатуры) располагается верти-
кально, столбцы номенклатуры с большим приходом выделяются цветом
(рис. 3.318).
I
I
г
I
I
I
!
I
I
1
1
I
I
!
I
I
Ь
(«кормление
. ?
®; Ориентация текста
*
Условие
| Представление
Вертикально
Большая закупка
Оформляемые поля
Номенклатура
Ъ «V? * “*• ь - — -
11 ..ПЛйьздва,;; Другие на... ;
8/:-1
Значение
Сине-фиолетовый (В1ие\/ю1еЦ
Г ОК 1 Отмене . | Справка
^НиВН*1*^' Приход Больше ’Б" Номенклатура
I
РгдЛжТИ)Юва^м< й > к* -тв&
С; Цвет фюна
ОI Цвет-Секста
Е. Цвет в диаграмме
Рис. 3.317. Настройка условного оформления диаграммы
- ’ >1 •,*
. Серии
10
Основной, Приход
7Г
Основной, Расход
6
2
1
0'
Розничный,
Приход
! @ ; 8^ Большая закупка
{Е :П ь1 Расположение ресурсов в диаграмме
Остатки номенклатуры по периодам
Вариант отчета ' Движение номенклатуры
? ‘ Е мыровать 1 ЙЦ Настройка...
, 4 ОёгайФ)-номенклатуры то периодам - День У?^Предприятие)
а
Рис. 3.318. Результат отчета
] [ Выбрать вариант.
Все действия
9|
8.
Розничный,
Расход
4 И
Если мы отключим настройки Вертикально и Большая закупка, то получим
результат, показанный на рис. 3.314.
Работа с системой компоновки
средствами встроенного языка
Заметим, что все разнообразные интерактивные возможности платформы
по работе с системой компоновки данных можно описать средствами
встроенного языка. Каждый этап компоновки данных может быть реали-
зован программным образом. Это весьма трудоемкое занятие, и делать это
целиком вряд ли понадобится, но иногда бывает необходимо заполнить
наборы данных, сформировать и вывести отчет, изменить его настройки и т. п.
с помощью встроенного языка. В этом разделе мы познакомимся с основами
работы с системой компоновки средствами встроенного языка.
Установка схемы компоновки данных
Система компоновки данных позволяет создать для отчета несколько схем
компоновки данных. Средствами встроенного языка нужную схему компо-
новки можно получить по имени и программно выполнить отчет на ее основе
(листинг 3.52).
Листинг 3.52. Программное получение схемы компоновки
С^емаКомпоновкиДанных=Отчеты.СлисокНоменкпатуры..ПолучйтьМакет(гОсновнаяСхемаКомпоновкиДанных’’);
Средствами встроенного языка можно создать и описать саму схему компо-
новки данных. Более подробно этот процесс описан на стр. 242.
В приведенном ниже примере создается схема компоновки данных, в нее
добавляется локальный источник данных информационной базы. Затем
создается НаборДанныхЗапрос с именем НаборДанных1 и определяется
текст запроса, получающего цены номенклатуры из виртуальной таблицы
РегистрСведений.Цены.СрезПоследних (листинг 3.53).
Листинг 3.53. Процедура программной установки схемы компоновки
С,КД г- Новый СхемаКомпоновкиДанных;
Ш“-СКД.Йсточни1<иДанных.Добавмть();
ИД.Имя = "ИсточникДанных”;
п.ТлпИсточникаДанных = ТосаГ;
НаЬорДанных = СКД.НаборыДанных.Добавить(Тип("НаборДанныхЗапросСхемыКомпоновкиДанных"));
ШбсфДанных Имя = 'НэборДанныгТ';
НабсрДанных.Запрос =" ВЫБРАТЬ ЦеныСрезПоследних.Период,,,+
’ "ЦеныСрезПоследних.Номенкпатуга, ЦеныСрезПоследних.Цена "+
“ИЗ РегистрСведенйй.Цены.СрезПоследних КАК ЦеныСрезПоследних";
НябррДанных.ИсточникДанных г "ИсточникДанных";
Затем в набор данных добавляются поля Номенклатура, Период и Цена и зада-
ется его формат без вывода дробной части. Далее в набор данных добавляется
поле ресурсов Цена и задается выражение для его расчета (листинг 3.54).
Листинг 3.54. Процедура программной установки схемы компоновки
Поле1 ~ НаборДанных.Пог^Добавить^ТипС'ПолеНабораДанг ыхСжгиыКомпоно&<иДЙнных")):
Поле1 .Поле=ЯиЫкйт /г -Iй;
'Р^бавить(Тиг1('‘ПолеНаборЕДа лыхСхешКомпонозкиДаинь1х’‘));
Поле2 = НаборДанныхЛо
Поте&Пода "Период”.
Поле2ДтьКДанньлИ = "Пер
Пот&Заголовок «•Перед’1
од”:
1олеЗ = НаборДанных Л .л Добавить(Тип('ЛолеНабораД ЛьхСхемыКомпог овкиДанных"))-
ПотЗЛлё= "Цене1
г
'олеЗ .ПутьКДанным ~
ПолеЗ Заголовок ~ "Цена!
ПолеЗ.Офор^ление.Устано
ПолеРесурса = СКД Пол; фбга.ДобавитЦ);
* олеРесурса ЛутьКДанньг Цена!
олеРесурса.Еыражение ь1,1 ^уша(Цена)!
В набор данных также можно добавить вычисляемые поля, параметры и т. д.
Дополнительную информацию об этих объектах системы компоновки данных
можно увидеть в [разделе Синтакс-Помощника: Общие объекты ► Система
компоновки данных ► Схема компоновки данных...
Редактирование стандартных настроек
Стандартные настройки - это настройки, которые делает разработчик в схеме
компоновки данных. Средствами встроенного языка можно получить и изме-
нить стандартные настройки схемы компоновки данных. Более подробно этот
процесс описан на стр. 239.
।
В приведенном ниже примере создается группировка по полю Номенклатура
и вложенная в неё группировка по полю Период. Затем создается автополе
для списка полей и упорядочивания этих группировок. Затем в общий список
выбранных полей1 добавляется поле ресурса Цена. В заключение задается
заголовок и макет оформления отчета (листинг 3.55).
Листинг 3.55. Процедура программной установки настроек
Цадройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
ГруппировкаНоменклатура = Настройки.Структура Добавить(Тип(Т рулпировкаКомпоновкиДанных")),
, ГруппировкаНоменклатура. Использование = Истина;
ГруппировкаПериод = ГруппировкаНоменклатура. Структура.Добавить(Тип(Т руппировкаКомпоновкиДанных”));
ГруппировкаПериод.Использование = Истина;
ЛодеНоменклатура = ГруппировкаНоменклатура.ПоляГруппировки.Элементы.
Добавить^ ип("ПолеГруппировкиКомпоновкиДанчых"));
ПоЛеНоменклатура. Использование = Истина;
ПслеНоменклатура.Поле = Новый ПолеКомпоновкиДанныхСНоменклатура");
ПолеПерисд = Г руппировкаПериод.ПоляГруппировки.Элементы.
Добавить(Тип("ПолёГруппировкиКомпоновкиДанныхи));
ЛрлеПериод-Использование = Истина;
ЛолеПериод.Поле = Новый ПолеКомпоновкиДанныхС Период”):
I
ВыбранныеПоляДляНоменклатуры = Г руппировкаНоменклатура. Выбор.Элементы.
Добавить(Тип(пАвтоВыбранноеПолеКомпоновкиДанных’’));
ВыбранныеПоляДляНоменклатуры Использование = Истина;
I ’рр
ПсрйдокДляНоменклатуры = ГруппировкаНоменклатура Порядок.Элементы
Добавить(Тип("АвтоЭлементПорядкаКомпоновкиДанных’'));
Пррто.ДпяНоменттуры.Использование = Истина;
Вь бранныеПоляДляПериода ~ ГруппировкаПериод.Выбор.Элементы.
ДобавитьСГипС'АвтоВыбранноеПолеКомпоновкиДанных*)):
Вь бранныеПоляДляПериода. Использование = Истина;
ПоэяцокДляПериода = ГруплировкаПериод.Порядок,Элементы.
Добавить(Тип("АвтоЭлементПорядкаКомпоновкиДанных")),
ПоэядокДляПериода.Использование = Истина;
ВыбранныеПоля = Настройки. Выбор.Элементы .Добавит^ТипС'ВыбранноеПолеКомпоновкиДанных"));
Вь ЗранныеПоля.Использование = Истина;
Вь бранныеПоля Заголовок = "Цена";
Вь ЗранныеПоля.Поле = Новый ПолеКомпоновкиДанных(”Цена“);
н
Настройки.ПараметрыВывода.УстановитьЗначениеПараметраС'Заголовок”, "Цены комплектующих");
На^тройки.ПараметрыВывода.УстановитьЗначениеПараметра(,,МакетОформленияи,иЗеленьIй,,);
Код, представленный в листингах 3.53, 3.54, 3.55, 3.61, реализован в обра-
ботке Работа с СКД. В обработке при нажатии кнопки Сформировать отчет
полностью программным образом формируется отчет о последних ценах
комплектующих из регистра сведений Цены (рис. 3.319).
р
Все действия *’
Цены комплектующих
Работа с СКД
Сформировать отчет
Номенклатура Цена
Период
Веб-камера 1000
[ 11.0- 201214 20.01 1 000.
Жесткий диск 3 000
0512.2011 12:22 39 3 00('
Материнская плата 2000
05.12.2011 15:53:17 2000
Микрофон 700
11.01.201214:20:00 700 *
Монитор ЬСВ 10 000
11.01.201211-10:00 10 000*
Память 1200
05.12.2011 15:53.17 1 200
Итого !Ч* ▼—* ' ’ т 17 900
Рис. 3.319. Обработка «Работа с СКД»
Работа с параметрами схемы компоновки
Часто бывает нужно задать значения параметров схемы компоновки данных
по умолчанию перед формированием отчета. Для этого необходимо исполь-
зовать обработчик события формы отчета ПередЗагрузкойВариантаНаСервере,
чтобы в нем изменить параметры настроек перед их загрузкой в компоновщик
(листинг 3.56).
Листинг 3.56. Обработчик события «ПередЗагрузкойВариантаНаСервере»
&НаСервере
Процедура ПередЗагрузкойВариантаНаСервере(Настройки)
Настройки.ПараметрыВывода.УстановитьЗначениеПараметра("Заголовок",
"Продажа системных блоков”);
Настро4КИ.ПараметрыДанных.УсгановитьЗначениеПараметра("НачалоПериода", ‘2011120Г);
Настройки. ПараметрыДанных.УстановитьЗначениеПараметра("КонецПериода" '20111231*);
КонецПроцедуры
В параметре Настройки в обработчик передаются настройки варианта отчета,
имеющие тип НастройкиКомпоновкиДанных. В данном обработчике
методом УстановитьЗначениеПараметраО изменен заголовок отчета,
а также установлены значения параметров начала и конца отчетного периода.
Однако если настройки являются пользовательскими (например, это
параметры отчетного периода) и пользователь хоть раз задавал их
значения в форме отчета, то нужно использовать обработчик события
ПередЗагрузкойПользовательскихНастроекНаСервере, который
вызывается после загрузки настроек варианта отчета. При этом восстанавли-
ваются пользовательские настройки, сделанные пользователем при последнем
формировании отчета и автоматически сохраненные платформой. Пользо-
вательские настройки накладываются на настройки варианта и загружаются
в компоновщик настроек (листинг 3.57).
Листинг 3.57. Обработчик события
«ПередЗагрузкойПользовательскихНастроекНаСервере»
ЛНаСервере
Процедура ПередЗагрузкойПользовательскихНастроекНаСервере(Настройки)
Настрой^ Элементы[0].Значение = ‘20111201*;
Настройки Элементы[0].Исгюльзование = Истина;
Настройки Элементы[1].3начение = ‘2011123Г;
Настройки.Элементы[1].Использование = Истина;
В параметре Настройки в обработчик передаются настройки варианта отчета,
имеющие тип Поль зовате л ьскиеНастройкиКомпоновки Данных.
Так как параметра всего два, то можно обращаться к ним по индексу (0, 1)
в коллекции элементов пользовательских настроек. Мы устанавливаем
значения параметров начала и конца отчетного периода и задаем для них
признак использования. Эти настройки загружаются в компоновщик настроек,
и отчет формируется с заданными параметрами.
Пример программной инициализации параметров отчета рассмотрен
во второй главе на стр. 90.
^аметим, что названия некоторых параметров вывода не совпадают с назва-
ниями в окне настроек схемы компоновки данных. Список имен параметров
для программного использования можно увидеть в разделе Синтакс-
Помощника: Общие объекты ► Система компоновки данных ► Настройки
компоновки данных ► ЗначенияПараметровВыводаКомпоновкиДанных.
Редактирование настроек схемы компоновки
Стандартные настройки схемы компоновки могут изменяться пользова-
телем в режиме 1С:Предприятие. При создании формы отчета последние
пользовательские настройки загружаются в компоновщик настроек отчета.
Средствами встроенного языка, используя свойства основного рекви-
зита отчетной формы (Отчет.КомпоновщикНастроек), можно получить
и изменить эти настройки. В приведенном примере создается отбор
по номенклатуре из группы Комплектующие и включается вывод инфор-
мации об отборе, затем измененные настройки загружаются в компоновщик
настроек отчета, и формируется отчет (листинг 3.58).
Листинг 3.58. Процедура программной установки настроек
Настройки = Отчет. Компоновщик 1астррек.Настройки;
ЭлементОтбора = Настройки Отбор.Элементы.Добавить(Тип(’,ЭлементОтбораКомпоновкиДанных"))
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиД. .нных(”Номенклатура");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанныхВИерархии;
ЭлеглентОтбзра.ПравоеЗначечие = (лравочники Номенклатура.НайтиПоНаименсванию(”Комплектующие");
Настройки, ПараметрыВыводэ УстановитьЗначениеПараметра(’’ВыводитьОтбор",
ТипВыводаТекстаКомпоновкиДанных.Выводить);
Отчет.Комлоновщик'-.астроех ЗагрузитьНастройки(Настройки);
СкомпоноватьРезультат();
Редактирование настроек не основной схемы компоновки
Иногда требуется обеспечить редактирование настроек компоновки данных
не для основной схемы компоновки данных отчета либо вообще не в отчете.
Для обеспечения редактирования настроек произвольной схемы компо-
новки данных нужно инициализировать компоновщик настроек источником
доступных настроек. После инициализации компоновщика настроек он будет
оперировать доступными полями схемы, источник которой ему установлен.
Для этого нужно создать источник доступных настроек для адреса схемы
компоновки данных. В качестве адреса схемы компоновки данных может
выступать адрес во временном хранилище, в которое поместили схему компо-
новки данных, или адрес значения в записи базы данных (листинги 3.59, 3.60).
Листинг 3.59. Инициализация компоновщика настроек источником доступных настроек
АдресСхемы = ПоместитьВоВременноеХранилище(Схема, УникальныйИдентификатор);
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСхемы)),
В данном примере во временное хранилище помещается схема компоновки
данных, находящаяся в переменной Схема.
Листинг 3.60. Инициализация компоновщика настроек источником доступных настроек
АдресСхемы = ПолучитьНав | ЦионнуюСсылку(Ссылка, ‘’СхемаКомпоновкиДаниы/)
КомпоновщикНастроек.Иницмализировать(Новый 4сточникДоступныхНастроекКомпоновкиДанных(АдресСхемы));
В данном примере схема будет получаться из базы данных, из реквизита
с именем СхемаКомпоновкиДанных объекта со ссылкой Ссылка.
Вывод отчета
После того как установлена схема компоновки данных и ее настройки, можно
программно сформировать и вывести отчет (листинг 3.61).
Листинг 3.61. Программное формирование отчета
1-
Г^роцедура Сформ ироватьОтчет(, Экспор
СхемаКомпоновкиДанных = УстановитьСхему();
?
•1.
1
Настрой* = УстановитьНастройки СхемаКомпоновкиДанных);
// В этот объект помещается информация о расшифровке данных.
ДанныеРас ифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
II Формирование макета компоновки данных с помощью компоновщика макета.
КомпоновщикМакета “ Новый КомлоновщикМакетаКомпоновкиДанных;
ь макет компоно ки передаются СхемаКомпоновкиДанных, ее настройки и
' ДанныеРасшифровки для заполнения информации о расшифровке.
। вдкетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных Настоойки
ДанныеРасшифро эки);
।
я 1
п
II Выполнение компоновки данных с помощью процессора компоновки.
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
юцеооорКомпоновкиДанных.Инициализировать Маке .^Компоновки,, ДанныеРасшифровки);
Л Очистка поля табличного документа - Результат.
Результат.О*-" :стить();
Вывод результатов компоновки в табличный документ.
Г фцессорВывода - Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныиДокумент
’ ПроцессорВывода.УстановитьДокумент(Результатд
ПрбцессорВы юда.Вывесги(ПроцессорКомпоновк1*Данных);
»нецПроцедуры
Данная процедура реализована в обработке Работа с СКД. В функциях Уста-
ковитьСхему (), УстановитьНастройки() программно описывается
схема компоновки данных и задаются стандартные настройки. В результате в
обработке Работа с СКД при нажатии кнопки Сформировать отчет полностью
программным образом получается отчет о последних ценах комплектующих
из регистра сведений Цены (см. рис. 3.319).
Система компоновки данных позволяет выводить результат компоновки
дурных в результирующий документ. Для этого у процессора вывода реали-
зован метод Вывести (), в качестве параметра которому передается процессор
в.
мпоновки данных. В приведенном выше примере результат выводится
элемент формы — поле табличного документа. В следующем примере
результат компоновки выводится не в отчетную форму, а в новый табличный
документ (листинг 3.62).
Листинг 3.62. Вывод отчета в табличный документ
ДокументРезультат = Новый ТабричныйДокумент;
ПроцессорВывода = Новый ПроцеСсорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
Процессор компоновки данных выполняет автоматическую фиксацию заго-
ловка таблицы, если в отчет выводится одна таблица или одна группировка
(возможно, с вложенными группировками).
Вывод в дерево значений, таблицу значений
для дальнейшей программной обработки
Результат компоновки можно использовать для дальнейшей программной
обработки и выводить таблицу значений или дерево значений. Для этого
предназначен объект ПроцессорВыводаРезультатаКомпонов-
киДанныхВКоллекциюЗначений. Метод УстановитьОбъект()
является аналогом метода УстановитьДокумент(). Если метод Устано-
витьОбъект () не был вызван, результат будет выведен в таблицу значений.
Элементы результата компоновки могут быть получены при помощи процес-
сора компоновки данных либо сформированы любыми другими средствами.
В приведенном примере результат компоновки данных выводится в дерево
значений — переменную ДеревоРезультата (листинг 3.63).
Листинг 3.63. Вывод отчета в дерево значений
КомпоновщикМакета - Новый КомпоновщикМакетаКоглпоновкиДанных;
МакетКомпоновкиДаннь!х = КомпоновщикМакета.Выполнить(СхемаКомпонов№Данных,
Настройки,,, Тип(Тен^раторМакетаКо1ипоновкиДанныхДляКог.лекцииЗначений"д
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанныхИнициализироватъ(МакетКомпоновкиДанных);
ПроцессорВь вода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ПроцессорВывода.УстановитьОбъект(ДеревоРезультата);
ПроцессорВывода.Вывести(Проце: сорКомпоновкиДанных);
При выводе результата компоновки в таблицу или дерево значений суще-
ствуют следующие ограничения:
н в настройках должны присутствовать только группировки и детальные
записи. Использование таблиц, диаграмм и вложенных отчетов не допу-
скается;
в все папки, указанные в выбранных полях, игнорируются;
в не используется условное оформление, а также оформление для поля,
указанное в схеме компоновки данных;
в из параметров вывода используются только следующие:
□ расположение общих итогов по вертикали;
□ тип заголовка полей;
□ количество записей;
□ процент записей;
в предопределенные макеты не используются.