К содержимому
Кирилл Юсуповработает само.Обсудить задачу

500 страниц PDF раскладываются на 23 файла за минуты. Раньше на это уходил рабочий день

Маркировка «Честный знак»: коды на партию приходят одним PDF, а на складе нужен отдельный файл под каждую модель. Резали руками. Собрал веб-сервис, который делает это сам и сам же сверяет, что ни один код не потерялся и не задвоился.

500 → 23

первый прогон

минуты

вместо дня

авто-сверка

кодов

Задача

Маркировка устроена так: на партию приходит один PDF, внутри лежат коды всех моделей подряд. Складу такой файл бесполезен. Ему нужен отдельный документ под каждую модель, иначе нечего отправлять в печать.

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

Проблема даже не в часах. Ручная нарезка это операция, где ошибку не видно сразу:

  • код может уехать не в тот файл;
  • диапазон может обрезаться на страницу раньше или позже;
  • один и тот же код может попасть в два документа.

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

Как делал: сборка в работе

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

01

Разбор формата

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

02

Правило на бумаге, потом в коде

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

03

Сборка сервиса

Веб-интерфейс с входом по логину: загружаешь файл и получаешь готовые PDF по каждой модели. Ни Python, ни командной строки, ни инструкций на две страницы. Менеджер работает так же, как с любым сайтом.

04

Авто-сверка

Отдельный шаг после нарезки пересчитывает коды: сколько было на входе, сколько разошлось по выходным файлам, нет ли дублей и потерь. Не сошлось, и сервис говорит об этом сразу, до того как файлы уйдут в печать.

05

Прод, а не разовый скрипт

Сервис работает под systemd: поднимается сам после перезагрузки сервера, отдаётся по HTTPS и закрыт логином. Это разница между «однажды запускали» и «этим пользуются».

06

Проверка на живом файле

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

Результат

ЧтоЦифра
Первый прогон: страниц на входе500
Файлов на выходе, разложенных по моделям23
Времени на разбор партииминуты вместо рабочего дня
Проверка кодов100%, каждый код сверяется автоматически, на каждом прогоне
Было / сталорабочий день сотрудника на одну раскладку → минуты
Статусработает каждый день: systemd + HTTPS + вход по логину

Минуты вместо рабочего дня. И ошибиться в этой операции больше негде: раскладку проверяет программа. Сервис делает одно и то же одинаково и сам сообщает, если что-то не сошлось.

Сервис живёт на домене legion-gpu.ru, том же, где собран сайт аренды GPU-серверов с 19+ посадочными и сквозной атрибуцией заявок.

Есть похожая задача?

Напишите в двух-трёх предложениях, что происходит сейчас. Отвечу, реально ли собрать похожее у вас, за сколько и что понадобится с вашей стороны.

Отвечу лично. Без рассылки и обязательного созвона. Можно начать с обезличенных данных.

Как это выглядит

Любой скриншот открывается в полный размер по клику.

Страница входа: содержимое сервиса за логином не показываем.

Стек

Обработка: Python, работа с PDF постранично, сверка кодов как проверяемый инвариант.

Интерфейс: веб-форма с входом по логину, загрузка файла → выдача готового архива по моделям.

Прод: systemd-юнит (автозапуск после перезагрузки), HTTPS, домен компании.

Процесс: сборка агентами: разбор формата → правило → код → проверка на реальной партии.

Короткие ответы по темеЧастые вопросы и ответы, если нужно быстро разобраться.

Коротко о проекте

Что делает сервис «Честный знак», собранный Кириллом Юсуповым?

Это внутренний веб-сервис для ООО «Легион» (legion-gpu.ru/znak/): PDF с кодами маркировки на всю партию автоматически делится по моделям, и сервис сам сверяет, что ни один код не потерялся и не задвоился. Первый прогон: 500 страниц разложены на 23 файла за минуты, хотя раньше на ту же операцию уходил рабочий день сотрудника. Сервис боевой, работает каждый день.

Какие задачи автоматизируются в первую очередь?

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

Чем такой сервис отличается от скрипта на коленке?

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

У вас точно есть такая же рутина

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

Разбор задачи · Москва

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