Категории каталога

OLAP - это просто

Сергей Осипов akafixin /

OLAP - это просто

fixin
http://www.mail.ru/

Удивительное - рядом ...

По ходу работы мне часто требовалосьделать сложные отчеты, я все время пытался найтив них что-то общее, чтобы составлять их болеепросто и универсально, даже написал иопубликовал по этому поводу статью.Однако мою статью раскритиковали и сказали, чтовсе те проблемы, которые я поднял, давно ужерешены в OLAP (www.molap.rgtu.ru) ипорекомендовали посмотреть сводные таблицы вEXCEL.
Это оказалось настолько простым, что приложив кэтому свои гениальные ручонки, у меня получиласьочень простая схема для выгрузки данных из 1С илилюбой другой базы данных (в дальнейшем под 1Сподразумевается любая база данных) и анализа вOLAP.
Я думаю, многие схемы выгрузки в OLAP слишкомусложнены, я выбираю простоту.

Характеристики:

1. Для работы требуется только EXCEL 2000.
2. Пользователь сам может конструировать отчетыбез программирования.
3. Выгрузка из 1С в простом формате текстовогофайла.
4. Для бухгалтерских проводок уже имеетсяуниверсальная обработка для выгрузки,работающая в любой конфигурации. Для выгрузкидругих данных имеются обработки-образцы.
5. Можно заранее сконструировать формы отчетов, азатем применять их к разным данным без ихповторного конструирования.
6. Довольно хорошая производительность. На первомдлительном этапе данные сначала импортируются вEXCEL из текстового файла и строится куб OLAP, а затемдовольно быстро на основе этого куба может бытьпостроен любой отчет. Например, данные о продажахтовара по магазину за 3 месяца с ассортиментом 6000товаров, загружаются в EXCEL 8 минут на Cel600-128M,рейтинг по товарам и группам (OLAP-отчет)пересчитывается за 1 минуту.
7. Данные выгружаются из 1С полностью за указанныйпериод (все движения, по всем складам, фирмам,счетам). При импорте в EXCEL возможно использованиефильтров, загружающих для анализа только нужныеданные (например, из всех движений, толькопродажи).
8. В настоящее время разработаны способы анализадвижений или остатков, но не движений и остатковвместе, хотя это в принципе возможно.

Что такое OLAP: (www.molap.rgtu.ru)

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

Дата Месяц Неделя Вид Товар Склад Количество Сумма Контрагент Автор

Дата - дата операции
Месяц - месяц операции
Неделя - неделя операции
Вид - закуп, продажа, возврат, списание
Контрагент - внешняя организация, учавствующая воперации
Автор - человек, выписавший накладную

В 1С, например, одна строка этой таблицы будетсоответствовать одной строке накладной,некоторые поля (Контрагент, Дата) при этомберутся из шапки накладной.

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

Эта таблица является исходной для OLAP-анализа.

Далее определяются, какие из полей будутсуммироваться (Данные) , какие будут являтьсяуровнями группировок (Измерения), какие данные изтаблицы брать(Фильтр):

Отчет Измерения Данные Фильтр
Сколько товара и на какую сумму продается за день? Дата, Товар Количество, Сумма Вид=продажа
Какие контрагенты поставили какой товар на какую сумму по месячно?љљљ Месяц, Контрагент, Товар Сумма Вид=закуп
На какую сумму выписали операторы накладных какого вида за весь период отчета? Автор, Вид Сумма љ

Пользователь сам опрределяются, какиеиз полей таблицы будут Измерениями, какиеДанными и какие Фильтры применять. Система самастроит отчет в наглядной табличной форме.Измерения можно размещать в заголовках строк илистолбцов таблицы отчета.
Как видно, из одной простой таблицы можнополучить множество данных в виде различныхотчетов.


Как использовать у себя:

Данные из дистрибутива скачайте архив olap.zipљ распаковать именно в каталог c:fixin.Прочитайте readme.txt и выполните все инструкции внем.

Сначала вы должны написать обработку,которая выгружает данные из 1С в текстовый файл (таблицу).Вам нужно определить состав полей, которые будутвыгружаться.
Например, уже готовая универсальная обработка,которая работает в любой конфигурации ивыгружает для OLAP-анализа проводки за период,выгружает для анализа следующие поля:

Дата|ДеньНедели|Неделя|Год|Квартал|Месяц|Документ|Фирма|Дебет|ДтНоменклатура
|ДтГруппаНоменклатура|ДтРазделНоменклатура|Кредит|Сумма|ВалСумма|Количество
|Валюта|ДтКонтрагенты|ДтГруппаКонтрагенты|КтКонтрагенты|КтГруппаКонтрагенты|
КтРазныеОбЪекты

Где под префиксами Дт(Кт) идут субконто Дебета (Кредита),Группа - это группа данного субконто (еслиимеется), Раздел - группа группы, Класс - группараздела.

Для торговой системы поля могут бытьтакие:

