РАБОТА С ТАБЛИЧНЫМИ ДОКУМЕНТАМИ

 

Общие методы.

Для формирования печатных форм в 1С:Предприятии 8.0 предназначен табличный документ. С помощью элемента управления "ПолеТабличногоДокумента" он может быть отображен в экранной форме. Табличный документ также иногда используется для ввода данных в систему, поскольку его ячейки могут содержать значения, изменяемые с помощью элементов управления. Отдельного режима табличного документа для ввода значений не существует.

Поскольку табличный документ используется для формирования выходных документов, он может быть сохранен в файл на диске для последующего использования или переноса на другие компьютеры. Табличный документ может быть сохранен как в собственном формате, так и экспортирован в другие форматы хранения данных, в том числе лист Excel или формат MXL7 (для совместимости с версией платформы 7.7).

Рис 5.1.

Новый табличный документ можно создать через главное меню "Файл - Новый - Табличный документ" или с использованием клавиш Ctrl+N и дальнейшим выбором табличного документа.

Система 1С:предприятие 8.0 имеет широкие возможности по формированию печатных форм. Обычно табличный документ формируется на основе макета. Для построения макета предназначен редактор табличных документов.

Макетом в системе 1С:Предприятие 8.0 называется объект конфигурации, предназначенный в основном для формирования печатных форм. Печатные формы объектов конфигурации (справочников, документов, журналов документов, планов счетов, планов видов характеристик, планов видов расчетов, регистров, отчетов и обработок и др.) располагаются в подчиненных объектах "Макеты", в общих макетах, а также во внешних файлах. Макеты есть у всех прикладных объектов кроме Констант.

В редакторе табличных документов для создания печатной формы создаются области макета, которые потом выводятся в итоговый табличный документ. Макет также является табличным документом.

Важные особенности табличного документа:

*                        Поддерживается механизм расшифровок, например, для формирования более детального отчета или просмотра объекта базы данных.

*                        В табличном документе могут быть группировки, с помощью которых можно отражать промежуточные итоги. Группы можно легко сворачивать и разворачивать специальными маркерами.

*                        Текст в ячейке может автоматически сдвигаться вправо в соответствии с уровнем группировки.

*                        У ячеек могут быть примечания, содержащие дополнительную информацию.

Рис 5.2.

Ячейка с примечанием имеет маленький треугольник в правом верхнем углу. Примечание показывается во всплывающем окне. Добавить примечание к ячейке табличного документа можно через меню "Таблица - Примечания - Вставить примечание" или через контекстное меню "Вставить примечание", вызываемое из ячейки.

Можно задать различную ширину колонок в разных строках, что позволяет выводить печатные формы очень сложной структуры.

В табличном документе можно размещать OLE-объекты, рисунки, диаграммы и сводные таблицы.

Редактор табличных документов позволяет разработчику задавать имена областей документа. В качестве области может выступать ячейка или группа ячеек.

При именовании строк и столбцов документа, редактор может отображать имена областей в окне редактирования и выделять именованные области.

Поддерживается многоуровневая вложенность именованных областей.

Ячейки табличного документа обычно содержат текст или параметры, а также могут содержать одновременно текст и параметры, заключенные в квадратные скобки, т.е. шаблон. При формировании печатной формы средствами встроенного языка на место параметров будут подставлены конкретные значения.

Приведем некоторые из основных методов табличного документа:

*                        Вывести() - выводит в печатную форму фрагмент табличного документа, добавляя его снизу

*                        Присоединить() - присоединяет к печатной форме фрагмент табличного документа, добавляя его справа, начиная со строки с которой выводился предыдущий фрагмент методом Вывести()

*                        Область() - позволяет получить область как объект типа "ОбластьЯчеекТабличногоДокумента"

*                        ПолучитьОбласть() - позволяет получить область как объект типа "Табличный документ"

*                        ФиксацияСверху() - содержит количество зафиксированных сверху строк. Зафиксированные строки не исчезают из поля таблицы при вертикальной прокрутке

*                        ОтображатьСетку() - содержит признак отображения сетки таблицы

*                        ОтображатьЗаголовки() - содержит признак отображения заголовков колонок и строк таблицы. Заголовки содержат номера колонок и строк и выводятся сверху и слева от таблицы

