Инструменты и автоматизация
Автоматизация

«Прейскурант» — перенос системы расчёта цен питомника

Реверс-инжиниринг унаследованной сметы в Excel и пересборка расчёта прейскуранта с «умной формулой», которая допускает ручное переопределение цены.

Клиент: Питомник растений (внутренняя система заказчика)

Реверс-инжиниринг Excel-формул«Умная формула» с overrideДашборд управления базойДокументация для заказчика
17
Смет было
36
Смет стало

Что было не так

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

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

При этом агроном подготовил новую сметную базу на следующий период: вместо 17 общих «котловых» смет — 36 детализированных, с разбивкой по возрасту растений, породам (хвойные и лиственные) и типам черенкования.

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

Что решили и почему

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

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

Дальше — сопоставить старые позиции с новой сметной базой: какая позиция какой из 36 новых смет теперь соответствует.

Ключевое проектное решение — «умная формула» с возможностью переопределения. Цена считается из сметы автоматически, но по любой позиции её можно задать вручную, и формулы при этом не ломаются. Без этого система была бы либо жёсткой (нельзя поправить исключение), либо ручной (теряется весь смысл расчёта).

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

Как делал

  1. 01

    Реверс-инжиниринг старой системы. Разобрал, как связаны листы, какие формулы и межлистовые ссылки формируют цену. Написал скрипты извлечения и трассировки связей, потому что глазами это не читается.

  2. 02

    Провёл по-листовой анализ: что содержится в старом архиве против новых смет, оформил отчётом для заказчика.

  3. 03

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

  4. 04

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

  5. 05

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

  6. 06

    Настроил «умную формулу» с переопределением цены по позиции.

  7. 07

    Прогнал проверки целостности: сходятся ли формулы, не потерялись ли ссылки, совпадают ли расчётные суммы со сметами. Отдельно — краш-тест перед сдачей.

  8. 08

    Собрал дашборд для управления базой.

  9. 09

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

Стек проекта

  • Python + openpyxlчтение, анализ и сборка книг Excel
  • Скрипты трассировки формул и межлистовых ссылоквосстановление недокументированной логики
  • Автоматический маппинг позиций между старой и новой сметной базой
  • «Умная формула» с overrideрасчёт из сметы плюс ручное переопределение по позиции
  • Скрипты проверки целостностисходимость формул, сохранность ссылок, сверка сумм
  • COM-автоматизация Excelоперации, недоступные через обычную запись файла
  • Дашборд управления базой
  • Документация: маппинг для заказчика, инструкция, бриф, вопросы предметному специалисту

Результат

Разрозненные Excel-файлы сведены в связанную базу с прозрачным расчётом.

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

Каждая позиция связана со сметой — видно, откуда взялась цифра.

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

Помимо базы переданы инструкция и бриф — систему можно вести без разработчика.

Похожие кейсы

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

Напишите, что у вас сейчас делают руками — отвечу лично.

Написать