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

· 9 мин

Содержание

Бизнес-процесс в 1С создаётся в Конфигураторе: вы добавляете объект конфигурации Бизнес-процесс, рисуете для него карту маршрута и подключаете объект Задача, в который процесс будет складывать поручения исполнителям. Всё остальное (роли, код, формы) настраивается вокруг этой связки.

Процесс нужен там, где документ проходит несколько людей по цепочке: заявка, согласование договора, приём сотрудника. Без него маршрут живёт в почте и в голове у руководителя. С ним у каждого шага есть исполнитель, срок и статус, а у руководителя есть список «что где застряло».

Разработка идёт в Конфигураторе, поэтому нужны права на изменение конфигурации. Если база типовая и на поддержке, сначала включите возможность изменения. Типовые конфигурации (Бухгалтерия, ЗУП, УТ) уже содержат подсистему «Бизнес-процессы и задачи» из БСП, и часто проще воспользоваться ею, чем писать своё.

Что подготовить до первого объекта

Пять минут на подготовку экономят часы переделок. Выясните:

  • 🧭 Маршрут на бумаге. Кто начинает, кто выполняет, кто проверяет, чем всё заканчивается.
  • 🔀 Развилки. Где результат зависит от решения («согласовано» или «отклонено») или от данных (сумма больше лимита).
  • 👥 Исполнители. Конкретные пользователи или роли («руководитель подразделения», «бухгалтер по расчётам»).
  • 📄 Основной объект. К какому документу или справочнику привязан процесс.
  • ⏱ Сроки. Через сколько часов задача считается просроченной.

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

Перед стартом разработки
Выполнено: 0 / 5

Объекты конфигурации: из чего состоит процесс

В дереве конфигурации есть две ветки, без которых не обойтись.

ОбъектЧто хранитАналог в жизни
Бизнес-процессЭкземпляр процесса, его состояние и карту маршрутаБланк маршрутного листа
ЗадачаКонкретное поручение конкретному исполнителюСтрока в листе: «подпиши до пятницы»

Процесс порождает задачи. Исполнитель выполняет задачу, процесс получает результат и идёт дальше по карте.

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

Как создать бизнес-процесс и задачу в Конфигураторе

Шаг 1. Добавьте задачу

  1. Откройте Конфигуратор, в дереве конфигурации найдите ветку Задачи.
  2. Нажмите правой кнопкой и выберите добавление нового объекта.
  3. Задайте имя без пробелов, например ЗадачаИсполнителя.
  4. На вкладке с реквизитами добавьте то, что нужно исполнителю: Результат (строка или перечисление), Комментарий.

Шаг 2. Добавьте бизнес-процесс

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

Шаг 3. Подключите права и интерфейс

Дайте ролям права на новые объекты, иначе пользователь не увидит ни процесс, ни задачи. Добавьте объекты в подсистему, чтобы они появились в меню. Для задач удобно вынести список в панель действий: исполнитель открывает его первым.

Формы можно не рисовать вручную: у бизнес-процесса и задачи есть стандартные генераторы. Заготовки форм потом правятся под нужды.

Рисуем карту маршрута: точки, развилки, переходы

Откройте объект бизнес-процесса и перейдите на вкладку Карта маршрута. Здесь схема собирается из готовых элементов.

ЭлементДля чего
СтартЕдинственная точка входа
ЗавершениеКонец процесса
ДействиеАвтоматический шаг: код выполняется без человека
ЗадачаПоручение человеку, процесс ждёт результата
УсловиеРазвилка по значению: «да» или «нет»
Развилка и СоединениеПараллельные ветки и ожидание их всех
Вложенный процессЗапуск другого процесса как шага

Пример для согласования договора:

  1. Старт
  2. Задача «Проверить договор» (юрист)
  3. Условие «Сумма больше лимита?»
  4. Если да: задача «Утвердить» (директор), если нет: пропуск
  5. Действие «Присвоить статус»
  6. Завершение

Элементы соединяются стрелками. Из условия выходят две стрелки, и обязательно обе: иначе процесс «повиснет» на этой точке.

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

Исполнители: как назначить задачу на человека или роль

Адресовать задачу можно двумя способами.

Напрямую. В реквизите Исполнитель задачи записан пользователь. Просто, но при увольнении сотрудника поручения остаются на нём.

Через роль. Вы заводите справочник ролей исполнителей и регистр сведений , где сказано, какой пользователь в какой роли выступает. Задача адресуется на роль, а платформа сама находит людей. Такой способ используется в типовых конфигурациях на базе БСП.

В свойствах объекта Задача для этого есть пункт адресации: можно указать справочник исполнителей и реквизиты адресации, то есть дополнительные измерения. Например, роль «Руководитель подразделения» дополняется подразделением, а значит, один и тот же процесс уходит нужному начальнику.

Пример:

РольПодразделениеИсполнитель
Руководитель подразделенияБухгалтерияИванова А.
Руководитель подразделенияСкладПетров С.
Директор—Сидоров В.

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

Пишем код: обработчики точек маршрута

Логика живёт в модуле объекта бизнес-процесса. У каждой точки маршрута есть свои события. Названия и параметры платформа подставит сама: откройте свойства точки и нажмите на лупу рядом с нужным событием.

Основные:

  • ПриСозданииЗадач. Срабатывает перед созданием задач для точки. Здесь заполняют исполнителя, срок и текст.
  • ПриВыполнении. Вызывается, когда исполнитель завершил задачу. Здесь читают результат.
  • ОбработкаВыполнения у точки «Действие». Автоматический шаг.
  • ПроверкаУсловия у точки «Условие». В параметре Результат возвращают Истина или Ложь.

