DEEONE/Методология
Наша методология

Один способ,
14 проектов, 6 лет отладки

Мы не собираем каждый проект с чистого листа. У нас есть внутренние правила — как называть таблицы, как раскладывать файлы по папкам, как устроена ночная загрузка. За шесть лет эти правила обкатались на совершенно разных задачах: от аптечной сети на самодельной учётной системе до производителя воды с десятками 1С-баз. Благодаря этому мы быстрее стартуем, реже ошибаемся и быстро вводим нового человека в проект.

1 100+
таблиц в хранилищах
справочники, факты, промежуточные
1 900+
выборок данных
слой для отчётов + слой для аналитика
980+
процедур обновления
можно безопасно перезапустить
14
крупных внедрений
плюс 25+ проектов поменьше
§ Устройство проекта

Внутри всегда одинаковое устройство

Все наши проекты в Visual Studio выглядят одинаково: три папки — хранилище, загрузка и аналитический куб. Человек открывает любой проект и за минуту понимает, где что лежит.

BI.sln проект Visual Studio DWH/ хранилище данных (MS SQL) Безопасность/ логины, схемы Скрипты/После развёртывания Хранилище/Файлы Таблицы/ tr Номенклатура— справочник tb Сегмент — Номенклатура— мост te STG_1C_Документы— промежуточная tf Продажи— факт tf Движения остатков tf Платежи Представления/ uni/ — чистый слой (на нём живут отчёты) vf Продажи vr Номенклатура vr Контрагенты ast/ — удобный слой (для аналитика) vf Продажи— со всеми атрибутами vr Номенклатура Программирование/ pu tf Продажи— процедура обновления факта pu tr Номенклатура— и справочника ETL/ загрузка данных (SSIS) Обновление хранилища.dtsx Обновление куба.dtsx amoCRM_loader.py CRPT_loader.py YM_API_loader.py Shelfmatch_loader.py OLAP/ аналитический куб (SSAS Tabular) Model.bim — таблицы (справочники и факты из uni) — меры DAX (всё, что показывают отчёты) Префиксы: tr справочник tb мост tf факт te промежуточная vf/vr выборки pu процедура обновления

Инженер открывает чужой проект, смотрит на это дерево и сразу работает — искать ничего не нужно. То же самое происходит, когда мы передаём проект на сопровождение вашей команде.

§ Условные обозначения

Внутренний язык имён

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

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

Префикс Что это Пример и объяснение
tr Справочник Номенклатура, контрагенты, подразделения, города — всё, что остаётся более-менее постоянным и на что ссылаются факты. История изменений ведётся там, где это нужно отчёту.
tb Мост между справочниками Нужен, когда один объект связан сразу с несколькими. Пример: товар входит в несколько сегментов, один сегмент содержит много товаров — между ними ставится отдельная таблица-мост.
tf Факт Продажи, отгрузки, документы, операции — всё, что происходит каждый день и накапливается со временем. Самый большой объём данных.
te Промежуточная Временная таблица для сырых данных из 1С или внешнего API перед обработкой. Живёт один цикл загрузки: каждую ночь заполняется заново.
vf Выборка факта Представление поверх tf, уже со всеми нужными связями. Именно из него берёт данные модель отчётов — не напрямую из таблицы.
vr Выборка справочника То же для справочников: типы приведены к нужным, иерархии развёрнуты и удобны для использования.
pu Процедура обновления Её задача — перенести данные из сырых в чистые. Безопасно перезапускается: если что-то пошло не так, можно запустить ещё раз — данные не испортятся.
uni

Чистый слой

Данные приведены в порядок: правильные типы, правильные связи, ничего лишнего. На этом слое живёт аналитический куб и все отчёты в Power BI. Его никто не трогает руками.

Куда ходят: автоматические отчёты, рассылки, дашборды для руководства
ast

Удобный слой

Те же факты, что и в чистом слое, но собраны со всеми атрибутами сразу. Здесь удобно писать SQL руками, выгружать в Excel и быстро проверять гипотезы.

