Почему в 1С:Документообороте система ругается при повторном согласовании одним и тем же лицом или ролью, и как это исправить?

Бизнес-аналитик 1С v8.3 (Управляемые формы) 1С:Документооборот
← На главную

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

Понимание проблемы: почему возникает ошибка?

Система 1С:Документооборот спроектирована таким образом, чтобы каждая виза согласования была уникальной. Это означает, что для каждого этапа согласования ожидается уникальная запись, фиксирующая факт и результат визирования. Когда один и тот же человек или роль пытается согласовать документ дважды в рамках, как кажется системе, одного и того же действия согласования, возникает конфликт. Система воспринимает это как попытку создать дублирующую запись в регистрах сведений, связанных с визами, что приводит к ошибке «Запись с такими ключевыми полями существует!».

Давайте рассмотрим типовой сценарий, описанный вами: юрист сначала согласовывает сам договор, а затем согласовывает договор с заказчиком. Несмотря на то что физически это один и тот же юрист, и документ один и тот же, с точки зрения бизнес-логики это два разных этапа с разными целями. В первом случае юрист проверяет юридическую корректность документа, во втором — проверяет соответствие документа требованиям или условиям заказчика после внесения возможных правок, или же согласовывает итоговую версию перед отправкой на подписание. Если оба этих этапа смоделированы в системе как один и тот же тип согласования с одной и той же ролью (ОтветственныйЮрист), то система сталкивается с проблемой уникальности визы.

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

Основные подходы к решению проблемы

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

  1. Разделение на подпроцессы или отдельные этапы с разными целями

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

    • Идентификация различных целей: Вернемся к примеру с юристом. Первое согласование — «Согласование проекта договора юристом», цель — проверка юридической чистоты. Второе согласование — «Согласование условий договора с заказчиком юристом», цель — подтверждение финальных условий с учетом требований заказчика. Это два качественно разных действия, хоть и выполняемые одним лицом.
    • Моделирование в системе: Вместо двух одинаковых действий Согласование, направленных на одну и ту же роль, нам следует использовать разные элементы маршрутизации или даже отдельные подпроцессы. Например, можно создать два разных действия типа Согласование, но назвать их по-разному, явно указав их уникальные цели (например, СогласованиеЮристом и СогласованиеЮристомСЗаказчиком). В некоторых случаях целесообразно использовать разные типы задач, если функциональность системы позволяет более точно отразить суть действия.
    • Преимущества: Система будет воспринимать каждую визу как уникальную, поскольку она относится к разным логическим этапам. Это исключает конфликт, связанный с дублированием записей, и делает процесс более прозрачным и понятным для всех участников. Вы также сможете получать более детализированную статистику по каждому этапу согласования.
    • Пример из вашего случая: Вместо того чтобы иметь два последовательных согласования, которые называются просто «Согласование (отв. юрист)», мы можем создать: 1. Согласование (юридическая экспертиза договора), где ответственный — роль Юрист. 2. Согласование (финальные условия с заказчиком), где ответственный также роль Юрист, но система будет различать их по названиям этапов и контексту.

      Также, как было предложено, если второе действие по сути является не согласованием, а получением подтверждения со стороны внешнего контрагента, то логичнее его назвать «Подписание заказчиком» или «Согласование с внешним контрагентом», что еще больше подчеркнет различие целей и позволит настроить соответствующие механизмы (например, через задачи на подписание или внешний документооборот).

  2. Использование разных ролей для одного сотрудника

    Если по каким-то причинам разделение на подпроцессы кажется избыточным или сложным для реализации, можно использовать механизм ролей 1С:Документооборот. Этот подход позволяет системе воспринимать одно и то же физическое лицо как разные "сущности" в контексте разных этапов согласования:

    • Создание дополнительных ролей: Для сотрудника, который должен согласовать документ несколько раз с разными целями, можно создать несколько ролей. Например, если у вас есть роль Юрист, можно создать также роль ЮристПоДоговорам и ЮристПоЗаказчикам.
    • Назначение ролей: Одному и тому же сотруднику назначаются все эти роли. В шаблоне бизнес-процесса для первого этапа согласования указывается роль ЮристПоДоговорам, а для второго этапа — ЮристПоЗаказчикам.
    • Механизм работы: Система, маршрутизируя задачи, будет направлять их на разные роли. Несмотря на то что за этими ролями стоит одно и то же физическое лицо, для системы это будут задачи, адресованные разным ролевым "сущностям", что позволит избежать конфликта уникальности виз.
    • Недостатки: Этот подход может привести к усложнению администрирования ролей, особенно если таких сотрудников и этапов много. Кроме того, он может маскировать истинную проблему — нечеткое определение бизнес-процессов — вместо того чтобы решать ее на корневом уровне.
  3. Настройка условий маршрутизации для пропуска этапов

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

    • Логика пропуска: Вы можете настроить шаблон бизнес-процесса таким образом, чтобы определенные шаги согласования пропускались, если у согласующего уже есть виза по данному документу или если документ соответствует определенным критериям.
    • Реализация: В условиях маршрутизации можно проверять наличие визы определенного типа или статус документа. Например, если документ уже был согласован юристом ранее и сейчас находится на повторном круге после небольших правок, можно настроить автоматический пропуск его визирования, если юрист не внес замечаний.
    • Применимость: Этот метод больше подходит для оптимизации процессов повторного согласования после отклонения, а не для изначально различных по цели этапов.
  4. Особенности повторного согласования после отклонения

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

    • Типовое поведение: Если документ был отклонен, система может предложить переместить предыдущую визу в историю и создать новую. Это позволяет избежать ошибки, так как старая запись становится неактуальной, а новая создается для текущего цикла согласования.
    • Оптимизация: Существуют решения, позволяющие настроить отправку документа только тем, кто отклонил его на предыдущем этапе, или тем, кто внес изменения. Это помогает избежать излишней нагрузки на согласующих и ускорить процесс.
  5. Механизм вытеснения участников согласования

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

    • Цель: Если включена соответствующая настройка, программа может исключить дублирующиеся задачи, чтобы избежать отправки нескольких одинаковых задач одному и тому же лицу, если эти задачи совпадают по смыслу и ожидают одного и того же действия.
    • Ограничения: Этот механизм эффективен для предотвращения избыточных задач, но он может не решить проблему, если система воспринимает два этапа согласования как логически разные, даже если они назначены на одну и ту же роль/сотрудника, и требуется фиксация двух отдельных виз. В этом случае требуется более глубокая проработка архитектуры процесса.
  6. Внимательное проектирование бизнес-процессов

    В конечном итоге, основа успешной и бесперебойной работы 1С:Документооборот заключается в качественном проектировании бизнес-процессов.

    • Определение целей: Важно на этапе анализа четко определить цели каждого шага согласования. Зачем этот человек или роль должен визировать документ на этом этапе? Если целей несколько, это повод разделить процесс.
    • Избегание избыточности: Проверяйте, нет ли избыточных или дублирующихся этапов согласования. Каждый шаг должен приносить добавленную ценность.
    • Гибкость настройки: Используйте всю гибкость настроек шаблонов процессов и условий маршрутизации 1С:Документооборот для адаптации системы под специфику компании, но всегда помните о внутренней логике работы платформы.

Практические рекомендации по внедрению

Чтобы успешно решить проблему с повторным согласованием, рекомендуем придерживаться следующего алгоритма:

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

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

← На главную