Автоматизировали ввод смет в 1С: 7000 позиций за 7 дней вместо 2 месяцев

У знакомого есть консалтинговая компания по внедрению продуктов 1С в бизнес и он поделился болью — у его заказчика — среднего размера строительной компании необходимо внести в систему порядка нескольких сотен смет в xlsx формате в 1С конфигурацию, которую они внедряют.

Сложность в том, что другие инженерные отрасли сильно отстают от IT в плане культуры разработки. Во времена моей юности по ФИДО ходила присказка «Если бы строители строили дома, как программисты пишут программы, то первый же залетевший дятел разрушил бы цивилизацию». Скорее всего автор этого афоризма никогда не был знаком с реальными строителями. Сейчас скорее наоборот — если бы строители писали программы, мы бы не вышли из эпохи арифмометров. Мы в IT приучены к тому, что ревью кода не пропустил коммит с лишним пробелом.

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

Дело осложняется тем, что одно и то же наименование может быть записано разными сметчиками по‑разному. Где просто бетон, где бетон с указанием марки, слова в разном порядке, часто одно и то же наименование, но записано и вовсе разными терминами, где синтаксический анализатор бессилен, при том что термины для неспециалиста неочевидные и незнакомые.

Традиционный автоматический импорт в сметной документации невозможен. В итоге 6 сметчиков вводили одну строительную очередь больше 2-х месяцев — бюджет для компании‑внедренца около 2-х миллионов.

Мне пришлось довольно долго уговаривать заказчика попробовать использовать LLM для автоматизации ввода. Хотя бы попробовать. В конце концов он сказал — у нас сотрудники таким точно заниматься не будут. Хочешь — делай сам! Я попросил за свою работу за следующую строительную очередь 200 тысяч рублей. Мне был ответ — отлично — для нас экономия в 10 раз если справишься. Я ответил — хорошо, но ты даёшь мне одного сметчика в полное подчинение и я полностью организовываю бизнес‑процессы. На том и порешили.

Итак, процесс был следующим:

Первым делом я попросил ChatGPT проанализировать массив смет и определить структуру в формате JSON. Шаг вроде довольно простой, но оказалось что структура всё же древовидная, и нужно было придумать промежуточный формат, который можно было легко редактировать

Шаг два — попросил написать промпт, который анализирует каждый по отдельности xlsx файл и возвращает JSON в формате заданной мной структуры

Шаг три — попросил LLM написать на пайтон скрипт, который конвертирует в xlsx JSON из второго шага

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

Не буду дальше грузить техническими подробностями, скажу только что в итоге пришел к следующему формату — генерирую промежуточную csv из xlsx, запускаю там серию скриптов, которая автоматически правит типичные ошибки сметчиков, делаю там правки, перевожу csv => json => xlsx — даю на проверку сметчикам. Если xlsx верна, то и данные по этому участку сметы верны. На этот этап ушло порядка 2-х недель и дюжины скриптов — фильтров.

Ок, — сказал заказчик. — Со структурой смет разобрались. Что делать с номенклатурой — как её нормализовать? Я ответил: не переживай, LLM и не с таким справлялась. За день, посоветовавшись с ChatGPT, собрал пайплайн: из JSON‑массива извлекаю актуальную номенклатуру; есть таблица (словарь) нормализованной номенклатуры; получаю семантические эмбеддинги; по косинусному сходству для каждой позиции актуальной номенклатуры выбираю топ-10 кандидатов из словаря; затем самой дешёвой подходящей моделью OpenAI делаю rerank и выбираю одно лучшее соответствие; формирую XLSX и отдаю сметчикам на проверку.

В итоге оказалось что примерно в 80% GPT справился на «отлично», 10% сметчице пришлось исправлять и 10% дополнять. На обработку 7000 позиций у неё ушла примерно неделя.

Финальный пайплайн следующий — я беру массив входных xlsx => конвертирую в csv => делаю постобработку и ручные правки => json => xlsx => правки xls => опять правки csv => финальный JSON

Из JSON беру актуальную смету => словарь соответствия с нормализованной сметой LLM => правки сметчицы => финальный словарь

Дальше беру финальный словарь накладываю на JSON => проверка на целостность данных => финальная проверка сметчиками => передача на загрузку в 1С