Куда ходят: аналитики для разовых выгрузок и проверки цифр

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

§ Что происходит ночью

Ночная загрузка данных

Пока сотрудники спят, хранилище обновляется. Пять шагов — каждую ночь одни и те же, в одном порядке. Если что-то пошло не так, повтор не испортит данные.

01

Забрать сырое

Скрипт загрузки тянет данные из 1С, CRM или внешних API и кладёт в промежуточные таблицы — как есть, без обработки.

02

Навести порядок

Процедуры обновления перекладывают сырое в чистое: убирают дубли, ведут историю изменений справочников, приводят типы.

03

Пересобрать выборки

Выборки поверх таблиц — это не отдельные копии, а «окна» в чистый слой. Обновляются вместе с данными.

04

Обновить куб

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

05

Отдать в отчёты

Power BI работает поверх куба. Утром сотрудники открывают дашборды — там уже свежие цифры.

§ Что это даёт

Четыре вещи, которые чувствует клиент

Общий способ работы — не ради красоты. Он решает конкретные проблемы, которые раньше или позже возникают в каждом серьёзном BI-проекте.

01

Новый человек в команде — без долгого погружения

Вместо недели «читаю чужой код и не понимаю» хватает получаса на знакомство со структурой. То же самое происходит, когда проект переходит на сопровождение вашей команде.

02

Обновления без сюрпризов

Новая версия хранилища выкатывается одним действием. Если что-то пошло не так — запуск повторяется, данные не портятся. Никакой магии «только на моей машине работает».

03

Несколько инженеров работают параллельно

Каждая таблица и процедура живёт в отдельном файле. Инженеры не мешают друг другу, их правки объединяются автоматически — и проект едет к сроку в несколько рук.

04

Когда бизнес растёт, модель растёт с ним

Одной моделью стало тесно — мы добавляем рядом ещё одну, под отдельное направление. Старые отчёты продолжают работать как работали, без переписывания.

§ Как это выглядит в деле

Четыре примера из наших проектов

Это не обещания из презентации — это то, что действительно работает и обновляется каждую ночь у наших клиентов.

Пример · Производство напитков

Десятки 1С-баз в одной модели

Холдинг-производитель минеральной воды. Основная учётная система — 1С:ERP. Плюс 6–8 баз 1С:Бухгалтерии и 6–8 баз 1С:ЗУП, каждая по своему юрлицу. Под капотом — сквозной маппинг номенклатуры между всеми базами и подключение к ЦРПТ и Nielsen. На выходе — одна таблица продаж, куда бы ни посмотрел финансовый директор.

Пример · Производство безалкогольных напитков

Консолидированная себестоимость без Excel

Расчёт себестоимости с исключением внутригрупповых оборотов — сразу на стороне хранилища. Без Excel и без ручной выверки у бухгалтера. В том же проекте — разбор отклонений в расходе ингредиентов по партиям и расчёт загрузки производственных линий.

Пример · Омниканальный ретейл

Пять источников в одном отчёте

Федеральный e-com: онлайн, розница и B2B в одной системе. Источники — 1С:УТ, 1С:ЗУП, 1С:Документооборот и две разные СКУД (Sigur и Perco). Один и тот же сотрудник одновременно виден и в HR-данных, и в данных пропускной системы — руководитель смотрит на это одним глазом.

Пример · Общепит

Аналитика поверх iiko

Сеть пекарен-кофеен на iiko. Мы подключились к самому сервису iiko, а не к его встроенным отчётам — поэтому в хранилище попадают продажи, остатки, персонал и себестоимость каждого блюда. Сценарий редкий: такие задачи обычно решают неохотно.

§ Консультация · 30 минут

Хотим такого же
порядка у себя?

30 минут по телефону — разберём ваши источники, покажем, как они лягут в нашу структуру, назовём сроки и бюджет.

Телефон+7 918 042 34 43
Время откликаВ течение рабочего дня