Пример формирования печатной формы списка справочника "Клиенты":

ТабСпис = Новый ТабличныйДокумент;
// получение макета
Макет = Справочники.Клиенты.ПолучитьМакет("ПечатьСписка");
//получим область как новый табличный документ
Шапка = Макет.ПолучитьОбласть("Шапка");
//выведем область в табличный документ
ТабСпис.Вывести(Шапка);
Спр = Справочники.Клиенты.ВыбратьИерархически();
Пока Спр.Следующий() цикл
    Контр = Макет.ПолучитьОбласть("Контр");
    Контр.Параметры.Наименование = Спр.Наименование;
    ТабСпис.Вывести(Контр);
КонецЦикла;
ТабСпис.ОтображатьСетку = Ложь;
ТабСпис.ОтображатьЗаголовки = Ложь;
ТабСпис.Показать();

Если используется общий макет для формирования табличного документа, то следует написать:

Макет = ПолучитьОбщийМакет("Основной");

При двойном щелчке (или нажатии Enter) на ячейке или рисунке в табличном документе, даже если у них нет расшифровки, возникает событие "Выбор". Это же событие возникает при одинарном щелчке на гиперссылке. Событие "ОбработкаРасшифровки" возникает у ячеек и рисунков, имеющих расшифровку, причем сначала возникает событие "Выбор", а потом событие "ОбработкаРасшифровки".

Расшифровки в табличном документе делятся на стандартные и нестандартные. "Стандартные" расшифровки обрабатываются системой автоматически и не требуют дополнительных усилий от программиста. "Нестандартная" расшифровка должна быть обработана в процедуре-обработчике события "ОбработкаРасшифровки" для элемента управления "ПолеТабличногоДокумента". Событие "ОбработкаРасшифровки" не может выполняться для табличного документа, открытого в новом окне. В модуле приложения больше нет события "ОбработкаЯчейкиТаблицы".

 Задание 11

1.     В форме списка справочника "Клиенты" создайте кнопку "Печать", при нажатии на которую, будет формироваться печатная форма справочника "Клиенты". Используйте приведенный выше пример.

2.     В справочнике "Клиенты" создайте реквизит "Сайт клиента". Создайте внешнюю обработку печати клиентов, в которой предусмотрите вывод поля "Сайт клиента" с расшифровкой. Напишите процедуру нестандартной обработки расшифровки с запуском внешнего приложения для открытия сайта клиента по указанному в реквизите клиента адресу сайта.

3.     Предусмотрите открытие сайта клиента в печатной форме справочника "Клиенты" через гиперссылку. Текст в поле вывода адреса сайта должен отображаться синим цветом.

 

Сводные таблицы.

Система 1С:Предприятие 8.0 содержит новый механизм для анализа данных - сводные таблицы. С их помощью можно легко выводить многомерные данные, например, объем продаж в разрезе контрагентов и услуг.

Значения измерений отображаются в верхней или боковой шапке сводной таблицы, а ячейки области данных содержат сводную информацию на пересечении измерений. Пользователь имеет возможность добавить или удалить измерения и ресурсы, поменять их расположение.

Рис 5.4.

Для обращения к сводной таблице, расположенной в табличном документе, у него есть свойство-коллекция ВстроенныеТаблицы.

Самое главное свойство сводной таблицы - это ИсточникДанных, которое имеет тип РезультатЗапроса или ПостроительОтчета. Это свойство определяет, откуда сводная таблица будет черпать данные для отображения. При использовании РезультатаЗапроса его итоги становятся ресурсами, а группировочные поля - измерениями.

Пример: \\samples\ТабДок_СводТабл_Диаграмма.mxl

 

Диаграммы.

Диаграмма - это элемент управления для графического представления табличных данных, например, результатов отчетов. Диаграммы очень удобны для анализа, так как обеспечивают быстрое и целостное восприятие информации, наглядное представление и сравнение.

Диаграмма может быть сформирована следующими способами:

*                        Вручную - разработчик сам создает диаграмму средствами встроенного языка

*                        На основе таблицы значений или табличного документа (используя свойство ИсточникДанных)

*                        С помощью построителя отчета

Пример: \\samples\ТабДок_СводТабл_Диаграмма.mxl