«Прейскурант» — перенос системы расчёта цен питомника
Реверс-инжиниринг унаследованной сметы в Excel и пересборка расчёта прейскуранта с «умной формулой», которая допускает ручное переопределение цены.
Клиент: Питомник растений (внутренняя система заказчика)
Что было не так
Организация рассчитывает прейскурант на несколько лет вперёд. Цена каждой позиции выводится не с потолка, а считается из локальных смет: стоимость выращивания, заготовки, содержания.
Работала эта конструкция в Excel и накапливалась годами. К моменту начала работы она представляла собой набор файлов с сотнями позиций, где прейскурант ссылался на 17 сметных листов, а как именно устроены эти связи и формулы — нигде не было описано. Люди, которые их закладывали, уже не участвовали в процессе.
При этом агроном подготовил новую сметную базу на следующий период: вместо 17 общих «котловых» смет — 36 детализированных, с разбивкой по возрасту растений, породам (хвойные и лиственные) и типам черенкования.
То есть надо было перевести расчёт со старой сметной базы на новую, более дробную, не сломав цены и не потеряв ни одной позиции. Вручную это неподъёмно и означало бы ошибки в документе, по которому организация работает годами.
Что решили и почему
Решили не латать старый файл, а пересобрать систему расчёта заново — с прозрачной логикой вместо унаследованной.
Первым делом нужно было понять старую конструкцию: разобрать, откуда каждая цена берётся, какие формулы и межлистовые ссылки за этим стоят. Без этого перенос невозможен — иначе непонятно, что именно воспроизводить.
Дальше — сопоставить старые позиции с новой сметной базой: какая позиция какой из 36 новых смет теперь соответствует.
Ключевое проектное решение — «умная формула» с возможностью переопределения. Цена считается из сметы автоматически, но по любой позиции её можно задать вручную, и формулы при этом не ломаются. Без этого система была бы либо жёсткой (нельзя поправить исключение), либо ручной (теряется весь смысл расчёта).
Плюс дашборд, чтобы заказчик управлял базой сам, и документация — потому что система, которую снова никто не понимает, через три года станет той же проблемой.
Как делал
- 01
Реверс-инжиниринг старой системы. Разобрал, как связаны листы, какие формулы и межлистовые ссылки формируют цену. Написал скрипты извлечения и трассировки связей, потому что глазами это не читается.
- 02
Провёл по-листовой анализ: что содержится в старом архиве против новых смет, оформил отчётом для заказчика.
- 03
Составил маппинг позиций: сопоставление старой базы с новой, оформил отдельным файлом для сверки заказчиком.
- 04
Собрал список вопросов агроному по ценообразованию — там, где логика не выводилась из файлов, её нужно было получить от предметного специалиста, а не додумать.
- 05
Реализовал сборку новой базы скриптами. Работа шла итерациями — каждая версия проверялась на целостность формул и сходимость цифр, после чего собиралась следующая.
- 06
Настроил «умную формулу» с переопределением цены по позиции.
- 07
Прогнал проверки целостности: сходятся ли формулы, не потерялись ли ссылки, совпадают ли расчётные суммы со сметами. Отдельно — краш-тест перед сдачей.
- 08
Собрал дашборд для управления базой.
- 09
Написал сопроводительное письмо, инструкцию по работе с файлами и бриф, чтобы систему могли вести без меня.
Стек проекта
- Python + openpyxl — чтение, анализ и сборка книг Excel
- Скрипты трассировки формул и межлистовых ссылок — восстановление недокументированной логики
- Автоматический маппинг позиций между старой и новой сметной базой
- «Умная формула» с override — расчёт из сметы плюс ручное переопределение по позиции
- Скрипты проверки целостности — сходимость формул, сохранность ссылок, сверка сумм
- COM-автоматизация Excel — операции, недоступные через обычную запись файла
- Дашборд управления базой
- Документация: маппинг для заказчика, инструкция, бриф, вопросы предметному специалисту
Результат
Разрозненные Excel-файлы сведены в связанную базу с прозрачным расчётом.
Прейскурант переведён со старой сметной базы на новую, детализированную, с сохранением корректности цен.
Каждая позиция связана со сметой — видно, откуда взялась цифра.
Заказчик управляет базой через дашборд и может переопределить цену вручную, не ломая формулы.
Помимо базы переданы инструкция и бриф — систему можно вести без разработчика.
Похожие кейсы
hellodze.pro — собственная платформа услуг
Платформа услуг с сегментными посадочными, экспресс-разбором сайта как лид-магнитом и защитой от SSRF.
«Прейскурант» — перенос системы расчёта цен питомника
Реверс-инжиниринг унаследованной сметы в Excel и пересборка расчёта прейскуранта с «умной формулой», которая допускает ручное переопределение цены.