Технология OLAP и 1С:Предприятие

В среде общения программистов 1С все чаще стали возникать вопросы о технологии OLAP. Первым человеком, соединившим эту технологию с программами семейства 1С:Предпрития стал А. Любимов, разработавший продукт Акселератор (в него входят кубы, обработка выгрузки данных из 1С и OLAP-клиент от фирмы Digital Design - Data Vision Analyzer). Акселератор в настоящее время распространяется его фирмой АТТ. Однако агрессивное продвижение этого продукта Любимовым вошло в историю, и благодаря ему упоминание аббревиатуры OLAP на Территории 1С до сих пор вызывает у некоторых ее обитателей беспричинную ярость: А зря. Технология очень интересная. Итак, OLAP - что, зачем и как.
9,1 тыс. 3,4 тыс.

Технология OLAP и 1С:Предприятие

http://dagpages.virtualave.net/

В среде общения программистов 1С все чаще стали возникать вопросы о технологии OLAP. Первым человеком, соединившим эту технологию с программами семейства 1С:Предпрития стал А. Любимов, разработавший продукт Акселератор (в него входят кубы, обработка выгрузки данных из 1С и OLAP-клиент от фирмы Digital Design - Data Vision Analyzer). Акселератор в настоящее время распространяется его фирмой АТТ. Однако агрессивное продвижение этого продукта Любимовым вошло в историю, и благодаря ему упоминание аббревиатуры OLAP на Территории 1С до сих пор вызывает у некоторых ее обитателей беспричинную ярость: А зря. Технология очень интересная.

Итак, OLAP - что, зачем и как.

Сначала просто расшифруем аббревиатуру. OLAP - On-Line Analytical Processing, то есть анализирование на лету. Такое вот название было придумано для технологии. Кроме названия было придумано 5 принципов OLAP - если принципы не соблюдаются, то как бы и не OLAP это, а так, что-то другое (Гиперкуб, например). Эти принципы чуть ниже. Сначала все-таки неформальное определение так, как его понимаю я. Итак, предназначение этой технологии - давать аналитику (менеджеру, как правило) интересующую информацию со скоростью, которая не будет отставать от его мысли. Здесь имеется в виду и скорость построения отчета, и возможность легко извлечь нужные данные. И принципы следуют именно отсюда. Вот они:

  • предоставление пользователю результатов анализа за приемлемое время (обычно не более 5 с), пусть даже ценой менее детального анализа;
  • возможность осуществления любого логического и статистического анализа, характерного для данного приложения, и его сохранения в доступном для конечного пользователя виде;
  • многопользовательский доступ к данным с поддержкой соответствующих механизмов блокировок и средств авторизованного доступа;
  • многомерное концептуальное представление данных, включая полную поддержку для иерархий и множественных иерархий (это - ключевое требование OLAP);
  • возможность обращаться к любой нужной информации независимо от ее обЪема и места хранения.

Теперь - ближе к делу. OLAP - это технология, а не программа. Есть решения от Оракл, от других производителей ПО, но куда нам деться от родного Билли Гейтса! Рассмотрим решение от Майкрософт, всеми ругаемой и всеми используемой. Они начали включать OLAP в SQL-сервер с версии 7.0. Там он называется OLAP-Services. В SQL-2000 название почему-то сменили на Analysis Services. Но суть осталась.

Как это выглядит абстрактно - есть куб, имеющий несколько измерений, и заполненный данными. Можно брать срезы по любому набору измерений и смотреть, что внутри. Ничего не напоминает? Не зря один человек, чуть не сделавший на Территории 1С слово OLAP ругательным, называл регистры OLAPом для бедных: Доля правды в этом есть. Но в целом такое утверждение не верно - цели у регистров и OLAP-кубов разные. Первые заточены на быстрое занесение информации и ее получении на один конкретный момент времени, вторые - на максимально удобное извлечение информации. Поместить ее в OLAP-куб - процесс не быстрый:

Теперь - как это реализуется чуть ближе. Итак, имеем какой-то набор таблиц, проще говоря - базу данных. Эта БД называется источником данных (Data source). В одной из таблиц - набор собственно данных. Она называется таблицей фактов (fact table). В кубе может быть только одна такая таблица. Кроме того, может быть любое количество таблиц с данными об измерениях куба. Указав, какие поля содержат данные, а также задав свойства измерений и взаимосвязи между ними, получаем структуру куба. Например, такую:

