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