Как реализовать гибкую настройку адресации бизнес-процесса согласования документов в 1С 8.3?

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

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

Мы рассмотрим два основных подхода к решению этой задачи: использование специализированного решения 1С:Документооборот и разработку собственного функционала на базе стандартных объектов платформы 1С:Предприятие 8.3.

Подход 1: Использование 1С:Документооборот

Самым типовым и рекомендуемым способом реализации сложного документооборота, включая гибкое согласование, является внедрение продукта 1С:Документооборот (1С:ДО). Это специализированное решение, которое изначально спроектировано для таких задач и предлагает широкие возможности без необходимости глубокого программирования.

Давайте проанализируем, почему 1С:ДО часто является предпочтительным выбором:

  1. Типовые механизмы согласования: 1С:ДО предоставляет готовые, мощные и гибко настраиваемые механизмы согласования документов. Мы можем настроить маршруты, которые могут работать последовательно, параллельно, смешанно или по сложным условиям. Это существенно упрощает реализацию даже самых запутанных схем.
  2. Шаблоны маршрутов: В 1С:ДО мы можем создавать и привязывать шаблоны маршрутов согласования к определенным видам документов. Эти шаблоны позволяют детально задавать этапы, сроки выполнения, ответственных лиц (конкретных пользователей, группы пользователей, ролей) и условия для перехода между этапами. Это обеспечивает высокую степень автоматизации и стандартизации процесса.
  3. Бесшовная интеграция: Одно из ключевых преимуществ 1С:ДО – это возможность бесшовной интеграции с другими конфигурациями 1С, такими как 1С:ERP, 1С:Бухгалтерия, 1С:Управление торговлей, 1С:Зарплата и Управление Персоналом. Это означает, что мы можем запускать процессы согласования непосредственно из учетных систем, что создает единое информационное пространство, минимизирует ручной ввод и снижает трудозатраты.
  4. Контроль и прозрачность: Система позволяет нам в любой момент времени отслеживать ход согласования. Мы всегда видим, на ком находится документ, какие задачи запущены, их текущий статус и оставшиеся сроки. Это значительно повышает управляемость процесса.
  5. Возможность отмены и доработки: В случае отказа в согласовании или появления замечаний, документ может быть легко отправлен на доработку. После внесения изменений его можно запустить на новый цикл согласования, при этом вся история предыдущих изменений и замечаний будет сохранена.
  6. "Согласование в режиме замечаний": Современные версии 1С:ДО (например, 3.0) предлагают функционал для работы с замечаниями непосредственно в системе. Это позволяет выделять текст, оставлять комментарии и упрощает процесс внесения правок и обсуждений без использования сторонних средств.
  7. Гибкая настройка прав доступа: 1С:ДО позволяет детально настроить права доступа. Мы можем регулировать, какие действия может совершать каждый пользователь или группа пользователей с документами и задачами, обеспечивая информационную безопасность и упорядочивая работу. Права могут быть настроены на уровне папок, полномочий, политик доступа или рабочих групп.
  8. Экономическая эффективность: Автоматизация документооборота с использованием 1С:ДО способствует сокращению времени на обработку документов (пользователи отмечают сокращение в 2-3 раза), исключению дублирования и потерь, повышению прозрачности и управляемости процессов, а также централизованному контролю. Система легко адаптируется под уникальные процессы различных отраслей, позволяя создавать индивидуальные маршруты и формы документов.
  9. Версии 1С:ДО: Важно учитывать, что существуют разные версии 1С:ДО (ПРОФ, КОРП, ДГУ), каждая из которых обладает своим набором функционала. Например, версия КОРП идеально подходит для средних и крупных организаций и холдингов со сложными бизнес-процессами.

Подход 2: Собственная разработка на базе объектов платформы 1С

Если по каким-либо причинам внедрение 1С:Документооборот не является возможным или целесообразным, мы можем реализовать собственную систему согласования, используя стандартные объекты платформы 1С:Предприятие 8.3, такие как БизнесПроцесс и Задача.