структура куба

Это - не очень сложный куб. Однако, он дает возможность получать информацию о количестве, сумме, себестоимости (а заодно о вычисленных на их основе прибыли и проценте прибыли) а также об остатках на начало и конец любого выбранного периода. И это в любом разрезе данных по 7-ми измерениям с любым уровнем детализации. И это очень быстро и без помощи программиста. Очень быстро - потому, что все возможные данные на пересечении всех осей рассчитываются заранее. Без помощи программиста - потому, что существует множество клиентских программ для удобного извлечения информации. От безумно дешевого в нашей стране Office 2000 и Office XP до достаточно дорогого, но с мощнейшими возможностями ProClarity:

Рассмотрим представление информации, хранящейся в кубе, с помощью различных программ-клиентов (далее просто клиентов).

Для начала - MS Office (а точнее - Excel). 2000-й рассматривать не буду, потому что избалован нормальными клиентами: Даже по сравнению с малость недоделанной Data Vision Analyzer он выглядит слишком бледно. А вот XP - уже вполне неплохо. Опять же многого не хватает, но при том, что MS office стоит в любом, простите за каламбур, офисе доступность очевидна. На лицензионности я внимание не заостряю. Итак, скриншот:

Список полей сводной таблицы

сводная таблица

При этом мы двойным щелчком можем раскрыть любую раскрываемую позицию (например, год на кварталы и далее - на месяцы и дни), можем добавить сразу за товарами размеры и таким образом увидеть, какой из них более ходовой, можем убрать отбор покупателей по группе "Покупатели" или добавить к отбору еще какую-нибудь группу: можем отсортировать таблицу по сумме или отобрать несколько самых больших (или самых меньших) позиций: Разумеется, можно получить диаграмму. В общем, вполне неплохо.

Второй вариант - Data Vision Analyzer от питерской фирмы Digital Design. Он стоит денег. Однако его возможности все-таки посерьезней, чем у Excel. Очень удобный выбор строк и столбцов, возможность отборов, сортировок, выделения цветом определенных значений: экспорт результата в Excel, управление доступами, журнал регистрации...:

фильтр

структура куба

В общем, очень неплохой клиент c русским интерфейсом, что также плюс. Однако есть у него и недостатки - например, необходимо наличие SQL-сервера для хранения служебной информации. Сортировки и фильтрации можно задать только при подготовке запроса (на уже сформированном отчете, по которому погуляли с помощью детализации или укрупнения, они не срабатывают). Добавление измерений - опять же только при начальном формировании структуры запроса. Включение в отчет, скажем, всех товаров (без групп) при количестве уровней от 2-х - занятие не для слабонервных: Из представлений информации - таблица и диаграмма. Стоимость программы относительно невелика.

А теперь - клиент, который позволяет получить что угодно. ProClarity 3.0.

дерево компиляции

На рисунке - дерево декомпозиции. Сразу можно увидеть, что, кому и когда: те, кто пользовались этим инструментом, ничего другого уже обычно не хотят.

Но и стандартные представления тоже есть, с очень удобным выбором чего бы то ни было: В таблице и диаграмме, как и в дереве декомпозиции, можно детализировать данные, либо углубляясь (drill down) на следующий иерархический уровень (что доступно в любом клиенте), либо подключая новое измерение. Элементарно раскрывается, например, товар по покупателям, причем сразу можно выбрать, на какой уровень попадешь. Все отборы и сортировки можно установить в любой момент. При работе с таблицей выбор измерений для строк и столбцов мне сначала казался немного неудобным, но это прошло. В общем, отличнейший клиент. Действительно позволяет ProЯснить ситуацию :-). Огорчает одно - стоимость. Около 800$ на одно рабочее место. Также может несколько затруднить работу английский интерфейс, но эта проблема в принципе решаема.

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

А теперь еще один вопрос - как загнать в эту красоту данные из 1С?

Собственно, ничего страшного. Есть два пути - один попроще, другой мне нравится :-).

Первый способ уже применяется довольно многими. На рынке даже есть решения для облегчения этого пути. Как правило, применяется на базах в формате SQL. Но и на dbf тоже работает. Суть в том, что в качестве источника данных используется непосредственно база 1С. Тогда как в качестве таблицы фактов мы используем таблицу какого-либо регистра, устанавливаем связи с таблицами справочников, и вперед. Дешево и сердито. Особенно хорошо при использовании Analysis Services (SQL 2000 ) - создание уровней измерений с помощью parent-child идеально ложится на структуру таблиц 1С. Для SQL 7.0 мы бы получили абсолютно плоские изменения товаров и покупателей, без групп (а это нарушило бы основное требование OLAP).

