РАБОТА С
ТАБЛИЧНЫМИ ДОКУМЕНТАМИ
Общие методы.
Для формирования печатных форм в 1С:Предприятии 8.0
предназначен табличный документ. С помощью элемента управления
"ПолеТабличногоДокумента" он может быть отображен в экранной форме.
Табличный документ также иногда используется для ввода данных в систему,
поскольку его ячейки могут содержать значения, изменяемые
с помощью элементов управления. Отдельного режима табличного документа для
ввода значений не существует.
Поскольку табличный документ используется для
формирования выходных документов, он может быть сохранен в файл на диске для
последующего использования или переноса на другие компьютеры. Табличный
документ может быть сохранен как в собственном формате, так и экспортирован в другие форматы
хранения данных, в том числе лист Excel или формат MXL7 (для совместимости с
версией платформы 7.7).
Новый табличный документ можно создать через главное
меню "Файл - Новый - Табличный документ" или с использованием клавиш
Ctrl+N и дальнейшим выбором табличного документа.
Система 1С:предприятие 8.0 имеет широкие возможности
по формированию печатных форм. Обычно табличный документ формируется на основе макета. Для построения макета предназначен
редактор табличных документов.
Макетом в системе 1С:Предприятие 8.0 называется объект конфигурации, предназначенный в
основном для формирования печатных форм. Печатные формы объектов конфигурации
(справочников, документов, журналов документов, планов счетов, планов видов
характеристик, планов видов расчетов, регистров, отчетов и обработок и др.)
располагаются в подчиненных объектах "Макеты", в общих макетах, а также во внешних файлах. Макеты
есть у всех прикладных объектов кроме Констант.
В редакторе табличных документов для создания печатной
формы создаются области макета, которые потом выводятся в итоговый табличный
документ. Макет также является табличным документом.
Важные особенности табличного документа:
Поддерживается
механизм расшифровок, например, для формирования более детального отчета или
просмотра объекта базы данных.
В табличном
документе могут быть группировки, с помощью которых можно отражать
промежуточные итоги. Группы можно легко сворачивать и разворачивать
специальными маркерами.
Текст в ячейке
может автоматически сдвигаться вправо в соответствии с уровнем группировки.
У ячеек могут
быть примечания, содержащие дополнительную информацию.
Ячейка с примечанием имеет маленький треугольник в
правом верхнем углу. Примечание показывается во всплывающем окне. Добавить примечание к ячейке табличного документа можно через меню "Таблица - Примечания - Вставить
примечание" или через контекстное меню "Вставить примечание",
вызываемое из ячейки.
Можно
задать различную ширину колонок в разных строках, что позволяет выводить
печатные формы очень сложной структуры.
В
табличном документе можно размещать OLE-объекты, рисунки, диаграммы и сводные
таблицы.
Редактор табличных документов позволяет разработчику
задавать имена областей документа. В качестве области может выступать ячейка или группа ячеек.
При именовании строк и столбцов документа, редактор
может отображать имена областей в окне редактирования и выделять именованные
области.
Поддерживается многоуровневая вложенность именованных
областей.
Ячейки табличного документа обычно содержат текст или
параметры, а также могут содержать одновременно текст и параметры, заключенные
в квадратные скобки, т.е. шаблон. При формировании печатной формы средствами
встроенного языка на место параметров будут подставлены конкретные значения.
Приведем некоторые из основных методов табличного документа:
Вывести() - выводит в печатную форму фрагмент табличного
документа, добавляя его снизу
Присоединить() - присоединяет к печатной форме фрагмент табличного
документа, добавляя его справа, начиная со строки с которой выводился
предыдущий фрагмент методом Вывести()
Область() - позволяет получить область как объект типа
"ОбластьЯчеекТабличногоДокумента"
ПолучитьОбласть() - позволяет получить область как объект типа
"Табличный документ"
ФиксацияСверху() - содержит количество зафиксированных сверху строк.
Зафиксированные строки не исчезают из поля таблицы при вертикальной прокрутке
ОтображатьСетку() - содержит признак отображения сетки таблицы
ОтображатьЗаголовки() - содержит признак отображения заголовков колонок и
строк таблицы. Заголовки содержат номера колонок и строк и выводятся сверху и
слева от таблицы
Пример формирования печатной формы списка справочника
"Клиенты":
ТабСпис =
Новый ТабличныйДокумент;
// получение макета
Макет = Справочники.Клиенты.ПолучитьМакет("ПечатьСписка");
//получим область как новый табличный документ
Шапка = Макет.ПолучитьОбласть("Шапка");
//выведем область в табличный документ
ТабСпис.Вывести(Шапка);
Спр = Справочники.Клиенты.ВыбратьИерархически();
Пока Спр.Следующий() цикл
Контр = Макет.ПолучитьОбласть("Контр");
Контр.Параметры.Наименование = Спр.Наименование;
ТабСпис.Вывести(Контр);
КонецЦикла;
ТабСпис.ОтображатьСетку = Ложь;
ТабСпис.ОтображатьЗаголовки = Ложь;
ТабСпис.Показать();
Если используется общий макет для формирования
табличного документа, то следует написать:
Макет = ПолучитьОбщийМакет("Основной");
При двойном щелчке (или нажатии Enter) на ячейке или рисунке в табличном документе,
даже если у них нет расшифровки, возникает событие "Выбор". Это же
событие возникает при одинарном щелчке на гиперссылке. Событие
"ОбработкаРасшифровки" возникает у ячеек и рисунков, имеющих
расшифровку, причем сначала возникает событие "Выбор", а потом
событие "ОбработкаРасшифровки".
Расшифровки в табличном документе делятся на
стандартные и нестандартные. "Стандартные" расшифровки обрабатываются
системой автоматически и не требуют дополнительных усилий от программиста.
"Нестандартная" расшифровка должна быть обработана в
процедуре-обработчике события "ОбработкаРасшифровки" для элемента
управления "ПолеТабличногоДокумента". Событие
"ОбработкаРасшифровки" не может выполняться для табличного документа,
открытого в новом окне. В модуле приложения больше нет
события "ОбработкаЯчейкиТаблицы".
Задание
11
1.
В форме списка
справочника "Клиенты" создайте кнопку "Печать", при нажатии
на которую, будет формироваться печатная форма справочника "Клиенты".
Используйте приведенный выше пример.
2.
В справочнике
"Клиенты" создайте реквизит "Сайт клиента". Создайте
внешнюю обработку печати клиентов, в которой предусмотрите вывод поля "Сайт
клиента" с расшифровкой. Напишите процедуру нестандартной обработки
расшифровки с запуском внешнего приложения для открытия сайта клиента по
указанному в реквизите клиента адресу сайта.
3.
Предусмотрите
открытие сайта клиента в печатной форме справочника "Клиенты" через
гиперссылку. Текст в поле вывода адреса сайта должен отображаться синим цветом.
Сводные таблицы.
Система 1С:Предприятие 8.0 содержит новый механизм для
анализа данных - сводные таблицы. С их помощью можно легко выводить многомерные
данные, например, объем продаж в разрезе контрагентов и услуг.
Значения измерений отображаются в верхней или боковой
шапке сводной таблицы, а ячейки области данных содержат сводную
информацию на пересечении измерений. Пользователь имеет возможность добавить
или удалить измерения и ресурсы, поменять их расположение.
Для обращения к сводной таблице, расположенной в
табличном документе, у него есть свойство-коллекция ВстроенныеТаблицы.
Самое главное свойство сводной таблицы - это
ИсточникДанных, которое имеет тип РезультатЗапроса или ПостроительОтчета. Это
свойство определяет, откуда сводная таблица будет черпать данные для
отображения. При использовании РезультатаЗапроса его итоги становятся
ресурсами, а группировочные поля - измерениями.
Пример: \\samples\ТабДок_СводТабл_Диаграмма.mxl
Диаграммы.
Диаграмма -
это элемент управления для графического представления табличных данных,
например, результатов отчетов. Диаграммы очень удобны для анализа, так как
обеспечивают быстрое и целостное восприятие информации, наглядное представление
и сравнение.
Диаграмма может быть сформирована следующими
способами:
Вручную -
разработчик сам создает диаграмму средствами встроенного языка
На основе таблицы
значений или табличного документа (используя свойство ИсточникДанных)
С помощью построителя
отчета
Пример:
\\samples\ТабДок_СводТабл_Диаграмма.mxl