Направление|ВидДвижения|ЗаНал|Товар|Количество|Цена|Сумма|Дата|Фирма
|Склад|Валюта|Документ|ДеньНедели|Неделя|Год|Квартал|Месяц|Автор
|КатегорияТовара|КатегорияДвижения|КатегорияКонтрагента|ГруппаТовара
|ВалСумма|Себестоимость|Контрагентљ

Для анализа данных используются таблицыАнализ движений.xls ( Анализбухгалтерии.xls ). Открывая их, не отключайтемакросы, иначе вы не сможете обновлять отчеты(они запускаются макросами на языке VBA). Исходныеданные эти файлы берут из файлов C:fixinmotions.txt (C:fixinbuh.txt),в остальном они одинаковые. Поэтому возможно, вампридется скопировать ваши данные в один из этихфайлов.
Чтобы в EXCEL загрузились ваши данные, выберите илинапишите свой фильтр и нажмите кнопку Сформироватьна листе Условия.
Листы отчетов начинаются префиксом Отч.Перейдите на лист отчета, нажмите Обновитьи данные отчета изменятся в соотсветсвии споследними загруженными данными.
Если вас не устраивают стандартные отчеты, естьлист ОтчШаблон. Скопируйте его в новый лист инастройте вид отчета, работая со своднойтаблицей на этом листе (о работе со своднымитаблицами - в любой книге по EXEL 2000). Рекомендуюнастраивать отчеты на небольшом наборе данных, азатем уже запускать их на большом массиве, т.к.нет никакой возможности отключить перерисовкутаблиц при каждом изменении макета отчета.

Технические комментарии:

При выгрузке данных из 1С пользовательвыбирает папку, куда ему выгружать файл. Я сделалэто потому, что вполне вероятно в ближайшембудующем будут выгружаться несколько файлов (остаткии движения). Затем по нажатию в Проводнике кнопкиљ Отправить --> На OLAP-анализ в EXCEL 2000данные копируются из выбранной папки в папкуC:fixin. (чтобы эта команда появилась в спискекоманды Отправить и нужно скопироватьфайл На OLAP-анализ в EXCEL 2000.bat в каталогC:WindowsSendTo) Поэтому выгружайте данные сразу даваяимена файлам motions.txt или buh.txt.

Формат текстового файла:
Первая строка текстового файла - заголовкиколонок разделенные |, остальные строкисодержат значения этих колонок, разделенные|.

Для импорта текстовых файлов в Excel используетсяMicrosoft Query (составная часть EXCEL) для его работынеобходимо наличие в каталоге импорта (C:fixin)файла shema.ini, содержащего следующую информацию:

[motions.txt]
ColNameHeader=True
Format=Delimited(|)
MaxScanRows=3
CharacterSet=ANSI
[buh.txt]
ColNameHeader=True
Format=Delimited(|)
MaxScanRows=3
CharacterSet=ANSI


Пояснение: motions.txt и buh.txt - это названиераздела, соответствует имени импортируемогофайла, описывает, как импортировать текстовыйфайл в Эксель. Остальные параметры означают, чтопервая строка содержит названия колонок,разделителем колонок является |, наборсимволов - Windows ANSI (для ДОС - OEM).
Тип полей определяется автоматически исходя изсодержащихся в колонке данных (дата, число,строка).
Перечень полей не нужно нигде описывать - EXCEL и OLAPсами определят, какие поля содержатся в файле позаголовкам в первой строке.

Внимание, проверьте ваши региональныенастройки Панель управления --> Региональныенастройки . В моих обработках числавыгружаются с разделителем запятая, а даты вформате ДД.ММ.ГГГГ.

Дополнительно:

Рекомендуется также изучить любую книгу по EXCEL 2000с описанием
сводных таблиц.

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

Я понимаю, что любители MS SQL Server и мощных базданных начнут ворчать, что у меня слишком всеупрощено, что моя обработка загнется на годичнойвыборке, но в первую очередь я хочу датьпреимущества OLAP-анализа для средних организаций.Я бы позиционировал этот продукт как инструментгодичного анализа для оптовых компаний,квартального анализа для розничной торговли иоперативного анализа для любой организации.

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

Описание работы в EXCEL (дляпользователей):љ

Инструкция по использованию отчетов:
1. Отправьте на анализ выгруженные данные(уточните у администратора). Для этого нажмитеправой кнопкой на папке, в которую у васвыгрузились данные из 1С и выберите команду Отправить,затем На OLAP-анализ в EXCEL 2000.
2. Откройте файл Анализ движений.xls
3. Выберите Значение фильтра, нужные вам фильтрыможно дописать на закладке Значения.
4. Нажмите кнопку Сформировать, при этомвыгруженные данные будут загружены в EXCEL.
5. После загрузки данных в EXCEL, можно смотретьразличные отчеты. Для этого достаточно нажатькнопку Обновить в выбранном отчете. Листыс отчетами начинаются на Отч.
Внимание! После того как вы поменяете значениефильтра, нужно еще раз нажать кнопкуСформировать, чтобы данные в EXCELперезагрузились из файла выгрузки всоответствие с фильтрами.




Другие статьи автора:
Визуализация данных

Материал предоставлен: Клерк.РУ

Реклама:
Где заказать рерайтинг текстов узнай на сайте eTXT.ru