Плюсы достаточно очевидны - для обновления данных в кубе достаточно запустить процессинг (process) базы данных в OLAP-менеджере. В источнике данных информация всегда актуальна. Минусы - я с трудом представляю, как использовать такой подход на бухгалтерской компоненте и тем более на расчете. Определенно нельзя использовать в качестве измерений перечисления. Нельзя загнать в куб информацию из двух регистров (есть виртуальные кубы, позволяющие обЪединить несколько кубов, но у них свои недостатки). Нельзя создать многоуровневые измерения с использованием нескольких таблиц. Вообще структура куба достаточно жестко определяется структурой БД. А она может и изменятся: Кроме того, куб, разработанный для одной БД с большой долей вероятности не будет работать с другой, даже при аналогичной конфигурации. И вообще сама идея такого подхода основана на использовании недокументированной информации о хранении данных в 1С (человек, не знакомый со структурой файла 1cv7.dd этот подход использовать не сможет).

Второй способ (я использую именно его) - вынесение источника данных в промежуточное хранилище. Обычно это - база данных Access. Можно использовать таблицы SQL. Там создаются таблицы с учетом того, что мы хотим видеть, далее пишется обработка для переноса в это хранилище данных из рабочей базы (пример работы с Access доступен), и уже на основе этого хранилища делается OLAP -куб. Здесь мы имеем полную свободу - например я в одной не любимой мною конфигурации заношу данные в куб продаж не на основе регистров, а на основе расходных накладных, при этом беру только те, у которых покупатель принадлежит к определенной группе. Вот так приходится отсекать именно продажи от всего остального: А еще я добавляю в куб продаж остатки - чтобы увидеть, что, например, мало продавали просто из-за того, что не было товара на складе, или на линейной диаграмме показать остатки и продажи в штуках - легко оценивается запас товара на складе. А показывать остатки приходится на какого-то покупателя: маразм? Нет, просто требование OLAP. Я то просто выкрутился - добавил в таблицу с покупателями фиктивную запись, в таблицу с накладными тоже и отношу все записи информации об остатках в таблицу фактов на них: Готов держать пари, в первом способе такого не добьешься. Формат базы данных при таком способе абсолютно не важен. Есть также принципиальная возможность (я пока только обдумываю, но делать буду определенно) добавлять информацию из внешних источников - например из файла MS Excel определенного формата: там могут быть данные, скажем, о планах на продажи или о затратах на рекламную компанию - сравнение этих данных прямо на месте с информацией о продажах может оказаться очень интересным. Понятно, что подобная гибкость недостижима при использовании первого подхода.

На этом, пожалуй, и все. Разумеется, получился весьма поверхностный обзор, но, надеюсь, я сумел передать основную идею технологии. Очень много различного материала можно найти на сайте www.olap.ru. Также есть обзоры применения OLAP именно на основе данных 1С:Предприятия на сайте компании АТТ - с покупки ее продукта началось, кстати, мое знакомство с технологией.




Ссылки по теме:




Оригинал статьи:

Начать дискуссию

О госзакупках простым языком

Сегодня, как и было обещано, хочу поделиться с вами обновлениями в системе государственных закупок.

Курсы повышения
квалификации

20
Официальное удостоверение с занесением в госреестр Рособрнадзора

МВД хочет приостанавливать денежные переводы в рамках уголовного преследования

Силовые структуры смогут приостанавливать такие переводы на 10 дней

Банки обяжут за 24 часа предоставлять в МВД данные о переводе цифровых денег

Ведомство разработало проект соответствующего федерального закона

Лучшие спикеры, новый каждый день

Киргизский Finca Bank приостановит зачисление переводов из «Сбера» и «Тинькофф»

Ограничения начнут действовать в мае

84

⚡️Меняем тарифы на «Клерке». Успейте подключить безлимитные консультации

У нас молния. С понедельника на «Клерке» произойдут изменения. Тарифов с безлимитными консультациями больше не будет. Хотите безлимит? Подключайте тариф на год или на полтора прямо сейчас.

Иллюстрация: Вера Ревина / «Клерк»

