<p><font size="+1"><b>Введение</b></font></p>
<p>Данная статья касается вопроса автоматизации написания сложных отчетов. Она
снабжена примерами для 1С, но будет полезна для любой программной среды, где
используются отчеты.</p>
<p>По роду деятельности мне часто приходится писать различные отчеты. В написании
отчетов есть две вещи, которые сильно раздражают меня:</p>
<ol start=1 type=1>
<li>Часто приходится писать одно и то же.</li>
<li>Заказчики все чаще хотят видеть сложные перекрестные отчеты, которые человеку
кажутся простыми, но чтобы написать их , требуется
большое время.</li>
</ol>
<p>Поэтому меня интересовали различные способы автоматизации написания отчетов.</p>
<p>Первым из них были сводные таблицы в Excel. Они позволяют
красиво группировать данные и позволять пользователю интерактивно менять форму
отчета. Я выгружал данные в текстовый файл, затем загружал их в Excel
и получал красивую картинку. Excel был на любой машине, поэтому проблем с отображением не
возникало. Однако скоро выяснился недостаток – Excel
имеет ограничение на количество данных в сводной таблице, поэтому на больших
отчетах о продажах у меня выдавалась ошибка о переполнении сводной таблицы.
Приходилось делать мелкие группировки, что, конечно же, не шло на пользу информативности
отчетов. Однако подход мне понравился.</p>
<p>Далее я исследовал Crystal Reports. Однако он показался мне слишком сложным для простых
задач построения отчетов. Все равно что из пушки по воробьям палить. К тому же, все основные
средства построения отчетов были и в 1С, Crystal
Reports не давал мне существенных способов автоматизации. </p>
<p>Поэтому я начал задумываться о построении собственной системы автоматизации
вывода отчетов.</p>
<p>То, что получилось, оказалось очень удобным. Написание отчетов становится
приятной штукой без черновой работы, нужно нарисовать отчет на бумаге, прикинуть
состав заголовков в шапках по вертикали и горизонтали и заполнить эту болванку
данными.</p>
<p>Ознакомьтесь с предлагаемым подходом и примените его в своей практике.</p>
<p>На данный момент код еще написан не до конца. Сейчас я пишу его для 1С, но
никто не мешает писать его для других платформ (ссылка на автора обязательна,
славы знаете ли хочу). Он еще не умеет делать всех
объявленных вещей. Примеры того, что уже можно сделать в 1С смотрите далее
по тексту.</p>
<p><font size="+1"><b>Базовая теория отчетов</b></font></p>
<p>Отчет – это клеточное поле размером (в клеточках) M по вертикали и N по горизонтали, сверху и слева снабженное шапками, расшифровывающих
содержимое клеток. В одной клетке содержится одно значение. Несколько клеток
могут быть объединены в одну <b>ячейку</b>, такое
объединение клеток содержит одно значение. Объединения не пересекаются.
Читать всю статью: http://www.klerk.ru/soft/1c?2329


