Кейс: автоматизация план-факт сверки на пищевом производстве
Пищевое производство (FMCG), 3 площадки, 200+ SKU. Ежедневная план-факт сверка занимала 4 часа ручной работы в Excel: выгрузки из 1С, сопоставление с планом, поиск отклонений, формирование отчёта для руководства. После автоматизации на Python — 15 минут вместо 4 часов, ошибки сократились на 40%.
Задача: что было до автоматизации
Ручной процесс, который занимал 4 часа каждый день и генерировал ошибки.
Ручной сбор данных
Плановик каждое утро выгружал данные из 1С по трём площадкам, копировал в единый Excel-файл, сопоставлял с плановыми значениями. На сбор и подготовку уходило 2-2,5 часа.
Ручная сверка и анализ
После сбора — ручное сравнение: что выпущено, что отклонилось от плана, по каким позициям и линиям. Поиск причин отклонений, комментарии по каждой позиции. Ещё 1-1,5 часа.
Ошибки и задержки
Ошибки копирования: не та ячейка, устаревшая версия плана, пропущенные строки. Отчёт для руководства иногда опаздывал на 1-2 часа. При отпуске плановика сверка не делалась вообще.
Подход: от пилота к промышленному контуру
Три этапа: пилот на одной площадке, масштабирование, мониторинг.
Этап 1. Пилот: одна площадка, один отчёт (3 недели)
Python-скрипт забирает данные из 1С через API, сопоставляет с планом (Excel-файл), рассчитывает отклонения по каждой позиции и линии, генерирует готовый Excel-отчёт с подсветкой критических отклонений. Запуск по расписанию в 7:00.
Этап 2. Масштабирование: все площадки (4 недели)
Подключение двух оставшихся площадок: адаптация конфигурации под разные структуры данных в 1С, единый отчёт с разбивкой по площадкам. Добавлены валидации: проверка полноты данных, алерт при расхождениях > 10%.
Этап 3. Мониторинг и сопровождение
Логирование каждого запуска, алерты в Telegram при сбоях, панель мониторинга с историей отклонений для руководства. Передача документации и регламента сопровождения внутренней команде.
Результаты
Измеримые улучшения после автоматизации план-факт сверки.
-85% времени
Вместо 4 часов ручной работы — 15 минут на проверку автоматического отчёта. Плановик переключился на анализ причин отклонений вместо сбора данных.
-40% ошибок ввода
Автоматический сбор данных из 1С исключил ручное копирование. Ошибки ввода сократились с 3-5% до менее 1% (оставшиеся — ошибки в исходных данных 1С).
ROI за 3 месяца
Стоимость проекта (пилот + масштабирование) окупилась за 3 месяца за счёт экономии времени плановика и снижения потерь от ошибок в отчётности.
Технический стек подробнее
Выбор инструментов определялся тремя факторами: наличие API в 1С (через COM-объект и HTTP-сервисы), необходимость ежедневного автоматического запуска и требование к формату отчёта — Excel с формулами и условным форматированием, привычный для руководства.
Python + openpyxl + pandas
Основной стек — Python 3.11 с библиотеками pandas (трансформация и агрегация), openpyxl (генерация Excel с условным форматированием), requests (HTTP-запросы к 1С). Pandas позволил описать логику сверки декларативно: merge плановой и фактической таблиц по ключам (SKU + площадка + дата), расчёт отклонений через vectorized-операции. Время выполнения полного цикла по трём площадкам — 40-90 секунд в зависимости от объёма данных.
Интеграция с 1С
На стороне 1С был опубликован HTTP-сервис, возвращающий JSON с данными выпуска за указанную дату. Формат: массив записей с полями SKU, площадка, линия, план, факт, единица измерения. Аутентификация — базовая (логин/пароль сервисного пользователя). Для каждой площадки — свой endpoint, потому что базы 1С были отдельными. Унификация структур данных — одна из самых трудоёмких задач: на одной площадке SKU хранились как строки, на другой — как числовые коды.
Планировщик и алерты
Запуск по расписанию — через cron (Linux-сервер в контуре компании). Логирование — Python logging в файл + ротация. При ошибках (недоступность 1С, неполные данные, превышение порога расхождений) отправлялось сообщение в Telegram-канал через Bot API. Для руководства — готовый Excel-файл выкладывался на сетевой диск и дублировался ссылкой в корпоративный мессенджер.
Метрики до и после: детальное сравнение
Ниже — конкретные цифры, которые мы фиксировали на протяжении первых 6 месяцев после запуска автоматизации. Замеры проводились еженедельно.
Время подготовки отчёта
До: 3,5-4,5 часа ежедневно (сбор данных — 2-2,5 ч, сверка — 1-1,5 ч, оформление — 30 мин). После: 15-20 минут на проверку и комментирование автоматического отчёта. Экономия — 3,5 часа в день, или примерно 70 часов в месяц. Плановик перераспределил время на анализ причин отклонений и работу с производственными участками.
Ошибки в данных
До: 3-5% записей содержали ошибки копирования (неправильная ячейка, устаревший план, дубли строк). В среднем 2-3 ошибки в день, которые обнаруживались только при разборе с руководством. После: менее 0,5% ошибок, и все они — ошибки в исходных данных 1С (непроведённые документы, задержки ввода). Автоматическая валидация выявляет такие случаи и помечает их в отчёте жёлтым цветом.
Покрытие и устойчивость
До: при болезни или отпуске плановика сверка не выполнялась 1-3 дня. При параллельной загрузке (совещания, выезды) отчёт опаздывал на 1-2 часа. После: отчёт генерируется автоматически каждый день в 7:00, включая выходные (для сменного производства). За 6 месяцев — 0 пропущенных отчётов. Единственный сбой (недоступность 1С из-за обновления) был выявлен алертом в 7:02 и устранён за 20 минут.
Совет. Фиксируйте метрики «до» ещё на этапе пилота — до начала разработки. После запуска сравнивать будет поздно: люди быстро забывают, «как было раньше», и эффект невозможно доказать без базовой линии.
Типичные ошибки при автоматизации план-факт сверки
За время проекта и последующего сопровождения мы столкнулись с рядом проблем, которые типичны для подобных задач. Вот что стоит учесть заранее.
Ошибка 1: автоматизировать «как есть»
Соблазн — просто перенести ручной процесс в код. Но ручной процесс часто содержит обходные пути и неявные правила, которые плановик держит в голове. Например, на одной площадке плановик вручную исключал из сверки «технологические партии» (пробные запуски), а на другой — учитывал их. Без формализации этих правил автоматизация даёт некорректные цифры. Решение: перед разработкой провести 2-3 интервью с плановиком и зафиксировать все неявные правила.
Ошибка 2: игнорировать задержки проведения в 1С
Данные в 1С появляются не мгновенно: документы проводятся с задержкой (от 30 минут до конца смены). Если скрипт запускается в 7:00, а часть документов за вчерашний день ещё не проведена — отчёт покажет ложное отклонение. Решение: добавить «буфер ожидания» (запуск в 7:00, но данные берутся за позавчера) или quality gate, который проверяет полноту (сумма факта >= 90% от типичного дневного объёма).
Ошибка 3: не предусмотреть изменение плана
План производства — не статичный документ. Он корректируется 2-3 раза в неделю. Если скрипт берёт план из фиксированного Excel-файла, а плановик обновил его вчера вечером — сверка идёт по устаревшему плану. Решение: хранить план в 1С или в отдельной базе с версионированием, а не в Excel-файле на сетевом диске. Если 1С невозможна — минимально: автоматическая проверка даты модификации файла плана и алерт при несовпадении.
Совет. Заведите «журнал инцидентов» с первого дня работы автоматизации. Каждый ложный алерт, каждое расхождение с ожиданием — записывайте причину и решение. Через месяц у вас будет готовый FAQ для внутренней команды.
Уроки и рекомендации
Что узнали в процессе и что советуем учесть на старте похожего проекта.
Начинайте с одной площадки
Пилот на одной площадке позволил быстро отладить логику, найти нестыковки в данных 1С и зафиксировать паттерны. Масштабирование на остальные площадки прошло в 2 раза быстрее.
Валидация данных — обязательна
В 1С данные не всегда полные: бывают пустые поля, задержки проведения документов. Quality gates (проверка полноты перед сверкой) спасли от нескольких ложных алертов.
Передавайте знания
Документация, регламент сопровождения и обучение внутренней команды — не "потом", а часть проекта. Без этого автоматизация становится новой зависимостью от подрядчика.