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

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

Технология 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С:Предприятия на сайте компании АТТ - с покупки ее продукта началось, кстати, мое знакомство с технологией.




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




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

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

Что учесть при сдаче налоговой отчетности за первое полугодие

Компании на УСН должны включить в налоговую декларацию по НДС обязательный Раздел 1, даже несмотря на то, что он будет пустым.

Ведение бизнеса

Зачем работать с отзывами о компании и как это делать правильно

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

Зачем работать с отзывами о компании и как это делать правильно
Банки

Ozon будет давать кредиты предпринимателям

Банк Ozon в 2025 году начнет развивать кредитование физлиц и бизнеса за пределами маркетплейса.

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

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

Если ИП переходит на НПД без отказа от УСН, его самозанятость рано или поздно аннулируют

При переходе с УСН на НПД обязательно надо направить в ИФНС уведомление о прекращении деятельности по упрощенке. Если не сдать этот документ, постановка на учет по НПД аннулируется. Это произойдет рано или поздно. Как правило – поздно.

Разработчик корпоративного софта VK Tech начал вести блог на «Клерке»

Теперь узнавать больше о том, как ведется налоговый мониторинг, вы сможете от разработчика! Уже сейчас можно написать отзыв о продуктах компании и о работе с ней и задать свой вопрос.

Разработчик корпоративного софта VK Tech начал вести блог на «Клерке»
HR

Апгрейд для кадровика и специалиста по персоналу

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

Апгрейд для кадровика и специалиста по персоналу
Опытом делятся эксперты-практики, без воды
НДФЛ

Минфин непреклонен: больничные облагаются НДФЛ

Все доходы налогоплательщика, полученные им как в денежной, так и в натуральной форме, облагаются НДФЛ. И больничные – не исключение.

Просрочка по налоговым долгам достигла 1,3 трлн рублей

У ФНС больше всего дебиторской задолженности по налогу на прибыль и НДС.

❗️ Записывайтесь на курсы повышения квалификации и профпереподготовки со скидками. Старт потока — 1 августа!

Успейте приобрести любой курс повышения квалификации, а также курсы профпереподготовки для бухгалтеров на УСН и финансовому менеджменту со скидками до -78%. Выбирайте курс и приступайте к обучению! Новый поток стартует 1 августа.

7

На 10-15% могут повысить пошлины за регистрацию интеллектуальных прав и сделок с ними

Поправки также предусматривают отмену скидки за электронную подачу заявки на регистрацию интеллектуальных прав и сделок с ними.

🔔 Открываем набор на новый поток обучения! Старт — 1 августа

Успейте купить курсы повышения квалификации по учету на маркетплейсах, ВЭД и ФСБУ, а также курсы профпереподготовки для бухгалтеров на УСН и финансовому менеджменту со скидками до -78%. Выбирайте курс и присоединяйтесь! Обучение начнется 1 августа.

🔔 Открываем набор на новый поток обучения! Старт — 1 августа

Как работать с машиночитаемой доверенностью

Машиночитаемая доверенность (МЧД) позволяет сдавать электронную отчетность, оформлять документы через электронный документооборот, представлять интересы компании.

Определять инвестиционную недвижимость надо по ФСБУ 6/2020 и МСФО 40

Электростанции, которые сдают в аренду – это не инвестиционная недвижимость.

У карт UnionPay от Россельхозбанка будут проблемы с расчетами за границей

Клиентам, которые находятся за рубежом, рекомендуют снять наличные с карты UnionPay.

НДС

📦 Иностранных продавцов маркетплейсов обязали платить НДС в России. Что будет с ценами и риски оценивает первый вице-президент Союза Интернет-Торговли

С 1 июля 2024 года в ЕАЭС продавцы из стран Евразийского экономического союза обязаны уплачивать НДС в той стране, где их товар был фактически передан конечному покупателю.

Ведение документооборота

Как составить график документооборота для бухучета: инструкция для бухгалтера

Что вы предпочтете: действовать «на ощупь», рискуя совершить ошибку, или следовать четкой, понятной инструкции, в которой прописан каждый шаг? Бухгалтеры — люди прагматичные, поэтому мы практически уверены, что вы выбрали второе. Расскажем, как организовать и контролировать поток бумаг через отдел бухгалтерии с помощью графика документооборота.

Как составить график документооборота для бухучета: инструкция для бухгалтера

Отвечайте на требования ФНС правильно! Инструкция от адвоката

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

Отпуска

Работодатель не обязан давать отпуск с последующим увольнением

Если сотрудник надумал увольняться, он может попросить предоставить ему все его оставшиеся дни отпуска с последующим увольнением.

Интервью

ТоТ еще разговор. Андрей Матюха: Трюфель, юдзу, пондзу

Продолжаем беседу с предпринимателями в рамках проекта «ТоТ еще разговор». Сегодня в гостях Андрей Матюха – шеф-повар, автор и совладелец краснодарских ресторанов: The Печь, Угли-Угли и Племя, которые стабильно попадают в ресторанные рейтинги, а также гриль-бар Ребрышки и Бедрышки, который открылся совсем недавно.

2

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

До конца 2024 года не начисляют пени на положительное сальдо ЕНС

За каждый день просрочки платежа в случае несвоевременной уплаты по совокупной обязанности на ЕНС начисляют пени.

2