Кейс Команда разработки

ERP для монтажной компании: вместо десятков Google-таблиц

Монтажная компания вела сметы, табели и выполнение работ в Google-таблицах — и упёрлась в их потолок: отчёт строился 4–5 минут. Рассказываем, как мы собрали веб-систему, в которой тот же отчёт строится за 5–10 секунд.

ERP для монтажной компании: вместо десятков Google-таблиц

Руководство компании пришло к нам с простой задачей: навести порядок в учёте и нормально считать. Учёт к тому моменту жил в Google-таблицах, и сводный отчёт строился 4–5 минут.

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

  • Отрасль: электромонтажные работы
  • География: объекты по всей России
  • Пользователи: 30+ на старте, 100+ после полного внедрения
  • Учёт: сотни сотрудников, включая рабочих без доступа к системе
  • Кто работает: руководство, офис, прорабы и бригадиры, подрядчики
  • Формат: веб-портал
  • Сроки: 8 месяцев до опытной эксплуатации, полный запуск — на 10–11 месяце

Как было: своя таблица у каждого

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

Для небольшой компании это нормальный и удобный старт. Но с ростом объёмов у таблиц появляются типичные проблемы:

  • Связи между файлами хрупкие. Переименовали вкладку, вставили столбец, скопировали таблицу — и формулы в сводной превращаются в ошибки.
  • Отчёты строятся минутами. Здесь сводный отчёт собирался 4–5 минут, и после смены фильтра ждать приходилось снова.
  • Доступы — ручная работа. Выдать новому сотруднику права только на его объекты или закрыть доступ — нужно пройтись по множеству файлов.
  • Сводная картина отстаёт. Пока данные дойдут от объекта до свода, проходит время.

Это не чья-то ошибка, а потолок инструмента: таблицы не рассчитаны на сотни людей и тысячи строк, которые меняются каждый день.

Типичная картина учёта в таблицах: десятки файлов, связанных формулами. Схема условная
Типичная картина учёта в таблицах: десятки файлов, связанных формулами. Схема условная

Сначала попробовали починить таблицы

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

Это дало передышку, но быстро стало понятно, что мы упираемся не в конкретные ошибки, а в потолок самого инструмента. Таблицы и скрипты к ним не рассчитаны на такой объём данных и на такое количество людей, которые работают с ними одновременно. Ещё в первый месяц вместе с клиентом решили переходить на веб-систему.

Почему не готовое решение

Прежде чем начинать разработку, разобрали очевидные альтернативы:

  • Доработать 1С. Компания уже работает в 1С, но чтобы встроить туда сметы, выполнение работ и табели в нужном виде, требовалась серьёзная доработка. По оценке это выходило дороже собственной системы.
  • Взять отраслевую строительную ERP. Нашлось несколько малоизвестных продуктов. Любая доработка под процессы компании — платная и недешёвая, а в шаблонном виде они показывали меньше информации, чем даже старые таблицы.

Получалось, что за коробку пришлось бы платить дважды: сначала за лицензию, потом за переделку под себя. И всё равно подстраивать процессы компании под чужую логику.

Что построили

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

Что внутри:

  • Сотрудники и справочники — единая база людей, объектов, заказчиков и договоров.
  • Сметы — загрузка из XLSX, проверка, расчёт и версии.
  • Выполнение работ — прогресс по каждой позиции сметы и по объекту в целом.
  • Табели — по бригадам, с автоматическим учётом отпусков и больничных.
  • Акты и документы — реестр, статусы, файлы.
  • Отчёты — для руководства, бухгалтерии и HR.
  • Карта объектов — адреса на OpenStreetMap.
  • Обучение — инструкции по работе с системой и регламенты компании.

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

Как устроена система. Схема упрощена
Как устроена система. Схема упрощена

Четыре решения, на которых держится система

1. Сметы с проверкой и версиями

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

