Nubora

Свод смет: как мы убрали ручную сверку КС-2 в Excel

История утилиты Nubora «Свод смет»: зачем понадобился десктоп, как он собирает сметы КС-2 из баз ТСН и ФЕР в готовые итоги по статьям затрат и ведомости ресурсов.

Свод смет: как мы убрали ручную сверку КС-2 в Excel

Есть класс задач, которые живут не в вебе, а на рабочем ноутбуке сметчика. Сведение актов выполненных работ КС-2 — ровно такой случай. Исходники приходят файлами Excel из двух баз, ТСН и ФЕР, позиции повторяются, материалы идут отдельными строками, НДС нужно начислить вручную. Пока сметы две — это полчаса. Когда их десятки — это уже вечер и высокий шанс ошибиться. Так появилась утилита «Свод смет».

Почему не веб-сервис

Первое, что хочется сделать с болью в Excel, — вынести её в веб. Но у смет есть две особенности: данные конфиденциальны, а формат жёстко задан и не собирается меняться под нас. Загружать коммерческие сметы на чужой сервер ради экономии одного вечера — не тот размен. Поэтому «Свод смет» — это локальная десктоп-утилита: файлы не покидают машину пользователя, интернет для работы не нужен.

Что делает программа

«Свод смет» читает все файлы .xlsx из выбранного каталога, определяет базу каждой сметы и собирает результат в один выходной файл. На вход — акты КС-2, на выходе — готовые таблицы:

  • Итоги по статьям затрат. Суммы по ЗП, ЭМ, ЗПМ, МР, НР и СП, а также трудозатраты рабочих и механизаторов в чел.-ч — отдельно для каждой присутствующей базы.

  • Ведомость ресурсов. Трудовые ресурсы, машины и механизмы, материалы — с объёмом в натуральных единицах и суммой в рублях.

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

  • Материалы. Отдельный лист с материалами по файлам-источникам.

  • Лист «НДС и коэффициент». Что именно применили к итогам, по какой формуле и к каким колонкам — чтобы в выгрузке не осталось необъяснимых цифр.

Листы по базам создаются только для тех баз, которые реально встретились: если в папке одни сметы ТСН, лишних пустых листов «ФЕР» в файле не будет.

Дополнительные материалы и группировка

Отдельная головная боль смет — материалы, которые идут под расценкой отдельными строками и формально не входят в статью МР. Программа сворачивает их в колонку МР работы, а на сводных листах показывает отдельными строками с нумерацией 1, 1.1, 1.2 — сразу видно, из чего сложилась позиция. Строки с отрицательным итогом, давальческие вычеты, выделяются цветом.

Наименования работ в разных файлах часто совпадают. На листах «Итоги по статьям» программа группирует такие позиции и суммирует результат, не смешивая базы ТСН и ФЕР. А вот единая сводная таблица намеренно ничего не схлопывает: там важна прослеживаемость до исходного файла.

НДС и коэффициент

Исходные сметы приходят без НДС. Поэтому ставка НДС и коэффициент заданы отдельными параметрами и применяются к денежным итогам по формуле сумма × коэффициент × (1 + НДС / 100). Натуральные объёмы, чел.-ч и маш.-ч не меняются — корректируются только деньги. По умолчанию параметры ничего не меняют: НДС 0, коэффициент 1.

Как это устроено

Технологический выбор здесь прагматичный, под задачу локальной утилиты:

  • Python 3.14 — разбор и сборка Excel, кроссплатформенность, быстрый цикл правок.

  • openpyxl — чтение и формирование .xlsx.

  • CustomTkinter — графический интерфейс поверх стандартного Tkinter, без тяжёлых зависимостей.

  • PyInstaller — сборка в один исполняемый файл для Windows, macOS и Linux: у пользователя не должно быть ни Python, ни файлов рядом.

Логика не дублируется между режимами: консольный запуск и GUI вызывают один и тот же pipeline. GUI добавляет только ввод параметров, фоновую обработку с прогресс-баром и журналом — окно не зависает на больших наборах смет — и кнопку «Открыть файл» после завершения. Последние параметры сохраняются между запусками.

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

Итог

«Свод смет» — утилита, которая делает одну работу и делает её полностью: открыть папку со сметами, нажать «Обработать» и получить готовый Excel-файл для сверки и передачи в учёт. Это тот случай, когда правильное решение — не веб-сервис, а аккуратный локальный инструмент, который просто не мешает считать.

Хотите что-то похожее?

Прочитали про уроки, запуск или созданную программу и захотели получить или сделать что-то похожее? Напишите — обсудим задачу, предложим решение и оценим проект.

Нажимая кнопку, вы подтверждаете согласие с условиями обработки данных.