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