Сергей Осипов 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перезагрузились из файла выгрузки всоответствие с фильтрами.