Таблицы
Для работы с табличными документами в системе используется специальный агрегатный тип данных "Таблица". Основным назначением табличного документа в системе 1С:Предприятие является создание печатных форм отчетов и первичных документов.
Печатные формы формируются при помощи встроенного языка с использованием агрегатного объекта "Таблица", создаваемого функцией СоздатьОбъект. Наиболее типичным способом заполнения табличного документа является включение в него секций. Для этого используется исходный табличный документ, который может располагаться в той же форме, в тексте программного модуля которого создан агрегатный объект "Таблица". Кроме того, исходная таблица может располагаться и в общих таблицах конфигурации и во внешнем файле. Назначение исходного табличного документа выполняется методом объекта "Таблица" – ИсходнаяТаблица.
Исходная таблица является заготовкой, содержащей текстовые фрагменты отчета, рамки, рисунки и т. д. Исходная таблица может быть включена в создаваемый отчет целиком. Однако часто необходимо включать в отчет отдельные фрагменты заготовки в определенной последовательности. Например, при печати накладной, нужно один раз вывести шапку и много раз вывести строку документа. Для этого части исходной таблицы выделяются в виде фрагментов-секций. Метод ВывестиСекцию позволяет включить выделенный фрагмент исходной таблицы в формируемый табличный документ.
В ячейках исходной таблицы может размещаться обычный текст или выражение встроенного языка 1С:Предприятия. При включении в табличный документ секции исходной таблицы автоматически происходит вычисление всех выражений и в табличный документ уже включается секция, содержащая результаты этих вычислений. Таким образом, происходит заполнение включаемых секций конкретными данными. Описанный способ, с одной стороны, позволяет наиболее наглядным образом визуально в исходной таблице спроектировать внешний вид и содержание отчета, а с другой, позволяет достаточно просто включать подготовленные фрагменты в заполняемый табличный документ.
Приведем пример формирования таким способом печатной формы документа.
Пример:
Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("ПечатьСчета"); Таб.ВывестиСекцию("Шапка"); ВыбратьСтроки(); Пока ПолучитьСтроку() = 1 Цикл Таб.ВывестиСекцию("Строка"); КонецЦикла; Таб.Показать();
В приведенном примере в ячейках секций "Шапка" и "Строка" исходной таблицы располагаются выражения выдающие различные реквизиты документа.
Существует другой способ заполнения данными включаемых секций. Этот способ отличается от описанного тем, что в секциях ячеек не задаются выражения. Заполнение секции данными описывается прямо в алгоритме программного модуля. Для этого секция сначала выбирается из исходной таблицы, затем в ней заполняются значениями ячейки, в которых должны выводиться данные, а затем секция включается в табличный документ. Для получения секции из исходной таблицы используется метод ПолучитьСекцию. Полученная секция запоминается в переменной как специальный объект типа "СекцияТаблицы". Для того, чтобы в этом объекте можно было заполнять отдельные ячейки им нужно предварительно задать имена в исходной таблице. У объекта "СекцияТаблицы" отдельные именованные ячейки являются атрибутами, имеющими тип "ОбластьТаблицы" (область может содержать и несколько ячеек). Заполнение ячеек выполняется присвоением атрибуту "Текст" объекта "ОбластьТаблицы" необходимых значений.