Как автоматизировать обработку заявок в 1С: Бизнес-процессы или своя система на документах?

Программист 1С v8.3 (Управляемые формы) Управленческий учет Сфера услуг, туризм и социальный сектор
← На главную

Перед многими разработчиками и аналитиками встает задача автоматизации внутренних процессов компании, таких как обработка заявок, согласование документов или управление ремонтами. Часто возникает вопрос: какой инструмент платформы 1С лучше всего подходит для этого? Нужно ли углубляться в механизм Бизнес-процессов или можно обойтись более привычными объектами — документами и регистрами? Рассмотрим эту дилемму на примере конкретной задачи: автоматизация приема и контроля выполнения заявок на ремонт.

Исходная ситуация такова:

  1. Поступает заявка, по которой требуется выполнить ряд действий.
  2. Ответственный создает главный документ, например, "Длительный ремонт", в котором описывает этапы и назначает исполнителей. Для каждого этапа создается свой подчиненный документ.
  3. Исполнители выполняют свою часть работы и фиксируют результат.
  4. Ответственный проверяет результаты и принимает решение о закрытии заявки.

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

Решение 1: Использование механизма "Бизнес-процессы и Задачи"

Это стандартный, "коробочный" механизм платформы 1С, специально созданный для формализации последовательных действий сотрудников. Он идеально подходит для процессов с четко определенным маршрутом.

Как это работает в нашем случае?

Основной процесс "Обработка заявки" может выглядеть так:

  1. Старт: Процесс запускается при создании новой заявки.
  2. Точка действия "Принять решение": Первому ответственному ставится задача принять заявку в работу и создать основной документ "Длительный ремонт".
  3. Точка действия "Выполнение этапов": Здесь кроется ответ на главный вопрос о множестве исполнителей. Вместо того чтобы усложнять основную схему, мы можем использовать вложенные бизнес-процессы. После создания документа "Длительный ремонт" основной процесс анализирует его табличную часть с этапами и для каждой строки запускает отдельный, дочерний бизнес-процесс, например, "Выполнение этапа ремонта". Таким образом, если в ремонте 5 этапов, система запустит 5 параллельных или последовательных подпроцессов, каждый со своей задачей для конкретного исполнителя.
  4. Точка ожидания: Основной процесс будет ждать, пока все дочерние процессы не завершатся.
  5. Точка действия "Принять работу": После выполнения всех этапов ответственному ставится задача проверить результат и принять решение.
  6. Завершение: В зависимости от решения, заявка либо закрывается, либо уходит на доработку.

Большим преимуществом этого подхода является наглядность. Вся логика процесса видна на Карте маршрута — визуальной схеме, которую легко понять и аналитику, и руководителю. Это значительно упрощает как первоначальную разработку, так и последующую поддержку и модификацию.

Решение 2: Альтернативный подход на документах, статусах и регистрах

Этот подход предполагает отказ от объекта Бизнес-процесс в пользу собственной логики, построенной на более простых и знакомых каждому 1С-разработчику объектах. Этот способ отличается высокой гибкостью.

Как выстроить такую систему?

  1. Создаем объекты:
    • Документ Заявка с реквизитом-перечислением Статус ("Новая", "В работе", "Выполнена", "Закрыта", "Отклонена").
    • Документ ЭтапРемонта (или Заказ-наряд), который подчинен Заявке. У него тоже есть свой реквизит Статус ("Запланирован", "В работе", "На проверке", "Выполнен").
    • Регистр сведений ИсторияСтатусовЗаявок для отслеживания, кто, когда и какой статус установил.
  2. Прописываем логику:

    Вся логика управления процессом "зашивается" в код, в основном в модули документов. Например, при проведении документа ЭтапРемонта со статусом "Выполнен", система должна проверить, все ли остальные этапы по родительской Заявке также выполнены. Если да, то можно автоматически изменить статус самой Заявки на "Выполнена".

  3. Реализуем уведомления:

    Поскольку встроенного механизма задач у нас нет, систему уведомлений нужно создавать самостоятельно. Это можно сделать с помощью подписок на события. Например, при записи документа ЭтапРемонта в статусе "Запланирован" срабатывает подписка, которая отправляет уведомление назначенному исполнителю через встроенный "Центр оповещений" или по электронной почте.

  4. Организуем работу пользователей:

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

