Глава 7. Отчеты
В данной главе под отчетами понимаются любые выходные печатные формы. Это могут быть печатные формы первичных документов, всевозможные реестры и собственно отчеты.
Для формирования печатных форм в 1 ^Предприятии 8.0 предназначен табличный документ. С помощью элемента управления ПолеТабличногоДокумента он может быть отображен в экранной форме. Табличный документ также иногда используется для ввода данных в систему, поскольку его ячейки могут содержать значения, изменяемые с помощью элементов управления.
Система 1 С:Предприятие 8.0 имеет широкие возможности по формированию печатных форм. Обычно табличный документ формируется на основе макета, то есть шаблона.
Построение макета производится в Конфигураторе в специальном табличном редакторе. Разработчик может создавать области, изменять высоту строк и ширину колонок, задавать форматирование ячеек и всего табличного документа, включать в макет рисунки, диаграммы и сводные таблицы. На основе макета средствами встроенного языка формируется готовая печатная форма — табличный документ.
Отметим следующие важные особенности табличного документа 1С:Предприятия 8.0:
• Поддерживается механизм расшифровок, когда при щелчке на строке или ячейке отчета формируется более детальный отчет или открывается объект базы данных.
• В табличном документе могут быть группировки, с помощью которых можно отражать промежуточные итоги, например, объем продаж по каждому отделу. Пользователь может легко разворачивать и сворачивать группы специальными маркерами. Есть возможность сделать так, чтобы текст в ячейке авто-
матически сдвигался вправо в соответствии с уровнем группировки.
• У ячеек могут быть примечания, содержащие дополнительную информацию. Ячейка с примечанием имеет маленький треугольник в правом верхнем углу. При наведении курсора мыши на ячейку примечание показывается во всплывающем окне
• В табличном документе может быть расположено поле сводной таблицы, которая позволяет отобразить многомерные данные в виде плоской таблицы с вложенными заголовками.
• Можно задать различную ширину колонок в разных строках, что позволяет выводить печатные формы очень сложной структуры.
В большинстве случаев табличный документ предназначен для печати, и система предоставляет широкие возможности по настройке печати документа на принтере Можно задавать колонтитулы, масштабирование, поля от края листа, повторяющиеся на каждой странице («сквозные») строки и колонки, количество копий и другие опции.
Макеты
Макет представляет собой шаблон для формирования печатной формы. Макет тоже является табличным документом. Итоговая печатная форма строится на основе макета, как из строительных блоков. Для этого в макете создаются области, предназначенные для однократного или многократного вывода.
Например, ниже представлен макет для печати расходной накладной:
|
|
|
2 I 3 I 4 I 5 I 6 |
7 |
»гс<ювок |
1 |
|
|
іта]> |
2
3
4
5
6 |
|
<Расходная накладная N [НомерДокумеі
От <От*
Кому *Кему> |
ШППгЛ |
7 |
|
N ІНоменклат?м |
Цена |
KQJW46CT60 |
Сумма |
|
Стрел* |
в |
|
«Номвя «Номенклатуре» |
<Цвиа> |
«Количество» |
«С?мма> |
|
ПОДВАЛ |
5
10
11 |
Итого «Итогокомчее *ИтогоСум
¦Дяингщі ІДирекщ)]. |
|
|
12 |
|
|
Обратите внимание, что сначала в табличный документ выводятся горизонтальные области Заголовок и Шапка.
Ячейки табличного документа обычно содержат текст или параметры, а также могут содержать одновременно текст и параметры, заключенные в квадратные скобки. В последнем случае у таких ячеек свойство Заполнение должно быть установлено в значение «Шаблон». При формировании печатной формы средствами встроенного языка на место параметров будут подставлены конкретные значения.
Далее несколько раз выводится область Строка для каждого товара, т.е. табличный документ наращивается снизу, хотя в 1С:Предприятии 8 0 можно присоединять области и справа.
Затем один раз выводится область Подвал и формирование печатной формы документа завершено. Теперь ее можно показать на экране, распечатать или сохранить в файл.
Макеты могут быть у многих объектов конфигурации, например, у справочников, документов, отчетов, обработок и т.д. Кроме того, в конфигурации могут быть общие макеты, которые не принадлежат конкретному объекту, а располагаются в ветви «Общие макеты» дерева конфигурации.
Сформированная печатная форма может быть записана в файл интерактивно или с помощью метода Записать. Поддерживаются следующие форматы файлов: MXL, MXL7 (для версии 7.7), HTML, XLS (Microsoft Excel™), TXT. С помощью меню «Файл -* Открыть» или кнопки на панели инструментов можно загрузить табличный документ из файла. Это также можно сделать программно с помощью метода Прочитать.
Области
Областью табличного документа называется группа ячеек, имеющая имя. Обычно области включают в себя одну или несколько строк, колонок или любой прямоугольный диапазон ячеек. К области можно обратиться по координатам или имени.
Именование областей
Редактировать имена областей можно через окно свойств или с помощью панели «Имена», предварительно выделив нужный диапазон ячеек.
Панель «Имена» имеет следующие кнопки:
• Отображение именованных строк / колонок,
• Отображение именованных ячеек,
• Назначить имя,
• Убрать имя.
Любая область уже имеет системное имя, например:
• R5C3 — ячейка в 5-й строке и 3-й колонке;
• R5 — 5-я строка;
• СЗ — 3-я колонка;
• R5C4:R6C5 — диапазон ячеек;
• СЗ:С5 — ячейки, входящие с 3-ю по 5-ю колонку;
• R2:R6 — ячейки, входящие с 2-ю по 6-ю строки;
• Т — табличный документ в целом;
• D5 — 5-й рисунок (графический объект).
Разработчик может задать собственное имя для области, например, «Шапка», и использовать его при формировании табличного документа.
Для вывода пересечения горизонтальной и вертикальной секции можно использовать конструкцию с вертикальной чертой, напри-
Разработка в системе 1 (^Предприятие 8.0
мер, «Обл = Макет.ПолучитьОбласть("Строка | Колонка")». Второй вариант — задать имя для пересечения и работать с этой областью, как с любой другой.
Общая схема работы
Основные методы формирования печатной формы следующие:
Вывести
Выводит в печатную форму очередной фрагмент табличного документа, добавляя его снизу, начиная с первой колонки.
Присоединить
Присоединяет к печатной форме очередной фрагмент табличного документа справа, начиная со строки, с которой выводился предыдущий фрагмент методом Вывести.
Область
Позволяет получить область как объект типа Область-ЯчеекТабличногоДокумента.
ПолучитьОбласть
Позволяет получить область как объект типа Табличный-Документ.
Обратите внимание на различие методов Область и
ПолучитьОбласть:
• Метод Область() предоставляет доступ к части табличного документа. Он возвращает объект ОбластьЯчеекТабличного-Документа, предназначенный для установки форматирования области ячеек, установки текста, значения, примечания и расшифровки. Этот объект можно передать в методы ВставитьОбласть и УдалитьОбласть.
• Метод ПолучитьОбласть() создает отдельный табличный документ из указанной области. Он возвращает объект ТабличныйДокумент, который можно передать в методы Вывести и Присоединить.
Следующая программа формирует простую печатную форму (без данных в ячейках):
ТабДок = Новый ТабличныйДокумент;
//Получение макета
Макет - Документы.РасходнаяНакладная.ПолучитьМакет(”Печать”);
//получим область как новый табличный документ (!)
Область = Макет.ПолучитьОбласть(”Заголовок”);
//выведем область в табличный документ ТабДок.Вывести(Область);
//Шапка
ТабДок.Вывести(Макет.ПолучитьОбласть(’Шапка”));
//Состав
Для Каждого СтрСостава Из Состав Цикл
Область = Макет.ПолучитьОбласть(”Строка”);
ТабДок.Вывести(Область);
КонецЦикла;
//Подвал
Область = Макет.ПолучитьОбласть(”Подвал”);
ТабДок.Вывести(Область);
ТабДок.Показать(); //покажем на экране
А следующий пример формирует более сложный отчет. В нем выводятся горизонтальные и вертикальные области, устанавливаются различные свойства области:
ТабДок = ЭлементыФормы.ПолеТабДок;
ТабДок.Очистить();
Макет = ПолучитьМакет(”Основной”);
//получим область как объект ТабличныйДокумент ОбластьТабДок = Макет.ПолучитьОбласть(”ЛеваяЧастьШапки”);
ТабДок.Вывести(ОбластьТабДок);
Для НомМес = 1 По 12 Цикл
//получим область как объект ОбластьЯчеекТабличногоДокумента //свойства области нужно заполнять до ее вывода в печатную форму ОбластьЯчеек = Макет.Область(”НазваниеМесяца”);
ОбластьЯчеек.Шрифт = Новый Шрифт(,,Истина); //жирный ОбластьЯчеек.Текст = НомМес;
//получим область как объект ТабличныйДокумент ОбластьТабДок = Макет.ПолучитьОбласть(”МесяцШапка”);
ТабДок.Присоединить(ОбластьТабДок);
КонецЦикла;
К области можно обращаться не только через метод Область, но и через свойство-коллекцию Области объекта ТабличныйДоку-мент.
Следующие примеры эквивалентны друг другу:
ОбластьЯчеек = Макет.Область("НазваниеМесяца") ;
ОбластьЯчеек = Макет.Области!"НазваниеМесяца" ];
ОбластьЯчеек = Макет.Области.НазваниеМесяца,
Событие Выбор
При двойном щелчке (или нажатии Enter) на ячейке табличного документа или рисунке возникает событие Выбор. Это же событие возникает при одинарном щелчке на гиперссылке. Программист может перехватить это событие с помощью процедуры-обработчика.
Внимание! Следует различать события Выбор и Обработка-Расшифровки. Событие Выбор возникает при двойном щелчке (или нажатии Enter) на ячейке или рисунке, даже если у них нет расшифровки, тогда как событие ОбработкаРасшифровки возникает у ячеек или рисунков, содержащих расшифровку. Причем сначала возникает событие Выбор, а потом ОбработкаРасши-фровки.
Параметры
Чтобы вывести в ячейку информацию из базы данных, нужно установить свойство Заполнение в значение «Параметр» или «Шаблон», как показано на следующем рисунке:
•
п Макет
Заполнение Параметр W. »
Параметр Номенклатура
Если выбрано значение «Параметр», то затем указывается имя параметра, которое будет доступно в модуле через коллекцию Параметры объекта ТабличныйДокумент.
Если выбрано значение «Шаблон», то имена параметров указываются в самой ячейке в квадратных скобках, как, например, ячейка «Директор» в макете расходной накладной.
Внимание! В квадратных скобках строки-шаблона не может быть выражений на встроенном языке, как это допускалось в версии 7.7. При формировании отчета не учитывается контекст модуля. Текст программы на встроенном языке может быть только в программном модуле.
Рассмотрим, как заполняются параметры у объекта ТабличныйДокумент через его свойство-коллекцию Параметры. Следующий фрагмент демонстрирует задание параметров через это свойство:
//получим область как новый табличный документ (!)
Область = Макет.ПолучитьОбласть("Заголовок");
//укажем параметры области Область.Параметры.НомерДокумента = Номер;
Область.Параметры.От - Дата;
Область.Параметры.Кому = Контрагент;
ТабДок.Вывести(Область) ;
ТабДок.Вывести(Макет.ПолучитьОбласть("Шапка"));
Область = Макет.ПолучитьОбласть("Строка");
Для Каждого СтрСостава Из Состав Цикл
Область.Параметры.Заполнить(СтрСостава);
ТабДок.Вывести(Область);
КонецЦикла;
Разработка в системе 1 (
лПредприятие 8.0
Область = Макет.ПолучитьОбласть{”Подвал”);
Область.Параметры.ИтогоКоличество = Состав.Итог(”Количество”); Область.Параметры.ИтогоСумма = Состав.Итог(”Сумма”);
РегОтв = РегистрыСведений.ОтветственныеСотрудники;
Область.Параметры.Директор = РегОтв.ПолучитьПоследнее(Дата).Директор; ТабДок.Вывести(Область);
Обратите внимание на то, что был применен метод Заполнить, который позволяет в краткой форме присвоить значения всем параметрам. Соответствие устанавливается по именам параметров области и именам свойств переданного объекта.
Форматирование
Система 1 С:Предприятие 8.0 предоставляет удобные средства оформления внешнего вида печатной формы. Панель «Форматирование» позволяет управлять шрифтом, цветом текста и фона, выравниванием текста и рамками:
ЖАВ О - А - А . ./ . f т т т Anal'
А В _%
А
Можно отформатировать одну ячейку или сразу несколько, предварительно выделив их мышью. Если удерживать клавишу Ctrl, то можно выделять несмежные ячейки.
Палитра свойств предоставляет еще более расширенные возможности по форматированию ячеек. Например, можно задавать наклон текста от -360 до 360 градусов (свойство Ориентация), узор, выравнивание по вертикали, форматную строку, которую можно составить вручную или в диалоговом окне.
Средства встроенного языка позволяют при выводе печатной формы задавать форматирование ячеек программным образом. Это дает возможность форматировать ячейки в соответствии с их содержимым.
Например, ниже выводится отчет по остаткам товаров, а товары с остатком меньше критического уровня выделяются красным цветом:
ТабДок = Новый ТабличныйДокумент;
ГекстЗапроса = "ВЫБРАТЬ I СпрНоменклатура.Наименование,
I СпрНоменклатура.ЭтоГруппа,
I СпрНоменклатура.Ссылка КАК Ссылка,
! РегОстатки.КоличествоОстаток КАК Остаток
! ИЗ
I Справочник.Номенклатура КАК СпрНоменклатура
I ЛЕВОЕ СОЕДИНЕНИЕ
I РегистрНакопления.УчетНоменклатуры.Остатки КАК РегОстатки
I ПО СпрНоменклатура.Ссылка = РегОстатки.Номенклатура
I ГДЕ ЭтоГруппа = Ложь
! ИТОГИ СУММА(Остаток) ПО Ссылка ТОЛЬКО ИЕРАРХИЯ";
Запрос = Новый Запрос(ТекстЗапроса);
Макет
ПолучитьМакет("Остатки");
Обл = Макет.ПолучитьОбласть(”Шапка”);
ТабДок.Вывести(Обл);
//зафиксируем шапку для удобного просмотра ТабДок.ФиксацияСверху = ТабДок.ВысотаТаблицы;
Обл = Макет.Область(”Строка”);
ОбычныйШрифт = Обл.Шрифт;
ОбычныйЦветТекста = Обл.ЦветТекста;
ОбычныйЦветФона = Обл ЦветФона;
//один раз получим область Строка Обл = Макет.ПолучитьОбласть(”Строка”);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий{) Цикл
Остаток = ?(Выборка.Остаток = NULL, 0, Выборка.Остаток);
Обл = Макет.Область(”Строка”);
Обл.Шрифт = ОбычныйШрифт;
Обл.ЦветТекста = ОбычныйЦветТекста;
Обл.ЦветФона = ОбычныйЦветФона;
Если Выборка.ТипЗаписи()оТипЗаписиЗапроса.ИтогПоГруппировке Тогда Если Остаток <= 2 Тогда
Обл.Шрифт = Новый Шрифт(ОбычныйШрифт,,,Истина); //жирный Обл.ЦветТекста = Новый Цвет(255,0,0); //красный КонецЕсли;
Иначе
Обл.Шрифт = Новый Шрифт(ОбычныйШрифт,,,Истина); //жирный Обл.ЦветФона = Новый Цвет(240,240,255); //сиреневый КонецЕсли;
//установим параметры полученной ранее области Строка Обл.Параметры.Номенклатура = Выборка.Ссылка;
Обл.Параметры.Остаток = Остаток;
ТабДок.Вывести(Обл);
КонецЦикла;
Обл = Макет.ПолучитьОбласть(”Подвал”) ;
ТабДок.Вывести(Обл);
ТабДок.ОтображатьСетку = Ложь;
ТабДок.ТолькоПросмотр = Истина;
ТабДок.ОтображатьЗаголовки = Истина;
ТабДок.Показать();
Результат работы этой программы представлен ниже:
Расшифровки
Система 1 С:Предприятие 8.0 поддерживает механизм расшифровок (drill-down, drill-through), когда пользователь щелкает на строке или ячейке отчета и получает более детальный отчет, если, конечно, это предусмотрено разработчиком.
Расшифровки делятся на стандартные и нестандартные.
Стандартные расшифровки обрабатываются системой автоматически и не требуют дополнительных усилий от программиста, например:
• значения типа «число», «строка», «дата», «перечисление» будут выданы для просмотра;
• для документов будет открыта форма документа;
• для элементов справочника будет открыта форма элемента, а если справочник редактируется в списке, то курсор будет установлен на текущем элементе в форме списка.
Для выполнения нестандартной расшифровки предназначено событие ОбработкаРасшифровки.
Внимание! Событие ОбработкаРасшифровки можно обработать только, если табличный документ отображается в форме в элементе управления ПолеТабличногоДокумента, а не открывается в отдельном окне. В модуле приложения (аналог глобального модуля в версии 7.7) больше нет события ОбработкаЯчейки-Та блицы
Ниже показан отчет, в форме которого располагается элемент управления ПолеТабличногоДокумента на закладке «Таблица»:
ф Отчет по
Настройка Пери ей
С 01 П 200 Q к По ? *
^ Вьіпопміть ^ ^ "1*1
Тип отчета Контрагент • HoMetiKiuTjpa
Кснграгент и Иог^еиспатура Нсне**,летура и Кснтр<иенг
Лсп^пмигеяь№і'э jcwt«H
__Имя Т«і^р знаіегвне
П Нсменмату Р«6Н
Контраген Рэенг |
Наименование |
Количество |
Сумма |
/Глгагелдог |
ш |
|
Клавиатура А cote Pro Keyboards |
79 |
6 990 00 |
Клавиатура Keyboard PS/2 |
79 |
363.50 |
Клавиатура Lnkwofld LK 601 PS/2 |
|
Клавиатура LK 601 KB 2000 PS/2 |
7Ь |
377 00 |
Мониторы |
«1 |
3» 756,10 |
Монитор 15 LG ЭиЛо??ог?е S75M |
3 29 |
5 424 00 |
Монитор 17 Prtlips 107S2Q |
10 |
2 040 00 |
Монитор 1В HiacfiiCM715ET |
44 |
15 300 00 |
Монитор LCD 22 MSS37ZM/A |
6 |
15 992 00 |
Мыши |
зчп |
4171§ |
|
Рассмотрим на примере, как организовать расшифровку строки. Допустим, необходимо при щелчке на строке выдавать список расходных накладных по данному товару. Это реализуется следующим образом. В форме располагается элемент управления ПолеТабличногоДокумента с именем «ТаблицаРезультат», в свойствах которого указывается процедура-обработчик события ОбработкаРасшифровки
Замечание. В некоторых случаях бывает затруднительно выделить поле табличного документа, чтобы обратиться к его свойствам Обычно это делается щелчком мыши на границе элемента управления, но это невозможно, когда граница не видна, например, сливается с границей панели. В этом случае необходимо выделить любую ячейку и нажать клавишу ESC, после чего табличный документ будет выделен Затем нажмите Alt-Enter для редактирования его свойств
Следующая процедура-обработчик события анализирует расшифровку, и, если это элемент справочника Номенклатура, то вызывается процедура РасшифроватьСтроку, а стандартная обработка расшифровки отключается:
Процедура тпРезультатОбработкаРасшифровки(Элемент, Расшифровка,
СтандартнаяОбработка)
Если ТипЗнч(Расшифровка)=Тип("СправочникСсылка.Номенклатура") Тогда СтандартнаяОбработка = Ложь; //отключим стандартную обработку НовыйТабДок = формаРасшифровки.ЭлементыФормы.ТабДок; РасшифроватьСтроку(НовыйТабДок, Расшифровка);
ФормаРасшифровки. Открыть () /'
КонецЕсли;
КонецПроцедуры
Обработку расшифровок у ячейки можно отключить, если задать свойство ИспользованиеРасшифровки в значение «Без обработки». Это же свойство позволяет распространить расшифровку ячейки на всю строку, если установить его в значение «Строка».
Группировки
В 1 С:Предприятии 8.0 появилась возможность группировать данные в отчете. Группировки могут быть горизонтальные и вертикальные, тогда слева и сверху появляются специальные маркеры, позволяющие пользователю разворачивать и сворачивать группы.
Нажатием цифр иааи можно развернуть сразу все группировки
данного уровня и свернуть более детальные группировки:
|
II 2 1 3 1 4 1 5 1 6 1 7 |
|
|
г |
ШШ Отчет по продажам |
3 |
Эа период е; *1 .91.2009 пш 31.12.2803 |
А |
S |
|
|
|
6 |
|
Н&ивеиоеаміе |
Количество |
С?ана |
|
? |
Пдкутгеям |
1№ |
219 4-ОД* |
В |
Алтокеылистін) Иг34 |
24 |
1* 890,40 |
22 |
Ала кг 2002 |
438 |
79 429,20 |
52 |
Зевсд 1>ТИ |
29 |
14 087,90 |
SB |
Mate ши на уя. Алексеевы |
220 |
03 525,81 |
93 |
Русская одежда |
22 |
4283,08 |
94 |
1C Бухгалтерия ПРОФ версия 7 7 |
1 |
120 00 |
95 |
ІС'ТсргоаляиСілад 7 7 Проф |
1 |
140,00 |
S6 |
YiAndowa ХР Professional Russian CD |
3 |
eoo,oo |
9Г |
доставка |
5 |
5,00 |
S3 |
кочс?^твцрц по наетроі«е ic |
10 |
300,00 |
99 |
Ноутбук Rover COfflpiiers ExpAxer |
1 |
1 59000 |
100 |
Ноутбук Rover Compilers Nevioator KT7 |
1 |
1 499 00 |
101 |
Центр доимого твоочвеіва |
9 |
8 085,4* |
111 |
Частью лица |
30 |
19134,50 |
112 |
Бопміаиои Андрей |
21 |
2088,70 |
113 |
Windows ХР Ноте ?diben Russian CD |
1 |
170,00 |
114 |
Доставка |
13 |
1300 |
Механизм группировок отличается от механизма расшифровок следующими аспектами:
• Расшифровка обычно вызывает формирование нового отчета, открываемого в новом окне, а с помощью группировок можно раскрыть или свернуть текущую строку (колонку) в этом же окне.
• Нестандартная расшифровка должна быть обработана программистом в процедуре-обработчике события ОбработкаРас-шифровки для элемента управления ПолеТабличногоДоку-мента, а раскрытие и сворачивание группировок обрабатывается системой автоматически.
• Расшифровки работают в режиме «только просмотр», а группировки в любом режиме.
Самый простой способ добавить группировки в отчет — доверить эту задачу системе, тогда от разработчика требуются минимальные усилия: необходимо всего лишь применить методы НачатьАвтоГруппировкуСтрок и ЗакончитьАвтоГруппировку-Строк, которые включают режим автоматической группировки строк. В этом режиме при вызове методов Вывести и Присоединить указываются дополнительные параметры для группировки:
ВНШести(<Таблица>, <Уровень>, <Имя группы>, <0ткрыта>)
Назначение параметров метода Вывести описано ниже:
Таблица
Выводимый фрагмент табличного документа.
Уровень
Этот параметр используется для автоматической группировки строк табличного документа с помощью методов Начать/ЗакончитьАвтоГруппировкуСтрок и Начать/За-кончитьАвтоГруппировкуКолонок. Соседние строки с одинаковым уровнем будут отнесены к одной группе.
Имя группы
Имя группы, к которой относятся выводимые строки. Открыта
Признак того, что выводимая группа будет открыта (развернута).
Следующий пример выводит список товаров с группировками в отчете:
ТабДок.НачатьАвтоГруппировкуСтрок();
Пока Выборка.Следующий();
ТабДок.Вывести(ОбластьТабДок, Выборка.Уровень (}, Выборка.Наименование, Ложь);
КонецЦикла;
ТабДок.ЗакончитьАвтоГруппировкуСтрок();
В качестве имени группировки назначается наименование товара. Все группы выводятся сначала свернутыми, но пользователь может развернуть любую группу с помощью маркера.
При использовании группировок будет очень удобно, если установить у ячейки свойство АвтоОтступ в какое-нибудь ненулевое значение, например, 5. Тогда система будет автоматически добавлять заданное количество пробелов слева текста ячейки, основываясь на текущем уровне группировки. В результате отчет будет иметь пригодный внешний вид для отображения иерархии данных.
Для ручного управления группами применяются следующие методы объекта ТабличныйДокумент:
НачатьГруппуСтрок
Начинает новую группу строк. Можно создавать вложенные группы строк.
ЗакончитьГруппуСтрок
Заканчивает последнюю из начатых ранее групп строк. НачатьГруппуКолонок
Начинает новую группу колонок. Можно создавать вложенные группы колонок.
ЗакончитьГруппуКолонок
Заканчивает последнюю из начатых ранее групп колонок.
С помощью свойств ИтогиСнизу и ИтогиСправа разработчик может изменять положение маркера группы (сверху или снизу для строк, слева или справа для колонок). Свойства ЦветТекстаГруппировки и ЦветФонаГруппировки позволяют легко управлять форматированием группировок.
Разработка в системе 1 ^Предприятие 8.0
Примечания
Ячейки табличного документа могут иметь примечания, тогда в правом верхнем углу ячейки выводится маленький красный треугольник. При наведении мышки на ячейку примечание показывается во всплывающем окне:
Остатки номенклатуры
Нмеикміто* |
BniptWta в офи |
Основной скт, |
Сияла |
клавиатуры |
з.ой |
111 № |
|
Клав натура Аиріе F'rO Keyboards |
|
7|М |
|
Клавиатура Keyboard р5*2 |
J—-- чааі |
|
|
Клав натура Linftworld LK-601 PS/2 Л ^ |
|
|
| |
Клавиатура LK-601 Ke-2000PS/2 |
1700 |
Программная установка примечаний реализуется следующим образом:
Выборка = Справочники.Номенклатура.Выбрать();
Пока Выборка.Следующий();
ОбластьЯчеек = Макет.Область("Номенклатура"); ОбластьЯчеек.Примечание.Текст = Номенклатура. Комментарий;
ОбластьТабДок = Макет.ПолучитьОбласть("Номенклатура "); ОбластьТабДок.Параметры.Номенклатура = Номенклатура;
ТабДок.Вывести(ОбластьТабДок);
КонецЦикла;
Обратите внимание, что свойство Примечание у объекта ОбластьЯчеек является объектом типа Рисунок, а не простой строкой. Через этот объект можно редактировать внешний вид примечания, шрифт и цвет текста, фон, линии и т.д.
Значения ячеек
У областей табличного документа помимо самого текста, видимого на экране, может быть значение, что управляется следующими свойствами:
СодержитЗначение „
Признак того, что ячейка содержит значение.
ТипЗначения
Объект ОписаниеТипов, определяющий допустимые типы значений, например, типы «булево» и «число».
Значение
Собственно значение ячейки (области), например, число 120 или значение Истина.
ЭлементУ правления
Содержит элемент управления для редактирования значения, например, флажок.
Формат
Можно задать формат представления значения, например, «БЛ=Нет; БИ=Да».
Обычно значения ячеек допускается редактировать с помощью элементов управления, например, с помощью поля ввода, поля выбора, флажка и др. Подробнее про элементы управления в табличном документе рассказывается в документации.
Разработка в системе 1 С:Предприятие 8.0
Рисунки
В табличном документе могут располагаться рисунки, к которым относятся следующие объекты:
• прямая,
• прямоугольник,
• эллипс,
• диаграмма,
• картинка,
• текст,
• примечание,
• OLE-объект,
• группа графических объектов.
У объекта ТабличныйДокумент есть свойство-коллекция Рисунки, которое позволяет обращаться к рисункам по имени или индексу, а также добавлять или удалять рисунки «на лету», во время выполнения программы. Элементами коллекции являются объекты типа РисунокТабличногоДокумента. Поле ТипРисунка содержит одно из приведенных выше значений, например, прямоугольник.
Свойства объекта РисунокТабличногоДокумента позволяют изменять внешний вид и поведение рисунка. Например, можно изменять его положение и размеры, тип рамки, цвет фона. Для рисунков, содержащих текст, можно указывать выравнивание и наклон текста, шрифт, формат и цвет текста. Рисунки могут иметь расшифровку. Они также могут служить гиперссылками, т.е. реагировать на одинарный щелчок мыши.
В следующем примере в табличный документ добавляется рисунок и ему устанавливаются некоторые свойства:
Рис = ТабДок.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Текст); Рис.Верх = 10;
Рис.Лево = 10;
Рис.Ширина = 30;
Рис.Высота = 10;
Рис.ОриентацияТекста = -15; //наклон 15 градусов по часовой стрелке Рис.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Центр;
рис.ВертикальноеПоложение = ВертикальноеПоложение.Центр; рис.Шрифт = Новый Шрифт (,,Истина); //жирный рис.ЦветТекста = Новый Цвет(0,0,255); //синий Рис.Текст = "Курс"; рис.Расшифровка = "ИсторияКурса"; рис.ГиперСсылка = Истина;
Результат работы программы представлен ниже:
У рисунков типа Текст помимо самого текста, видимого на экране, может быть значение, что регулируется свойствами Содер-житЗначение, Значение и ТипЗначения. Работают эти свойства аналогично подобным свойствам объекта ОбластьЯчеекТаблич-ногоДокумента (см. выше).
Сводные таблицы
Система 1С:Предприятие 8.0 содержит новый механизм для анализа данных — сводные таблицы. С их помощью можно легко выводить многомерные данные, например, объем продаж в разрезе контрагентов и наименований номенклатуры.
Значения измерений отображаются в верхней или боковой шапке сводной таблицы, а ячейки области данных содержат сводную информацию на пересечении измерений. Пользователь имеет возможность добавить или удалить измерения и ресурсы, поменять их расположение.
Для создания сводной таблицы нужны минимальные усилия от программиста, поэтому это самый простой путь для анализа данных.
Ниже показана сводная таблица из отчета АнализПродаж, извлекающего данные из регистра Продажи:
СумыеОборот |
контрагент |
|
номенклатура |
Покупатели |
Поста» щми |
Итог |
Клавиатуры |
|
6 802.$ |
19 |
&Э&1 9 |
MgnrtTOpM |
|
39527 |
i m |
37 756 |
МЫци |
|
|
|
5051 7 1 |
512.1 |
Ноутбук |
|
|
2i е?е |
|
21 9?$ |
rfcaairep |
Контрагент
Номе нк ляг ура
Период
Страна |
|
4$ 919 |
|
45 919 |
Просрем |
|
|
soes |
|
9065 |
Систем |
|
|
99195 |
9Q&4 |
100 249 |
Услуіи |
|
1 |
400 |
|
400 |
Итог |
|
|
219145.5 |
9 319.1 |
229 467.6 |
|
Ко^чегтеоОборог |
|
|
|
|
СуимаОборот Пометит* t (Lflmwe |
В специальном окне «Поля сводной таблицы», которое отображается при активизации сводной таблицы, можно включать и выключать измерения и ресурсы. Если оно не отображается, то щелкните правой кнопкой на ячейке сводной таблицы и в контекстном меню выберите пункт «Отображать поля».
У табличного документа есть свойство-коллекция Встроенные-Таблицы, которое позволяет обращаться к сводным таблицам, расположенным на нем. Через эту коллекцию можно добавлять и удалять сводные таблицы при выполнении программы.
Самое главное свойство сводной таблицы — это ИсточникДан-ных, которое имеет тип РезультатЗапроса или ПостроительОтче-та (см. ниже). Это свойство определяет, откуда сводная таблица будет черпать данные для отображения. При использовании результата запроса его итоги становятся ресурсами (отображаются в области данных), а группировочные поля, по которым они подсчитываются, становятся измерениями.
Следующий пример выбирает данные из регистра накопления Продажи, подсчитывает общее количество и сумму по каждому контрагенту (с учетом иерархии), номенклатуре (с учетом иерархии), периодам и странам. Результат запроса помещается в сводную таблицу для анализа:
Запрос = Новый Запрос("
1 ВЫБРАТЬ
! ПродажиОбороты.Контрагент КАК Контрагент,
I ПродажиОбороты.Номенклатура КАК Номенклатура,
I ПродажиОбороты.КоличествоОборот КАК КоличествоОборот,
I ПродажиОбороты.СуммаОборот КАК СуммаОборот
1ИЗ
| РегистрНакопления.Продажи.Обороты(ЬПериодС, ЬПериодПо,
I Месяц,,(Контрагент, Номенклатура)) КАК ПродажиОбороты
I
!ИТОГИ СУММА(КоличествоОборот) , СУММА(СуммаОборот) ПО I Контрагент ИЕРАРХИЯ,
I Номенклатура ИЕРАРХИЯ,
! ПродажиОбороты.Период,
I ПродажиОбороты.Номенклатура.СтранаПроисхождения КАК Страна
I АВТОУПОРЯДОЧИВАНИЕ
11) ;
Запрос.УстановитьПараметр("ПериодС", Периоде);
Запрос.УстановитьПараметр("ПериодПо", КонецДня(ПериодПо));
Результат = Запрос.Выполнить ();
ПолеТабДок = ЭлементыФормы.ПолеТабличногоДокумента;
СводнаяТаблица = ПолеТабДок.ВстроенныеТаблицы.СводнаяТаблица!; СводнаяТаблица.ИсточникДанных = Результат; СводнаяТаблица.ОтображатьПоля = Истина;
Если СводнаяТаблица.Колонки.Количество() = О И СводнаяТаблица.Строки.Количество() = О И СводнаяТаблица.Данные.Количество() = 0 Тогда
СводнаяТаблица.Обновление = Ложь;
// Зададим начальное расположение измерений на осях
СводнаяТаблица.Колонки.Добавить("Контрагент");
СводнаяТаблица.Строки.Добавить("Номенклатура");
СводнаяТаблица.Данные.Добавить("КоличествоОборот");
СводнаяТаблица.Данные.Добавить ("СуммаОборот" ) ;
СводнаяТаблица.Обновление = Истина;
КонецЕсли;
Разработка в системе 1С:Предприятие 8 О
Сформированная сводная таблица выглядит следующим образом:
ГЗГСІІК |
П: atww |
» Г s |
niruiC^w-tii к тог |
Г4СТІ{(! |
оымзОФот |
К^ПИЧІСТЛОС |
CwwGCi'ftO |
|
ДО |
5 0*2.5 |
6 |
I > |
ДО |
6381.S |
9$ |
36 527 |
В |
„„•j |
51 |
ЗТ J$6 |
384 |
¦505 |
5 |
|
390 |
S1J.1 |
*4 |
316» |
|
|
и |
31888 |
гэ |
15015 |
|
|
?$ |
ІІШ |
Ж |
8005 |
|
|
50 |
9086 |
59 |
90186 |
С |
SOM |
05 |
1083*9 |
52 |
«00 |
|
|
$2 |
400 |
1 00$ |
*614« |
24 |
ЭЯ0.1 |
1С0Э |
226*676 |
Диаграммы
Диаграмма - это элемент управления для графического представления табличных данных, например, результатов отчетов. Диаграммы очень удобны для анализа, так как обеспечивают быстрое и целостное восприятие информации, наглядное представление и сравнение
В 1 С.Предприятии 8.0 возможности диаграмм были значительно расширены по сравнению с версией 7 7. Диаграммы могут размещаться в форме или табличном документе. При размещении диаграммы в форме она может реагировать на двойные щелчки мыши (события Выбор и ОбработкаРасшифровки).
При работе с диаграммами необходимо понимать следующие термины:
• Точка — отметка на оси абсцисс, по которой будут установлены значения для каждой серии. Например, конкретная дата, на которую будут отображены курсы всех валют.
• Серия — последовательность значений по одному измерению, например, курс заданной валюты за несколько дней.
Ниже на рисунке показаны основные составные части диаграммы:
Диаграмма может быть сформирована следующими способами:
1. «Вручную» — разработчик средствами встроенного языка создает новые серии, добавляет точки, устанавливает их значения.
2. На основе таблицы значений или табличного документа (свойство ИсточникДанных).
3 С помощью построителя отчета (см ниже).
1-й способ формирования диаграммы — «ручной»
Ниже показан пример создания диаграммы с двумя сериями и тремя точками. С помощью метода УстановитьЗначение задаются значения точек для каждой серии:
Диаграмма = ЭлементыФормы.Диаграмма;
Диаграмма.Очистить ();
Диаграмма.Обновление = Ложь:
Диаграмма.Серии.Добавить("Серия 1 ")
Диаграмма.Серии.Добавить{"Серия 2")
Диаграмма.Точки.Добавить("Точка 1”)
Диаграмма.Точки.Добавить("Точка 2 ")
Диаграмма.Точки.Добавить("Точка 3 ”)
Диаграмма.УстановитьЗначение(0,0,5)
Диаграмма.УстановитьЗначение(1,0,2)
Диаграмма.УстановитьЗначение(2,0,8)
Диаграмма.УстановитьЗначение(0,1,10); Диаграмма.УстановитьЗначение(1,1,15);
Диаграмма.УстановитьЗначение(2,1,14);
Диаграмма.Обновление = Истина;
Результат работы программы приведен ниже:
2-й способ формирования диаграммы — на основе источника данных
При помощи свойства ИсточникДанных можно наполнять диаграмму данными, содержащимися в области табличного документа или в таблице значений.
Если источником является таблица значений, ее первая колонка должна содержать имена точек диаграммы. Имена серий диаграммы берутся из заголовков колонок (заголовок первой колонки игнорируется).
Следующая таблица значений может быть использована для формирования диаграммы:
Имя точки |
Серияі |
Серия2 |
Точка1 |
5 |
10 |
Точка2 |
2 |
15 |
ТочкаЗ |
8 |
14 |
Приведенный ниже фрагмент устанавливает свойство Источник-Данных для диаграммы:
Диаграмма = ЭлементыФормы.Диаграмма;
Диаграмма.Очистить();
Диаграмма.Обновление = Ложь;
Диаграмма.СерииВСтроках = Ложь;
Диаграмма.ИсточникДанных = ТаблицаДанных;
Диаграмма.Обновление = Истина;
3-й способ формирования диаграммы — с помощью построителя отчета
Последний способ, которым может быть сформирована диаграмма, — это использование объекта ПостроительОтчета, если вызвать его метод Вывести и передать ему диаграмму в качестве первого параметра. Построитель отчета описан ниже.
Построитель отчета
В 1С:Предпритии 8.0 появился новый объект ПостроительОтче-та, предназначенный для быстрой разработки сложных, настраиваемых пользователем отчетов.
Построитель отчета использует запрос как основу для формирования отчета. Фактически, запрос — это единственное, что требуется запрограммировать, остальное сделает построитель отчета. Конечно, разработчик имеет средства влиять на этот процесс, например, задать макет для формирования отчета.
Общая схема
Следующая схема показывает входные и выходные данные для построителя отчета:
|
Цифрами на схеме обозначены следующие действия: |
1. На вход построителя отчета подается исходный текст запроса на расширенном языке запросов. Из этого текста могут быть
автоматически сформированы доступные отборы, измерения, условия упорядочивания и доступные поля.
2. Пользователь с помощью табличных полей, расположенных в форме, может настроить текущие условия отбора и сортировки, измерения отчета и выводимые поля.
3. Для хорошего визуального представления отчета на вход подается макет или несколько макетов для каждой области отчета.
4. Используя исходный текст запроса, настройки пользователя и макеты, построитель отчета формирует табличный документ, диаграмму или сводную таблицу.
5. Расшифровки отчета передаются в построитель отчета, он корректирует свой запрос и формирует новый отчет.
6. Результат запроса может быть получен в отдельную переменную.
7. Запрос также может быть получен в переменную.
8. Настройки построителя могут быть сохранены в специальном объекте и затем восстановлены. У объекта НастройкиПостро-ителяОтчета нет свойств и методов, он нужен только для хранения настроек построителя.
Простой пример
Приведем пример использования построителя отчета для конструирования отчета по регистру оборотов Продажи, имеющего два
измерения (Контрагент и Номенклатура) и один ресурс (Сумма).
1. Создайте новый отчет (или внешнюю обработку).
2. Создайте у него реквизит Построитель и укажите тип ПостроительОтчета.
3. В модуле объекта (не в модуле формы) напишите следующий текст запроса:
Построитель.Текст = ”
I ВЫБРАТЬ
I ПродажиОбороты.Контрагент КАК Контрагент,
1 ПродажиОбороты.СуммаОборот КАК СуммаОборот,
I ПродажиОбороты.Товар КАК Товар !ИЗ
I РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты
I
(ИТОГИ СУММА(СуммаОборот) ПО
1 Контрагент,
1 Товар
Разработка в системе 1C Предприятие 8.0 (АВТОУПОРЯДОЧИВАНИЕ";
//сформировать автоматически настройки построителя,
//исходя из текста запроса Построитель.ЗаполнитьНастройки();
4. Создайте форму отчета (обработки).
5. Для кнопки Выполнить создайте процедуру-обработчик события Нажатие. В этой процедуре напишите следующий текст'
Построитель.Выполнить(); Нодароитель Вывести () ;
В результате будет сформирован следующий отчет с группировками.
ял |
|
|
|
|
|
|
|
|
Повар |
ІКоМтоагеш |
|
- |
Компыаіер |
|
«$•0 |
ІТ |
Компьютер |
Иванов |
« 5 0 |
Компьютер |
Иванов |
6500 |
|
Куконный лоыбайн |
|
non |
0—1 |
Кухдаыьй комбат |
Иванов |
13 no |
КухотьЛ комбайн |
Ивіыов |
13 00C |
:і |
Пмта |
|
300 |
|
Плита |
Иванов |
soo« |
Плита |
Пеонов |
30 000 |
3 |
Пылесос |
|
C 50 |
If |
Пылесос. |
Петров |
cno |
ГЪілесое |
Петров |
6 500 |
л |
Телевизор |
|
1400 |
|
Телевизор |
Иванов |
7 П0 |
I |
Телевизор |
Иванов |
1 occ |
a |
Телевизор |
П?іров |
710 |
.1 |
Телевизор |
П?тоов |
7 000 |
• Построитель ИзмеренияКолонки — измерения отчета по колонкам, например, Контрагент.Вид;
• Построитель.ДоступныеПоля — все поля, доступные для выбора;
• Построитель.ВыбранныеПоля — выбранные поля для вывода в отчет.
Ниже приведена простая форма, позволяющая управлять настройками построителя отчета:
Л
1*
JCTE ІЯ'
Пдта Отвори '¦ортировка Піггя
Пол? |
|
? f-?нтрагент
НачалоПерыеда
Периодичность
Суг™аОборот |
Выбра инь в пслд Поле
S.OKfpjrr.n'
Пользователь может сконструировать требуемый ему отчет, указав все необходимые настройки построителя отчета. Остальное сделает система, от разработчика фактически больше ничего не требуется.
Например, сделаем поле Контрагент измерением колонки, а не строки, тогда будет сформирован следующий кросс-отчет:
|
Сумма Оборот |
Контрагент |
|
|
Товар |
Иване» |
Петро» |
Итог |
|
Ксдаіыотес |
6 500 |
|
$500 |
|
К?гоншй комбайн |
13 000 |
|
13000 |
|
Пчмта |
30 000 |
|
30 000 |
|
Г?ілесос |
|
$500 |
$500 |
|
Телевнэср |
7000 |
7000 |
14 000 |
|
Итог |
$0 500 |
13 500 |
70 000 |
Настройки построителя
Разработчик может управлять построителем отчетов средствами встроенного языка. Например, он может установить отбор или сортировку, задать параметры формирования запроса, отключить вывод шапки, подвала, детальных записей, задать общий макет для построителя отчета, а также макет для каждой области.
В самом тексте запроса можно явно указать настройки построителя (см. ниже «расширение языка запросов»), но обычно они формируются автоматически после указания текста запроса (свойство Текст), для чего необходимо вызвать метод ЗаполнитьНастройки.
Из доступных настроек построителя пользователь интерактивно указывает только те, которые ему нужны. Но настройки построителя также поддаются изменению средствами встроенного языка через соответствующие свойства:
• Текст — исходный текст запроса,
• Параметры — коллекция параметров для запроса,
• Порядок — объект, содержащий условия сортировки,
• Отбор — объект, содержащий условия отбора,
• ИзмеренияСтроки — коллекция измерений по строкам,
• ИзмеренияКолонки — коллекция измерений по колонкам,
• ДоступныеПоля — коллекция всех доступных для выбора полей,
• ВыбранныеПоля — коллекция всех выбранных полей для вывода в отчет.
Два метода ПолучитьНастройки и УстановитьНастройки позволяют запомнить или восстановить настройки построителя, используя специальный объект НастройкиПостроителяОтчетов. Этот объект не имеет ни свойств, ни методов, он предназначен только для хранения настроек построителя.
Форматирование отчета
Построитель отчета умеет формировать табличный документ автоматически, без использования макета. Но если требуется задать собственное форматирование, то для этого применяется свойство Макет.
Макет для построителя отчета может содержать следующие области-строки:
• ШапкаТаблицы,
• Заголовок,
• <имя измерения>,
• <имя измерения>Иерархия,
• Детали<имя измерения>,
• ОбщиеИтоги.
Ниже показан пример макета с такими областями:
|
|
|
|
|
|
1 1 2 1 3 141 |
Заголовок |
1 |
|
|
ШагкаТабл |
2 |
|
Наименование |
|
|
|
Howctmiar |
3 |
|
<Наше кіеэниеНо4івнкл«ім>ы> |
<Коямм по |
<Сйі№ |
Номежлэт' |
4 |
|
«НаллеиоаатмеНоменктатурм |
«Коімчестао» |
«сумма |
|
Контрагент |
5 |
|
іі wutti іРРиисіГИнішагоіітг |
«Конмчест» |
<CVW»' |
|
Контрагент |
6 |
|
*\ іппммю ванне Контрагента» |
<Кеге«еотее> |
«Сумма |
|
ДеталШо |
7 |
|
«На им аноеате Номенклатуры» |
«Котчестео» |
«Сумма» |
|
Дега лиКом |
3 |
|
<НамнепоеажеКонтрагентв> |
«Коімнестео |
«Сумма |
|
КбиявИтоі |
9 |
|
Итогъ |
<Коімест»о> |
«Сумма |
|
|
10 |
... —• ---Г '
1
1 |
11 |
Л’) |
Разработка в системе 1 С/Предприятие 8.0
Обработка результата
Настроив построитель отчета, можно вызвать его метод Выполнить, который выполняет запрос к базе данных. После этого результат можно вывести в табличный документ, диаграмму или сводную таблицу.
Для вывода отчета в табличный документ или диаграмму применяется метод Вывести с тремя вариантами синтаксиса:
Вывести()
Создает и показывает на экране новый табличный документ.
Вывести(ТабДок)
Выводит отчет в переданный табличный документ.
Вывести(Диаграмма, ИмяРесурса)
Выводит результат в переданную диаграмму. Можно указать ресурс для отображения на диаграмме. Если имя ресурса не указано, то выводится первый ресурс.
На основе результата, полученного построителем, можно сформировать сводную таблицу, для чего необходимо установить у нее свойство ИсточникДанных:
СводТаб = ЭлементыФормы.ПолеТабДок.ВстроенныеТаблицы.СводнаяТаблица; СводТаб.ИсточникДанных = Построитель;
СводТаб.ОтображатьПоля = Истина;
Из построителя можно извлечь результат запроса и сам запрос, с помощью свойства Результат и метода ПолучитьЗапрос:
• Свойство Результат содержит объект типа РезультатЗапроса. Используя этот объект, можно открыть выборку из результата запроса и перебрать ее для своих целей, например, вывести новый отчет.
• Метод ПолучитьЗапрос возвращает объект типа Запрос. В его свойстве Текст содержится текст итогового выполненного запроса, который в общем случае может не совпадать с исходным текстом запроса.
Построитель отчета поддерживает расшифровку, когда пользователь дважды щелкает на ячейке табличного документа, сводной таблицы или на диаграмме и получает более детальный отчет.
Есть возможность сделать так, чтобы построитель отчета в этом случае автоматически корректировал свои настройки, например, добавлял дополнительное условие отбора.
Расширение языка запросов
Обычно настройки построителя формируются автоматически исходя из текста запроса с помощью метода ЗаполнитьНастройки, но их можно указать явно прямо в тексте запроса. Язык запросов системы 1 ^Предприятие 8.0 имеет особые расширения синтаксиса, предназначенные специально для построителя отчетов. Такие инструкции оформляются в фигурные скобки {...} и игнорируются при обычном выполнении запроса.
В следующем примере инструкции для построителя отчетов выделены жирным шрифтом:
ВЫБРАТЬ
Номенклатура, Номенклатура.Представление,
Контрагент, Контрагент.Представление,
КоличествоОборот КАК Количество,
СуммаОборот КАК Сумма
{ВЫБРАТЬ Номенклатура.*, Контрагент.*,
КоличествоОборот КАК Количество,
СуммаОборот КАК Сумма}
ИЗ
РегистрНакопления.Продажи.Обороты(
{&ПериодС},
{ЬПериодПо},,
{Номенклатура.*, Контрагент.*})
{ИТОГИ ПО
Номенклатура.*, Контрагент.*}
ИТОГИ Сумма(Количество) , Сумма(Сумма) ПО ОБЩИЕ
Обратите внимание на параметры «{&ПериодС}» и «{Период-По}». Эти конструкции при обычном выполнении запроса игнорируются, а при установке свойства Текст построителя они распознаются как поля для отбора, т.е. пользователь сможет указать для них условия отбора.
Конструкция «{ИТОГИ ПО ...}» распознается как ресурсы для построителя отчета. Указание точки со звездочкой («.*») говорит о том, что в построителе будет доступно не только само поле, но и все его вложенные поля, например, реквизиты справочника.
Важные отличия от версии 7.7
• Добавлены новые свойства и методы у объектов для работы с печатными формами. Шаблоны печатных форм теперь называются макетами, а секции — областями.
• В ячейке отчета нельзя написать выражения, даже если у нее в свойствах установлен тип «Шаблон». При заполнении ячеек типа «Параметр» и «Шаблон» не используется контекст модуля, как это было в версии 7.7. Значения параметров нужно указывать явно через свойство-коллекцию Параметры у объекта ТабличныйДокумент.
• Основные методы для формирования печатной формы следующие: ПолучитьМакет, Вывести, Присоединить, Попу-читьОбласть, Область.
• Присваивать имена можно не только областям, состоящим из строк и столбцов, но и любой прямоугольной области.
• В табличном документе могут быть горизонтальные или вертикальные группировки, которые обычно применяются для показа промежуточных итогов, например, по группам справочника. Группировки могут быть вложенными. Есть возможность автоматически добавлять отступ к тексту ячейки в соответствии с ее уровнем группировки.
• Обработка нестандартной расшифровки может быть произведена только в форме, на которой расположен элемент управления ПолеТабличногоДокумента. Для печатных форм, открываемых в отдельном окне, невозможно обработать нестандартную расшифровку.
• У ячеек могут быть строковые примечания, всплывающие при наведении курсора мыши на ячейку.
• Кроме текста, видимого на экране, у ячеек и рисунков могут быть значения, что управляется свойствами СодержитЗначе-ние, Значение и ТипЗначения. Для изменения значений ячеек обычно применяются элементы управления.
• Строки макета могут иметь разную ширину ячеек.
В табличном документе могут быть сводные таблицы и диаграммы.
В качестве рисунка могут выступать прямые линии, прямоугольники, эллипсы, примечания, текст, картинка, OLE-объект и др. У рисунков и диаграмм, как и у обычных ячеек, могут быть расшифровки.
При двойном щелчке на любой ячейке или рисунке возникает событие Выбор. Если у ячейки или рисунка есть расшифровка, то затем возникает событие ОбработкаРасшифровки. Для гиперссылок используется одинарный щелчок мыши.
Введен новый объект ПостроительОтчета, предназначенный для формирования сложных многомерных отчетов и позволяющий организовать визуальную настройку отчета пользователем, включая отбор и сортировку, выводимые измерения строк и столбцов. Отчет может быть выдан в табличный документ, диаграмму или сводную таблицу.
Разработка в системе ІС'Предприятие 8.0
Содержание раздела