Пример проверки условия «сумма больше лимита»:

Процедура СуммаБольшеЛимитаПроверкаУсловия(ТочкаМаршрутаБизнесПроцесса, Результат)
    Результат = (Сумма > 100000);
КонецПроцедуры

Пример заполнения задачи перед созданием:

Процедура ПроверитьДоговорПриСозданииЗадач(ТочкаМаршрутаБизнесПроцесса, ФормируемыеЗадачи, СтандартнаяОбработка)
    Для Каждого Задача Из ФормируемыеЗадачи Цикл
        Задача.Наименование = "Проверить договор: " + Договор;
        Задача.СрокИсполнения = ТекущаяДата() + 3 * 24 * 3600;
    КонецЦикла;
КонецПроцедуры

Сумма 100 000 рублей здесь взята как пример. В реальной схеме порог лучше вынести в константу или регистр, чтобы менять без Конфигуратора.

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

Выполнение задачи из кода делается методом ВыполнитьЗадачу объекта-задачи, а пользователь обычно жмёт кнопку на форме. В обработчике нажатия сначала записывают результат, потом вызывают выполнение.

Запуск экземпляра и контроль выполнения

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

Процесс = БизнесПроцессы.Согласование.СоздатьБизнесПроцесс();
Процесс.Дата = ТекущаяДата();
Процесс.Договор = ДоговорСсылка;
Процесс.Сумма = 250000;
Процесс.Записать();
Процесс.Стартовать();

Запись и старт разделены сознательно. После Стартовать процесс уходит по карте до первой задачи и останавливается, ожидая исполнителя.

Чтобы следить за ходом, предусмотрите:

  • 📋 Список процессов с отбором по состоянию (активен, завершён, прерван).
  • 🧾 Список задач с отметкой просроченных. Просрочку считают по сроку исполнения.
  • 🗺 Карту маршрута в форме процесса. Платформа умеет показывать, на какой точке процесс стоит сейчас. Для этого в форму добавляют стандартное поле карты.

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

Проверка и отладка: прогон по всем веткам

Проверьте каждую ветку, а не только счастливый путь.

  1. Запустите процесс на тестовой базе от имени обычного пользователя, не администратора. Так вы поймёте, хватает ли ролям прав.
  2. Выполните задачу с результатом «да», потом заново с результатом «нет».
  3. Проверьте условие на границе: сумма ровно равна лимиту.
  4. Поставьте точку останова в ПроверкаУсловия и убедитесь, что Результат приходит ожидаемый.
  5. Оставьте задачу просроченной и посмотрите, как это отображается в списке.

Если процесс «застрял» и не идёт дальше, чаще всего причина одна из четырёх:

Диагностика: выберите симптом

Как развивать схему, когда она заработала

Работающий процесс почти всегда дорабатывают. На что стоит обратить внимание:

  • Параллельные ветки. Если юрист и бухгалтер могут проверять договор одновременно, разведите их через Развилку и сведите Соединением. Срок процесса сократится.
  • Вложенные процессы. Повторяющийся кусок (например, «согласование суммы») выносят в отдельный процесс и вызывают из нескольких схем.
  • Напоминания. Регламентное задание раз в день выбирает просроченные задачи и шлёт уведомление.
  • Метрики. Считайте среднее время на каждом шаге. Узкое место видно сразу: один исполнитель держит задачи по 5 дней, остальные по одному.

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

Когда свой процесс писать не нужно

Не каждое согласование требует отдельного объекта конфигурации. Прикиньте заранее:

  • ✅ Своя разработка оправдана, если маршрут уникален, завязан на ваши документы и меняется редко.
  • ❌ Не оправдана, если нужно просто «отправить документ на согласование». В типовых конфигурациях на БСП для этого есть готовые механизмы: исполнителю уходит задача, руководитель видит её в своём списке.
  • ⚠️ Опасна, если в базе на поддержке вендора вы плодите десятки собственных процессов. Каждое обновление типовой конфигурации придётся сверять с вашими доработками.

Хорошее правило: сначала поищите готовое в подсистеме задач, и только потом открывайте Конфигуратор. Сравнение трудоёмкости примерное: настройка готового маршрута занимает час-два, разработка собственного процесса с формами, ролями и отладкой от нескольких дней.

Типичные ошибки при создании процесса

Эти грабли встречаются чаще других:

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

Частые вопросы

Можно ли обойтись без программирования?
Нет. Карту маршрута рисуют мышью, но условия, заполнение исполнителей и сроков требуют кода. Если нужны только простые поручения, подойдёт готовая подсистема из БСП, где задачи ставятся из интерфейса.
Чем бизнес-процесс отличается от обычной обработки?
Обработка выполняется сразу, одним пользователем, и ничего не помнит. Процесс живёт днями и неделями, хранит состояние и ждёт людей.
Работает ли это в обычных формах и в управляемых?
Объекты «Бизнес-процесс» и «Задача» платформа поддерживает в обоих режимах, но для новой разработки используют управляемые формы.
Что делать, если исполнитель уволен?
Переадресуйте его задачи на другого пользователя или роль. Если используете роли, достаточно поменять назначение в регистре, и новые задачи пойдут нужному человеку.
Как удалить процесс, запущенный по ошибке?
Пометьте его как прерванный, а задачи по нему закройте. Удалять сам объект стоит только при чистке тестовых данных.