Автоматизация процессов согласования заявок, служебных записок и коммерческих документов — одна из наиболее распространенных задач при развитии корпоративных информационных систем на базе 1С. Рассмотрим архитектурные варианты решения этой задачи, проанализируем штатные механизмы платформы, а также разберем подходы к хранению истории изменений и организации совместной работы пользователей.
При проектировании модуля согласования в 1С существует несколько основных способов реализации бизнес-логики:
БизнесПроцесс и Задача. Бизнес-процессы позволяют описывать маршруты движения задач в виде графических схем, управлять точками действия, ветвлениями и получением результатов. Этот подход идеально подходит, когда требуется встроить жесткую логику согласования непосредственно в рабочую конфигурацию (например, УПП, ERP, Комплексную автоматизацию или УТ) без привлечения сторонних систем.БизнесПроцесс маршрут согласования описывается через справочник этапов и регистры сведений, фиксирующие текущий статус документа и историю его переходов. Данная схема проще в поддержке при часто меняющейся бизнес-логике и создает меньшую нагрузку на базу данных.Проанализируем важный методологический нюанс: редактирование документа непосредственно в процессе согласования нежелательно. Если один из согласованторов изменяет ключевые реквизиты (сумму, номенклатуру, условия оплаты) в середине маршрута, последующие участники увидят одни данные, а ранее утвердившие пользователи окажутся подписантами совершенно другого документа.
Для контроля изменений и сохранения прозрачности необходимо использовать штатный механизм версионирования объектов из БСП:
Рассмотрим частый сценарий: требуется, чтобы один пользователь заполнял номенклатуру и количество в документе, а другой параллельно проставлял цены или согласовывал отдельные позиций. В платформе 1С существует жесткое ограничение: одновременная интерактивная работа нескольких пользователей с одной формой документа невозможна. При попытке второго пользователя записать объект сработает механизм оптимистической блокировки platform, и система выдаст ошибку о том, что объект был изменен в другом сеансе.
Для решения задачи параллельного заполнения и построчного согласования применяются следующие технические приемы:
НомерСтроки, так как при пересортировке или удалении нумерация сместится. Для этого применяется специальный тип данных ИдентификаторСтроки (уникальный GUID строки), сохраняющийся при любых манипуляциях с табличной частью.Таким образом, реализация СЭД средствами платформы 1С является стандартной и надежной практикой. Выбор между созданием собственных объектов БизнесПроцесс и внедрением «1С:Документооборот» зависит от сложности бизнес-логики, бюджета проекта и требований к масштабируемости системы.