В Telegram можно заработать на продаже стикеров

Создатели стикеров и эмодзи в Telegram смогут получить в криптовалюте 95% выручки от продажи своего творчества.

Опытом делятся эксперты-практики, без воды
Самозанятые

👵 Чтобы заработать пенсию, самозанятые должны платить добровольные взносы. Но не обязаны, уточняет наш эксперт

В стаж для пенсии идет период работы, если за этот период начисляют и уплачивают взносы. За работников взносы платит работодатель, ИП сами платят свои взносы. А самозанятые не платят.

Экономика России

Официально: сколько в России ресторанов, кафе и баров

Росстат привел статистику за 2023 год по местам общепита.

Налоговая подсмотрит за вами через камеры, если понадобится. 🎥«Ночной бухгалтер» № 1668

Улыбнитесь, вас скрывает скрытая камера! А может и не скрытая, а просто камера наблюдения на улице. Корреспондент «Клерка» узнала о любопытном способе налоговиков проверять ваш бизнес.

Иллюстрация: создана при помощи ИИ playground.com / Елена Балаклицкая

КС РФ: иногда УК должна продолжать управление домом и после прекращения договора

Конституционный Суд уточнил порядок прекращения обязательств компании (УК) по управлению многоквартирным домом.

Малый и средний бизнес выпустил облигации на 2,5 млрд рублей

До конца года МСП Банк готов поддержать выпуск биржевых облигаций компаний на сумму до 8 млрд рублей.

Банкротство

Новое постановление КС: как теперь платить налоги при банкротстве компании

Чтобы не получать требования о взыскании убытков от налоговиков или других кредиторов, арбитражный управляющий должен согласовать интересы сторон в суде, который определит порядок выплат при банкротстве организации.

Миникурсы, текстовые и видеоинструкции для бухгалтеров
Бухгалтеры

❗️ Оформите подписку «Клерк.Премиум» со скидкой 50%! В понедельник цена вырастет

До 22 апреля вы можете купить подписку «Клерк.Премиум» на 12 месяцев со скидкой 50% за 9900 рублей. Успейте получить доступ к образовательным материалам «Клерка» по старой цене.

Больничные

Как бывшим контрактникам считать стаж для оплаты больничного

Военная служба по контракту входит в стаж для больничного.

Самозанятый написал жалобу на руководителя в трудовую? А так можно было?

Привет, это налоговый юрист для бизнеса и СЕО «Патрикеев и партнеры» Павел Патрикеев. И я никогда не думал, что тема переквалификации будет окутана такими интригами.

Самозанятый написал жалобу на руководителя в трудовую? А так можно было?
1
204
Обзоры новостей

⚡️ Итоги дня: сотрудники не хотят терпеть токсичных начальников, глава Willdberries стала обедневшим миллиардером, в Москве будет шторм, а Питер завалит снегом

Подготовили обзор главных событий дня. Все самое интересное, что писали и обсуждали в сети, в одной подборке.

135

Решила зайти в рефералку «Клерка». Как думаете, получится?

Коллеги, решила поделиться с вами. Сегодня решила стать участником Клерк.Партнер. Буду рекомендовать наши курсы и вебинары и получать пассивный доход. Говорят, что через рефералку может зарабатывать любой, а не только менеджеры. Посмотрим, что у меня получится😉

Иллюстрация: создано с помощью ИИ OpenAI © Вера Ревина/Клерк.ру
Охрана труда

Порядок обучения сотрудников по охране труда в организации

Разобрались с тем, какие программы обучения существуют, кто имеет право проводить инструктаж и по каким правилам это нужно делать, чтобы не получить штраф от проверяющих органов.

Иллюстрация: dcstudio/freepik
Бухгалтеры

Эксперты «Клерка» ответили с начала года на 3000+ вопросов бухгалтеров. Торопитесь — безлимитные консультации можно получать только до 21 апреля!

Всегда приятно получить совет профессионала, а получить консультацию эксперта в трудное время сдачи отчетов — еще и полезно! Пока вы можете получать ответы на вопросы без ограничений, но скоро такой возможности не будет. Поспешите подключить подписку, пока есть время.

Интересные материалы

Сайты с картинками могут воровать telegram-аккаунты

В поисковиках пользователи рискуют наткнуться на изображения, которые ведут на фишинговые ресурсы и просят пройти авторизацию в мессенджере Telegram.

73