Как контролировать выполнение задач?

Независимо от выбранного подхода, возникает важный практический вопрос: как убедиться, что пользователь не просто нажал кнопку "Выполнено", но и реально совершил требуемое действие (например, создал документ)?

Проанализируем несколько способов решения этой проблемы:

  1. Программная проверка при выполнении. Это самый надежный способ. Если мы используем бизнес-процессы, то в обработчике ОбработкаПроверкиВыполнения задачи можно написать код, который проверяет наличие связанного документа. Если документ не найден или не заполнен, выполнение задачи блокируется, и пользователю выводится сообщение.
  2. 
    // Пример проверки в модуле Задачи
    Функция ОбработкаПроверкиВыполнения(Отказ, ТочкаМаршрутаБизнесПроцесса, ИмяКартыМаршрута)
        
        // Предполагаем, что при создании документа мы в него записали ссылку на нашу задачу
        Запрос = Новый Запрос;
        Запрос.Текст = 
            "ВЫБРАТЬ
            |   ЭтапыРемонта.Ссылка
            |ИЗ
            |   Документ.ЭтапРемонта КАК ЭтапыРемонта
            |ГДЕ
            |   ЭтапыРемонта.ЗадачаИсполнителя = &Задача";
        
        Запрос.УстановитьПараметр("Задача", Ссылка);
        
        Результат = Запрос.Выполнить();
        
        Если Результат.Пустой() Тогда
            Сообщить("Необходимо создать и провести документ 'Этап ремонта' перед выполнением задачи!");
            Отказ = Истина;
            Возврат Ложь;
        КонецЕсли;
        
        Возврат Истина;
        
    КонецФункции
    
  3. Автоматизация создания документов. Чтобы минимизировать человеческий фактор, бизнес-процесс может сам создавать черновик нужного документа и открывать его форму пользователю. Исполнителю останется только заполнить поля и нажать "Провести".
  4. Создание "Рабочего места" (АРМ). Для пользователя создается специальная форма, где он видит список своих задач. Кнопка "Создать документ" на этой форме будет сразу программно связана с выбранной задачей, что гарантирует их взаимную увязку. А кнопка "Сохранить" в самом документе может не только проводить его, но и автоматически выполнять связанную с ним задачу. Это делает интерфейс интуитивно понятным и снижает количество ошибок.

Сравнительная таблица подходов

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

Критерий Бизнес-процессы и задачи Система на регистрах и документах
Сложность разработки Требует изучения механизма БП. Первоначальная настройка может быть сложнее. Проще для разработчиков, хорошо знакомых с созданием документов и регистров.
Гибкость Менее гибкий. Изменение логики требует перерисовки карты маршрута и может быть проблематичным для уже запущенных процессов. Очень гибкий. Логику смены статусов и обработку событий можно легко изменять программно.
Наглядность Высокая. Карта маршрута наглядно представляет весь процесс для всех участников. Низкая. Вся логика "зашита" в коде и не очевидна для аналитиков или пользователей без изучения кода.
Контроль Есть встроенные механизмы контроля выполнения задач, сроков, просмотра активных задач. Требуется самостоятельная реализация всех механизмов контроля и отчетов.
Поддержка Легче передавать на поддержку другому специалисту благодаря визуальной схеме. Требует подробной документации и комментариев в коде, так как логика скрыта.

Заключение: что выбрать?

Оба подхода имеют право на жизнь и успешно применяются на практике. Выбор зависит от специфики вашей задачи.

Выбирайте Бизнес-процессы, если:

Выбирайте систему на документах и регистрах, если:

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

← На главную