На первую смету у меня ушло примерно 3 недели на круг, с согласованием и ресерчем. В течение нескольких месяцев было ещё несколько таких заказов и я справлялся со сметчицей уже за неделю. Там уже работа была отработана и заказчик начал сетовать что дескать слишком уж много ты зарабатываешь своим вайбкодингом. На что был ответ — подожди, я сократил твои расходы в 10 раз, ты много рассказываешь строителя о сокращении издержек?

В итоге без шума и пыли в общей сложности за пару месяцев работы удалось «залутить» порядка 1 млн рублей, при том что пайтон я знаю на уровне «читаю и перевожу со словарём». Был ли там «говнокод»? Скорее всего был, я почти не смотрел. Но для проекта это не важно, почти все скрипты были одноразовые, человеку и тем более команде не нужно было с ними работать.

Комментарии (21)


  1. Kamil_GR
    11.11.2025 18:19

    Крайне сомнительно.

    Особенно про косинусное сходство.


  1. Wesha
    11.11.2025 18:19

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


    1. youscriptor Автор
      11.11.2025 18:19

      Вы статью прочитали, или не глядя минусуете все что связано с ЛЛМ? Все сгенерированное проходило двухэтапную проверку инженерами ПТО. Собственно как и в любом другом процесс профессионального создания/внедрения ПО необходим отдел тестирования.


      1. Wesha
        11.11.2025 18:19

        Вот Вы, скажем, строитель — каково Вам будет читать статью «я построил бытовку из пучков ивовых прутьев, которые перевязал подарочными лентами и для красоты завязал бантиками. Этот каркас обмазал слоновьим помётом. Как подсохло — для красоты изнутри стены обшил гипсокартоном, загляденье! Три маляра пытались её повалить — ничего у них не вышло; походили, поцокали языками и порадовались, как красиво получилось! Третий день стоит — и всё в порядке!».

        А настоящий строитель (а не тот, который каску на стройке нашёл), рассматривая Вашу бытовку, только пальцем у виска покрутит да плечами пожмёт.

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


        1. youscriptor Автор
          11.11.2025 18:19

          Реальные строители как раз были вполне довольны, что я сократил им расход и снял головную боль. А уж настоящий ли программист "вайбкодер" или нет, для них дело десятое. Если у кого-то есть похожие проблемы с обработкой большого объема документов пишите в личку - поможем. Быстро и недорого. А красоту кода оставим любителям спортивных it-соревнований. Бизенс - это больше про деньги.


          1. Wesha
            11.11.2025 18:19

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

            Вопрос не в красоте. Давайте просто дождёмся первого уголовного дела.

            (Дело вот в чём: если код пишу я — я отвечаю всем своим опытом и репутацией, что он делает именно то, что от него требуется. В самом крайнем случае — на меня хотя бы в суд подать можно.

            А чем отвечает Ваш бредогенератор — это уж Вам видней.)


          1. fixikus
            11.11.2025 18:19

            А красоту кода оставим любителям спортивных it-соревнований. Бизенс - это больше про деньги.

            Да мы даже не сомневаемся, с учетом того говностроя, что сейчас в строительной отрасли устроили


  1. sergeym69
    11.11.2025 18:19

    Вы все не уйметесь? Щаз вам опять минусов накидают.

    Лучше напишите статью как на своем компе запустить среднюю модель типа GLM-4.5-Air чтобы более менее быстро работало и подключить к VS Code, Cursor и т.п, чтобы удобно вайбкодить.

    Тогда будут плюсовать.


  1. anshdo
    11.11.2025 18:19

    Хоть в целом я довольно скептически отношусь к LLM-кодингу, но вот это как раз тот класс задач, где LLM применять можно и нужно, на таких задачах они максимальный выхлоп дают. Потому что с одной стороны, руками это делать долго и нудно (хотя и не сложно), а с другой стороны, перетаскивание данных из одной структуры в другую — это то, с чем LLM довольно хорошо справляются.


  1. fndrey357
    11.11.2025 18:19

    Смета в 1С - зачем?


    1. economist75
      11.11.2025 18:19

      Для 214-ФЗ. Банк платит по смете и калплану. Если хочется платеж согласовывать не 4 часа, а 4 минуты - и не так раскорячшься. Реквизиты Сметы/Плана в Платежном поручениее в "Назначение платежа" и делают это волшебное ускорение в 60 раз.


  1. nerudo
    11.11.2025 18:19

    Увидел разнорабочего - дай пендаля. Увидел прораба - дай в морду. Всегда есть за что.


  1. DaneilDem
    11.11.2025 18:19

    Что то сомневаюсь что так все разнородно по формату у смет, есть типовые формы утвержденные минстроем, практически все программы выпускают в стандартных формах, сделать парсер для Excel не сложно. Есть формат госэксперизы. По подбору расценок ФЕР, ГЭСН, через LLM пробовал на реальных требованиях, справятся хуже некуда, хотя утверждает очень уверенно


    1. economist75
      11.11.2025 18:19

      Использование парсинга и LLM может идти только после "прямой аналитики" на обычном кодинге смет из к-либо ГрандСметы (python + pandas для чтения и агрегации Excel-форматов).

      Но LLM почти неизбежны из-за лени и множества похожих сущностей, появляющихся вследствие отказа/отсутствия удобных единых классификаторов нац. уровня для всего: статей затрат, названий материалов, работ, объектов ОКС итд. "Кто-во-что". Имеющиеся Справочники расценок и тарифов неудобны, факультативны, недоступны по API. Поэтому ТС молодец, проблемы подсветил верно и способ решения выбрал современный. Современная задача осмечивания двояка и противоречива в своей сути: нужно посчитать правильно и заложить "фонари", причем за одну итерацию.


      1. fixikus
        11.11.2025 18:19

        Интересный у вас вывод конечно, говнокод говнокодом править


    1. fixikus
      11.11.2025 18:19

      Если нужно скрыть расходы и рапилы, в документах всегда бардак будет, автор статьи это понимает, просто нам лапшу на уши вешает, а если спалят, то это все llm, он же в код не лез


  1. fixikus
    11.11.2025 18:19

    Автор типичный строитель, с математикой и логикой у него проблемы, как и с подачей информации. Написано в шапке "за 7 дней" и 200к, в итоге: "в итоге без шума и пыли в общей сложности за пару месяцев работы удалось «залутить» порядка 1 млн рублей". Это первое, второе - "Был ли там «говнокод»? Скорее всего был, я почти не смотрел. Но для проекта это не важно, почти все скрипты были одноразовые, человеку и тем более команде не нужно было с ними работать." То есть для следующего заказчика не факт, что взлетит? Или что? Я так понял это одноразовая поделка для конкретного зазчика? Для другого надо снова "7 дней и 200к" которые, возможно выйльются в x2 или даже x4 к "за пару месяцев работы удалось «залутить» порядка 1 млн рублей".


    1. z-sis-z
      11.11.2025 18:19

      Автор точно не строитель, но думает, что понял их боль. Видимо где-то рядом с 1С-внедрителями вращается.


  1. z-sis-z
    11.11.2025 18:19

    Я не понял, это шутка? Парень спарсил из относительно небольших экселек данные и решил этим похвастаться на Хабре? Тут столько дилетантизма и не учтенных подводных валунов, что надо писать отдельную статью в ответ о том что здесь могло пойти нет так (скорее всего и пошло). Автор явно не в курсе что сейчас твориться на рынке стройсофта для смет. Про госрегулирование умолчу. Но я в какой-то мере рад за него, найти такого Зака и "залутить" с него лимон... По мне прекрасный симбиоз. Пожелаем им удачи.


    1. youscriptor Автор
      11.11.2025 18:19

      Вы правы, я не строитель. Задача парсинга не сложная, но объемная. Я бы не брался без LLM, слишком нудно. Кроме того, главная задача была в сопоставлении номенклатуры, без нейросетей он в принципе не решаема. Вернее, решаема вручную. У заказчика не было сметных программ, нужно портирование экселек в самописную 1С конфигурацию. Все подводные камни учтены, за это и было заплачено, результат был проверен инженерами ПТО и утвержден, так что ответственность на них, а не на LLM.


      1. Wesha
        11.11.2025 18:19

        Иными словами, всё упирается в нежелание платить специалисту.

        Вам не повезло. Специалист, который лечит, в отъезде, но есть второй — не хуже
        Лучше договориться лично. Хотя можно и по направлению.
        У нас только по пропускам. Хотя можно пройти и так.
        Лечение стоит дорого, но можно и не платить.
        Нянечкам, сестрам обычно платят, но они ухаживают и так.
        Поэтому я вам советую подождать специалиста, договориться с нянечкой и заплатить.
        Но можно этого и не делать. Если вас не интересует результат.

        © Жванецкий.