Смета на объекте живёт и меняется: добавляются работы, уточняются объёмы, меняются цены. Каждое изменение создаёт новую версию, а предыдущие сохраняются. Всегда можно посмотреть, как выглядела смета месяц назад и кто внёс правку. Никаких файлов «ФИНАЛ_2» и «ФИНАЛ_3».

Смета проходит проверку и расчёт, а каждая правка сохраняется отдельной версией. Схема условная
Смета проходит проверку и расчёт, а каждая правка сохраняется отдельной версией. Схема условная

2. Права доступа, которые настраивает сам клиент

В системе работают руководство, офис, прорабы, бригадиры и подрядчики. У каждой роли — свой набор того, что можно видеть и менять.

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

Администратор сам настраивает, что может видеть и менять каждая роль. Схема условная
Администратор сам настраивает, что может видеть и менять каждая роль. Схема условная

3. Обучение, которое нельзя пропустить

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

Это решает две задачи сразу. Новичок не испортит данные, потому что сначала разберётся, как работать в разделе. А компания получает подтверждение, что человек ознакомился с регламентом, — без бумажных листов с подписями.

Раздел портала открывается только после инструкции и ознакомления с регламентом. Схема условная
Раздел портала открывается только после инструкции и ознакомления с регламентом. Схема условная

4. Табели и акты в одной базе со сметами

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

Как внедряли

Система большая, и запускать её по частям не имело смысла. Если сметы уже в портале, а табели ещё в таблицах, люди работают в двух местах, и данные снова расходятся. Поэтому в работу её нужно было отдать целиком.

Разрабатывали при этом по блокам — каждый следующий опирается на предыдущий:

  1. Сотрудники и справочники, интеграция с 1С, авторизация.
  2. Сметы: загрузка, проверка, расчёт, версии.
  3. Выполнение работ.
  4. Табели, акты, отчёты, обучение.

Каждый месяц показывали клиенту демо: что готово, как работает, что поправить. Это не дало проекту уйти в сторону за восемь месяцев разработки. А отчётная часть по ходу сильно выросла: когда руководство увидело, какие данные теперь собраны в одной системе, появились запросы на отчёты, которые в таблицах сделать было просто невозможно.

От старта до опытной эксплуатации прошло 8 месяцев, полноценный запуск — на 10–11 месяце.

Что получилось

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

Сводный отчёт: было 4–5 минут на каждое построение, стало 5–10 секунд
Сводный отчёт: было 4–5 минут на каждое построение, стало 5–10 секунд
  • Отчёты строятся за 5–10 секунд вместо 4–5 минут — и не нужно ждать заново после каждого фильтра.
  • Ничего не ломается и не зависает. Данные хранятся в одной базе, а не в десятках связанных файлов.
  • Доступы управляются из одного места — через панель ролей, а не вручную по таблицам.
  • Руководители довольны отчётами и сейчас осваивают новые возможности системы.

Уже примерно на пятом месяце, на очередном демо, клиент отметил, что видит, какая сильная система у нас получается. Для нас это лучший промежуточный итог.

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

Технологии

  • Бэкенд: Python, Django
  • Фронтенд: React
  • Данные: PostgreSQL, Redis
  • Фоновые задачи и уведомления в реальном времени: импорт, расчёты, оповещения
  • Интеграции: 1С, корпоративная авторизация, карты, импорт XLSX
  • Инфраструктура: Docker, CI/CD

Когда таблицы пора менять

Google-таблицы — отличный инструмент на старте. Но если вы узнали свою компанию хотя бы в трёх пунктах из списка, скорее всего, вы уже упёрлись в их потолок:

  • у каждого руководителя участка своя таблица, а сводную собирают формулами или вручную;
  • отчёт строится минутами или «подвисает»;
  • в папках лежат файлы с названиями «ФИНАЛ», «копия» и «новая_v3»;
  • выдать или отозвать доступы — отдельная задача на полдня;
  • цифры в своде и на объекте регулярно не совпадают;
  • зарплату и акты сводят руками из нескольких источников.

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

Хотите похожий результат?

Обсудим ваш проект, проведём аудит и предложим архитектуру, которая сэкономит вам деньги.