Рассмотрим подробнее, как мы можем построить такой функционал:

  1. Создание Бизнес-процесса и Задач

    В платформе 1С:Предприятие 8.3 объекты БизнесПроцесс и Задача специально предназначены для объединения операций в цепочки взаимосвязанных действий. Бизнес-процесс описывает общий маршрут, а задачи – конкретные действия, которые должны быть выполнены исполнителями.

    Карта маршрута: Мы начнем с создания простого маршрута бизнес-процесса, например: Старт -> Действие -> Завершение. Точка "Действие" будет отвечать за обработку этапов согласования.

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

  2. Гибкая настройка адресации

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

    • Хранение списка согласующих: При старте бизнес-процесса автор документа формирует список согласующих. Этот список мы можем хранить в табличной части самого объекта БизнесПроцесс или в отдельном регистре сведений. Хранение в табличной части бизнес-процесса (например, Согласующие с полями Должность, Сотрудник, Порядок, Согласовано) удобно, поскольку он будет непосредственно связан с конкретным экземпляром БП.
    • Ролевая адресация: Вместо назначения конкретного сотрудника, мы можем адресовать задачи ролям (например, "Начальник отдела продаж", "Главный бухгалтер", "Юрист"). Это позволяет системе автоматически определять исполнителя задачи на основе текущего штатного расписания или настроек ролей. В 1С для этого можно использовать Справочник.РолиИсполнителей или реализовать свой механизм связи ролей с должностями/сотрудниками.
    • Регистры адресации: Для более сложных правил адресации мы можем использовать вспомогательные регистры сведений, которые позволят настраивать условия без изменения кода. Например, регистр сведений "НастройкаСогласования" может содержать записи типа: "Если документ.Тип = 'Договор' И документ.Сумма > 100000, то согласует 'Финансовый директор'".
    • Динамическое определение исполнителей: В зависимости от входных данных (например, типа документа, его суммы, подразделения-инициатора), система может автоматически определять список согласующих. Это достигается путем настройки правил, которые могут учитывать роли сотрудников, департамент, тип документа или приоритет задачи.
  3. Реализация пошагового согласования

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

    Алгоритм:

    1. При старте бизнес-процесса формируем полный список согласующих в табличной части БП, устанавливаем статус "Ожидает согласования" для первого в списке.
    2. Создаем первую задачу согласования для первого исполнителя из списка.
      
      // Примерный код создания задачи
      ЗадачаСогласования = Задачи.ЗадачаИсполнителя.СоздатьЗадачу();
      ЗадачаСогласования.БизнесПроцесс = СсылкаНаБизнесПроцесс;
      ЗадачаСогласования.Исполнитель = ПервыйСогласующий;
      ЗадачаСогласования.Предмет = СсылкаНаДокумент;
      ЗадачаСогласования.Наименование = "Согласовать документ " + СсылкаНаДокумент;
      ЗадачаСогласования.Записать();
      
    3. В обработчике выполнения задачи (например, в процедуре обработки команды "Согласовать" или "Отказать" в форме задачи) мы проверяем, кто следующий в списке.
    4. Если текущий согласующий согласовал документ:
      • Помечаем его как согласованного в табличной части БП.
      • Ищем следующего согласующего.
      • Если следующий есть, создаем новую задачу для него.
      • Если следующих нет, значит, согласование завершено. Бизнес-процесс переходит на следующий этап (например, к действию по выполнению документа или его проведению) или завершается.

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

  4. Обработка отказа и доработки

    Очень важно предусмотреть сценарий, когда согласующий отказывает в согласовании.

    Сценарий отказа:

    1. Если согласующий отказывает, задача возвращается инициатору документа (автору).
    2. Текущий бизнес-процесс завершается с соответствующим статусом (например, "Отклонен"). Мы не "рестартуем" его, а именно завершаем.
    3. Инициатор получает задачу на доработку документа.
    4. После доработки документа инициатор снова запускает процесс согласования. Это приводит к созданию нового экземпляра бизнес-процесса с новыми условиями и заново сформированным списком согласующих. Такой подход обеспечивает четкое разделение версий согласования и сохраняет историю.

    Сохранение истории: Всю историю согласования (кто, когда, какое решение принял, какие комментарии оставил) мы можем сохранять в регистре сведений или в табличной части документа/бизнес-процесса. Это обеспечивает прозрачность и позволяет анализировать процесс.

  5. Прочие важные моменты

    • Роль БП как "хранилища": Объект БизнесПроцесс выступает в роли "хранилища" всего процесса согласования. Он хранит информацию о маршруте, текущем этапе, участниках и их решениях, что делает процесс прозрачным и управляемым.
    • Избежание проблем: Реализация согласования через отдельный бизнес-процесс позволяет избежать множества проблем, которые могут возникнуть при попытке реализовать этот функционал непосредственно в объекте "Документ" (например, проблемы с перепроведением документов, блокировками, изменением учетных данных в процессе согласования).

Дополнительные рекомендации

Для более глубокого понимания принципов построения гибких информационных систем и организации документооборота, мы рекомендуем ознакомиться с докладами по архитектуре решений на платформе 1С. Например, полезным может быть доклад Станислава Митичкина "Лепим и обжигаем АРМы - кирпичи инфосистем", где в начале описывается АРМ Документооборот с гибкой системой согласования.

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

← На главную