1с документооборот подписки на бизнес события

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

Бизнес-события – это отображение факта, что произошло некое важное для организации событие, которое подтверждено изменением данных в информационной базе. К ним можно привязать специальные обработчики, которые помогут реализовывать те или иные механизмы.

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

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

Бизнес-события состоят из нескольких частей:

  • детекторы событий (типовые и пользовательские);
  • реестр произошедших событий;
  • обработчики событий (типовые и пользовательские).
Рис.1 Бизнес события
Рис.1 Бизнес события

Для использования механизма бизнес-событий в настройках программы должна быть установлена соответствующая галочка. Зайдем в «Настройки программы», в раздел «Настройка и администрирование».

Рис.2 Настройки программы
Рис.2 Настройки программы

Перейдем по гиперссылке «Общие настройки».

Рис.3 Общие настройки
Рис.3 Общие настройки

В настройках должна быть установлена галочка «Бизнес-события».

Рис.4 Бизнес-события в общих настройках
Рис.4 Бизнес-события в общих настройках

Программой «1С:Документооборот» в разделе «Настройка и администрирование-Бизнес-события» предусмотрен справочник «Виды бизнес-событий».

Рис.5 Виды бизнес-событий
Рис.5 Виды бизнес-событий

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

Рис.6 Предопределенные бизнес-события
Рис.6 Предопределенные бизнес-события

Перечень типовых бизнес-событий в системе:

  1. Возобновление процесса
  2. Добавление в категорию
  3. Завершение процесса
  4. Задача выполнена
  5. Захват файла для редактирования
  6. Изменение брони
  7. Изменение внутреннего документа
  8. Изменение входящего документа
  9. Изменение значения показателя процесса
  10. Изменение исходящего документа
  11. Изменение мероприятия
  12. Изменение отсутствия
  13. Изменение проекта
  14. Изменение проектной задачи
  15. Изменение состава комплекта
  16. Изменение файла
  17. Назначение ответственным за документ
  18. Освобождение файла
  19. Остановка процесса
  20. Отмена выполнения задачи
  21. Перенаправление задачи
  22. Перерегистрация внутреннего документа
  23. Перерегистрация входящего документа
  24. Перерегистрация исходящего документа
  25. Подошел срок задачи
  26. Получение входящего письма
  27. Прерывание процесса
  28. Просрочена задача
  29. Регистрация внутреннего документа
  30. Регистрация входящего документа
  31. Регистрация исходящего документа
  32. Создание брони
  33. Создание внутреннего документа
  34. Создание входящего документа
  35. Создание задачи
  36. Создание исходящего документа
  37. Создание контрагента
  38. Создание мероприятия
  39. Создание отсутствия
  40. Создание проекта
  41. Создание проектной задачи
  42. Создание сообщения
  43. Создание файла
  44. Старт процесса

Как только какое-либо событие произошло, происходит запись этого события в регистр сведений «Произошедшие бизнес-события» (доступен в меню «Все функции»).

Рис.7 Произошедшие бизнес-события
Рис.7 Произошедшие бизнес-события

В этом регистре отображается вид события, источник записи, автор и отметка об обработке записи.

Рис.8 Параметры бизнес-событий
Рис.8 Параметры бизнес-событий

Так, например, при создании нового внутреннего документа «Договор аренды» в регистре появляется запись «Создание внутреннего документа», при формировании файла договора в регистре появляется запись «Создание файла» и т.д.

Пользователь может создавать свои бизнес-события и привязать к ним обработчики событий – типовые или пользовательские. Справочник «Дополнительные обработчики» доступен в разделе «Настройка и администрирование-Бизнес-события».

Рис.9 Дополнительные обработчики
Рис.9 Дополнительные обработчики

С помощью кнопки «Создать» пользователь может задать дополнительный обработчик бизнес-событий.

Рис.10 Создание дополнительного обработчика бизнес-событий
Рис.10 Создание дополнительного обработчика бизнес-событий

В карточке указывается наименование обработчика, код обработки события и устанавливается галочка «Обработчик включен».

Рис.11 Обработчик включен
Рис.11 Обработчик включен
Рис.12 Код отмены обработки событий
Рис.12 Код отмены обработки событий

В меню «Подписки» пользователь указывает подписку для данного обработчика (кнопка «Создать»).

Рис.13 Меню Подписки
Рис.13 Меню Подписки
Рис.14 Создание Подписки
Рис.14 Создание Подписки

Связь обработчика и вида события производится путем выбора его из справочника.

Рис.15 Виды бизнес событий
Рис.15 Виды бизнес событий

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

Рис.16 Связь вида бизнес-события с обработчиком
Рис.16 Связь вида бизнес-события с обработчиком

Связь вида бизнес-события с обработчиком указывается в данной форме.

Кроме типовых бизнес-событий в системе можно добавлять свои события. Для этого необходимо сделать следующее:

  1. В справочнике «Виды бизнес-событий» добавить новое бизнес-событие;
  2. Перейти к созданию детектора бизнес-событий*. У детектора установить флаг «Детектор включен».
  3. Создать дополнительный обработчик. Установить у обработчика флаг «Обработчик включен». Настроить у обработчика подписку на событие.

*Детектор бизнес события – это механизм, который отслеживает выполнение заданного условия и создает определенное событие в информационной базе.

Детектор отслеживает события. Как только условие детектора выполнено, система фиксирует новое бизнес-событие. Затем новое бизнес-событие в соответствии с подписками на него будет обработано связанным обработчиком.

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

Чтобы правильно настроить и использовать все богатые возможности 1С:Документооборот, обращайтесь к профессионалам, мы сделаем вашу работу с документами легкой и эффективной.

Система документооборота «Корпоративный документооборот» содержит универсальный механизм подписок на события системы. Данный механизм используется для организации процесса уведомления пользователей о произошедших в системе документооборота событиях. Механизм уведомлений запускается автоматически и работает в фоновом, незаметном для пользователей режиме.

Механизм подписок представляет собой набор созданных администраторами системы видов подписок, а также списков назначенных подписок для конкретных пользователей системы. Доступ к механизму подписок можно получить в подсистеме «Администрирование системы», пункт «Настройка подписок».

Подписка на события документооборота

Набор видов подписок позволяет описать все необходимые предприятию виды подписок на события документооборота. Виды подписок хранятся в справочнике «Подписки на события» Созданные виды подписок используются при организации списка индивидуальных подписок пользователей.

В карточке вида подписки необходимо указать, к какому типу событий она относится. Возможные типы событий:

  • Создание документа
  • Изменение документа
  • Создание задачи
  • Изменение задачи
  • Выполнение задачи

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

Форма подписки на событие документооборотаРекомендуется устанавливать один или несколько фильтров, сужающих область действия данного вида подписки. Среди доступных фильтров:

Фильтр по параметрам объекта. В случае применения к документам, данный фильтр позволяет отобрать документы по одному или нескольким реквизитам, например по типу документа, виду документа, грифу доступа и другим. В случае применения фильтра к бизнес-процессам, фильтр можно применить по шаблонам бизнес-процессов.

Фильтр «Использовать отбор по пользователю». В данном фильтре можно указать конкретного сотрудника, который должен быть указан в документе (или процессе/задаче). Например, при оформлении подписки на событие документа, корпоративный документ анализируется на предмет вхождения указанного пользователя в следующие реквизиты документа:

  • Автор документа
  • Сотрудник регистратор документ
  • Список получателей документа (закладка «Регистрация»)
  • Список сотрудников документа (закладка «Принадлежность»)

Если подписка принадлежит к типу событий задач или бизнес-процессов, то вхождение указанного сотрудника анализируется в следующих реквизитах объекта:

  • Исполнитель
  • Контролер
  • Инициатор бизнес-процесса
  • Список исполнителей бизнес-процесса (исключить)

В случае, если в виде подписки указан конкретный сотрудник, то объекты (документы, процессы, задачи) будут проверяться на вхождение данного конкретного сотрудника. Альтернативным вариантом фильтрации по пользователю объекта является указания значения «Я».Включение фильтрации в подпискеДанное значение является универсальным и принимает значения владельца данной подписки. Таким образом, если у какого-либо пользователя оформлена подписка на данный вид подписок, то алгоритмы фильтрации будут анализировать вхождение в состав объекта не конкретного сотрудника, а сотрудника, оформившего подписку на данное событие.

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

В форме настройки пользователей можно указать средства доставки сообщения о событии документооборота. На данный день доступны следующие средства доставки: доставка по электронной почте и доставка на начальную страницу в область уведомлений, в корпоративный чат и в систему Jabber.

Для выбора средства доставки отметьте соответствующие флажки в форме карточки вида подписки как показано на рисунке ниже.Включение транспорта для доставки подпискиДля организации фактической доставки сообщений конкретному пользователю необходимо, что бы у пользователя была включена возможность приема сообщений по данному способу доставки. Настройка доступности способов приема осуществляется через форму «Мои настройки», расположенную в меню «Сервис» раздела «Главное».

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

Для отправки сообщений из системы документооборота по электронной почте необходимо указать учетную запись, которая будет использоваться для отправки сообщений. В данной учетной записи должен быть включен флажок «Используется для отправки», а так же указан пароль. Администраторы системы могут временно отключить доставку по указанным способам доставки сняв соответствующую галочку.

Оформление подписок для пользователя производится в регистре сведений «Подписки пользователей». Доступ к спискам подписок осуществляется через форму «Система сообщений» в подсистеме «Администрирование системы».
На закладке «Подписка на события системы» нажмите кнопку «Подписки пользователей» для открытия формы подписок пользователей на конкретные виды подписок.

Журнал видов подписок системы документооборотаВ случае необходимости, каждая подписка может быть временно приостановлена, для этого необходимо снять флажок «Действующая подписка».Определение мест доставки у пользователяДля указания способов доставки сообщений данного вида подписки необходимо отметить соответствующие флажки в форме подписки пользователя.

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

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

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

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

Смотрите также:

  • Отправка и получение документов
  • Мониторинг электронной почты
  • Интеграция с системой Jabber

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

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

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

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

  • детекторы событий (типовые и пользовательские), 
  • реестр произошедших событий, 
  • обработчики событий (типовые и пользовательские).

Детекторы используются для того, чтобы обнаруживать события. Как только детектор «сработал», записывается новое бизнес-событие. Затем новое бизнес-событие в соответствии с подписками на него будет обработано специальными обработчиками.Обработка одного события происходит в границах одной транзакции. После успешной обработки событие получает статус Задание выполнено. Если событие обработано с ошибками, программа предпримет попытку обработать его несколько раз, а затем удалит, если исправить эту ошибку окажется невозможным. 

Если хоть один обработчик событий завершит свою операцию с ошибкой, то обработка всех событий и все действия других обработчиков будут отменены. Во всех случаях информация о результатах обработки будет записана в журнал регистрации.
По необработанным событиям будет произведена попытка выполнения обработчиков 3 раза. Необработанные бизнес-события будут храниться в регистре сведений «Произошедшие бизнес-события», чтобы администратор мог разобраться с причинами ошибок и устранить их. Обработанные бизнес-события будут храниться определенное кол-во дней (указывается в настройках программы), а потом будут удалены.
Чтобы включить механизм бизнес-событий нужно в настройках программы активировать настройку «Использовать бизнес-события».
Далее можно использовать типовые бизнес-события такие, как:

  1. Возобновление процесса
  2. Добавление в категорию
  3. Завершение процесса
  4. Задача выполнена
  5. Захват файла для редактирования
  6. Изменение брони
  7. Изменение внутреннего документа
  8. Изменение входящего документа
  9. Изменение значения показателя процесса
  10. Изменение исходящего документа
  11. Изменение мероприятия
  12. Изменение отсутствия
  13. Изменение проекта
  14. Изменение проектной задачи
  15. Изменение состава комплекта
  16. Изменение файла
  17. Назначение ответственным за документ
  18. Освобождение файла
  19. Остановка процесса
  20. Отмена выполнения задачи
  21. Перенаправление задачи
  22. Перерегистрация внутреннего документа
  23. Перерегистрация входящего документа
  24. Перерегистрация исходящего документа
  25. Подошел срок задачи
  26. Получение входящего письма
  27. Прерывание процесса
  28. Просрочена задача
  29. Регистрация внутреннего документа
  30. Регистрация входящего документа
  31. Регистрация исходящего документа
  32. Создание брони
  33. Создание внутреннего документа
  34. Создание входящего документа
  35. Создание задачи
  36. Создание исходящего документа
  37. Создание контрагента
  38. Создание мероприятия
  39. Создание отсутствия
  40. Создание проекта
  41. Создание проектной задачи
  42. Создание сообщения
  43. Создание файла
  44. Старт процесса

Кроме типовых бизнес-событий в системе можно добавлять свои события. Для этого необходимо сделать следующее:

  1. В справочнике «Виды бизнес-событий» добавить новое бизнес-событие.
  2. Создать детектор для этого события. У детектора установить флаг «Детектор включен».
  3. Создать дополнительный обработчик. Установить у обработчика флаг «Обработчик включен». Настроить у обработчика подписку на событие.

Рассмотрим самый простой вариант привязки типового обработчика к типовому событию.

Открываем шаблон процесса. Переходим на форму назначения видам документов.

На закладке «Автоматический запуск» указываем событие «Создание внутреннего документа».

Создадим новый документ. Открываем регистр сведений «Произошедшие бизнес-события». Видим, что наше событие пока не обработано.

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

Рассмотрим теперь более сложный случай привязки типового события к своему обработчику.

Открываем в разделе «Настройка и администрирование» справочник «Дополнительные обработчики».

Создаем новый обработчик бизнес-события. Заполняем его наименование, описание и код обработки события. Устанавливаем флаг «Обработчик включен».

Указываем подписку для данного обработчика.

Теперь при создании нового внутреннего документа у нас будет не только запускаться комплексный процесс по шаблону, но и производиться его дополнительная обработка.

Поскольку к одному событию теперь привязано два обработчика, то возникает вопрос: в каком порядке будут выполняться обработчики? Порядок вызова обработчиков не определен, поэтому нужно при использовании нескольких обработчиков предусматривать все возможные порядки запуска.

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

Бизнес-события

Как сделать, чтобы по документу при наступлении определенного условия автоматически стартовал процесс.

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

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

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

Создадим вид для бизнес-события, которое будет формироваться при наступлении данного условия.


Теперь нужно добавить «Детектор бизнес-события». Детектор бизнес-события — это как раз та часть механизма, которая отслеживает выполнение условия и создает соответствующее событие в системе.

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

ВАЖНО: Если не установлен флаг «Детектор включен», код детектора исполняться не будет!

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

Код детектора:

 Результат = Ложь;

ВидыДокументов = Новый Массив;

ВидыДокументов.Добавить(Справочники.ВидыВнутреннихДокументов.НайтиПоНаименованию(«Служебная записка», Истина));

Запрос = Новый Запрос;

Запрос.Текст =

                «ВЫБРАТЬ ПЕРВЫЕ 1

                |               ИСТИНА

                |ИЗ

                |               Справочник.ВнутренниеДокументы КАК ВнутренниеДокументы

                |                               ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Файлы КАК Файлы

                |                               ПО ВнутренниеДокументы.Ссылка = Файлы.ВладелецФайла

|                               ЛЕВОЕ СОЕДИНЕНИЕ БизнесПроцесс.КомплексныйПроцесс.Предметы КАК КомплексныйПроцессПредметы

                |                               ПО ВнутренниеДокументы.Ссылка = КомплексныйПроцессПредметы.Предмет

                |ГДЕ

                |               КомплексныйПроцессПредметы.Предмет ЕСТЬ NULL

                |               И ВнутренниеДокументы.ВидДокумента В(&ВидыДокументов)

                |               И НЕ ВнутренниеДокументы.ПометкаУдаления

                |               И Файлы.ПодписанЭП = ИСТИНА

                |               И НЕ Файлы.ПометкаУдаления»;

Запрос.УстановитьПараметр(«ВидыДокументов», ВидыДокументов);

РезультатЗапроса = Запрос.Выполнить();           

Если Не РезультатЗапроса.Пустой() Тогда

                Результат = Истина;

КонецЕсли;

Выполнение детекторов и формирование событий выполняет регламентное задание «Обработка детекторов бизнес-событий». Это задание исполняется один раз в минуту и выполняет все детекторы событий с флагом Включен.

Далее необходимо выполнить обработку сформированных бизнес-событий. В нашем случае это запуск процессов по документам. Для обработки бизнес-события в программе используется справочник «Дополнительные обработчики-бизнес событий».

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

Код обработчика:

 ВидыДокументов = Новый Массив;

ВидыДокументов.Добавить(Справочники.ВидыВнутреннихДокументов.НайтиПоНаименованию(«Служебная записка», Истина));

Запрос = Новый Запрос;

Запрос.Текст =

                «ВЫБРАТЬ

                |               ВнутренниеДокументы.Ссылка

                |ИЗ

                |               Справочник.ВнутренниеДокументы КАК ВнутренниеДокументы

                |                               ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Файлы КАК Файлы

                |                               ПО ВнутренниеДокументы.Ссылка = Файлы.ВладелецФайла

                |                               ЛЕВОЕ СОЕДИНЕНИЕ БизнесПроцесс.КомплексныйПроцесс.Предметы КАК КомплексныйПроцессПредметы

                |                               ПО ВнутренниеДокументы.Ссылка = КомплексныйПроцессПредметы.Предмет

                |ГДЕ

                |               КомплексныйПроцессПредметы.Предмет ЕСТЬ NULL

                |               И ВнутренниеДокументы.ВидДокумента В(&ВидыДокументов)

                |               И НЕ ВнутренниеДокументы.ПометкаУдаления

                |               И Файлы.ПодписанЭП = ИСТИНА

                |               И НЕ Файлы.ПометкаУдаления»;

Запрос.УстановитьПараметр(«ВидыДокументов», ВидыДокументов);

РезультатЗапроса = Запрос.Выполнить();           

Если Не РезультатЗапроса.Пустой() Тогда

Выборка = РезультатЗапроса.Выбрать();

                ШаблонПроцесса = Справочники.ШаблоныКомплексныхБизнесПроцессов.НайтиПоНаименованию(«Обработка записок», Истина);

    Пока Выборка.Следующий() Цикл

                               Документ = Выборка.Ссылка;

                               БизнесПроцессОбъект = БизнесПроцессы.КомплексныйПроцесс.СоздатьБизнесПроцесс();

                               БизнесПроцессОбъект.ЗаполнитьПоШаблонуИПредмету(ШаблонПроцесса, Документ, Документ.Подготовил);

                               БизнесПроцессОбъект.Записать();

                               Если ПолучитьФункциональнуюОпцию(«ИспользоватьФоновыйСтартПроцессов») Тогда

                РегистрыСведений.ПроцессыДляЗапуска.ДобавитьПроцессДляФоновогоСтарта(БизнесПроцессОбъект.Ссылка);

                               Иначе

                                               БизнесПроцессОбъект.Старт();

                               КонецЕсли;

                КонецЦикла;

КонецЕсли;

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

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

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

Перейти к основному содержанию

Автоматическое создание входящего документа из исходящего в 1С Документооборот

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

  • Как запрограммировать и настроить дополнительные обработчики бизнес-событий?
  • Как автоматизировать взаимодействие двух организаций в 1С Документооборот при обмене корреспонденцией?
  • Как программно создавать входящие документы?
  • Как копировать файлы из одного документа в другой?
  • Как программно регистрировать документы?

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

Для создания нового обработчика необходимо войти в меню Настройка и администрирование – Дополнительные обработчики, создать новый дополнительный обработчик бизнес-события и назвать его «автосоздание_входящих».
Далее необходимо заполнить код обработчика и выбрать ответственного.

форма дополнительного обработчика бизнес-события


// ИНН первой организации (организация 1)
ИНН1 = "1111111111";
// ИНН второй организации (организация 2)
ИНН2 = "2222222222";
// Предполагается, что для каждой организации используется свой вид входящего документа
// Название вида входящего документа для Организации 1
НазваниеВидаВходящего1="Входящий Организация 1";
// Название вида входящего документа для Организации 2
НазваниеВидаВходящего2="Входящий Организация 2";

// проверка исходящего на предмет взаимодействия Организации 1 и Организации 2
ПроверкаПрошла = Истина;
Исходящий = Событие.Источник;
Если Не (Исходящий.Организация.ИНН = ИНН1 Или Исходящий.Организация.ИНН = ИНН2) Тогда
	ПроверкаПрошла = Ложь;
КонецЕсли;
Если Не (Исходящий.Получатели[0].Получатель.ИНН = ИНН1 Или 
	Исходящий.Получатели[0].Получатель.ИНН = ИНН2) Тогда
	ПроверкаПрошла = Ложь;
КонецЕсли;

Если ПроверкаПрошла Тогда
	входящий = Справочники.ВходящиеДокументы.СоздатьЭлемент();
	входящий.ДатаСоздания = ТекущаяДата();
	входящий.Наименование = Исходящий.Наименование;
	входящий.Заголовок = Исходящий.Заголовок;
	входящий.Содержание = Исходящий.Содержание;
	входящий.Отправитель = Справочники.Контрагенты.НайтиПоРеквизиту("ИНН", 
	Исходящий.Организация.ИНН);
	входящий.Подписал =      
	  Справочники.КонтактныеЛица.НайтиПоНаименованию(Исходящий.Подписал.Наименование,,,входящий.Отправитель);
	// создавать контактное лицо, если оно не найдено
	Если входящий.Подписал.Пустая() И Не Исходящий.Подписал.Пустая() Тогда
		эл = Справочники.КонтактныеЛица.СоздатьЭлемент();
		эл.Владелец = входящий.Отправитель;
		эл.Наименование = Исходящий.Подписал.Наименование;
		Попытка
			эл.Записать();
		Исключение
		КонецПопытки;
		входящий.Подписал = эл.Ссылка;
	КонецЕсли;

	входящий.ИсходящаяДата = Исходящий.ДатаРегистрации;
	входящий.ИсходящийНомер = Исходящий.РегистрационныйНомер;
	
	входящий.Организация = Справочники.Организации.НайтиПоРеквизиту("ИНН", 
		Исходящий.Получатели[0].Получатель.ИНН);
	// поиск пользователя по наименованию контактного лица из исходящего документа
	// предполагается, что контактные лица организаций заведены с такими же наименованиями 
	//   как пользователи организаций
	входящий.Адресат =
		Справочники.Пользователи.НайтиПоНаименованию(Исходящий.Получатели[0].Адресат.Наименование);
	входящий.Подразделение = входящий.Адресат.Подразделение;
	входящий.СпособПолучения = Исходящий.Получатели[0].СпособОтправки;
	входящий.СрокИсполнения = Исходящий.СрокИсполнения;
	входящий.Проект = Исходящий.Проект;
	
	Если входящий.Организация.ИНН=ИНН2 Тогда   
        входящий.ВидДокумента = 
			Справочники.ВидыВходящихДокументов.НайтиПоНаименованию(НазваниеВидаВходящего2);
	Иначе 
		входящий.ВидДокумента = 
	        Справочники.ВидыВходящихДокументов.НайтиПоНаименованию(НазваниеВидаВходящего1);
	КонецЕсли;
	
	входящий.Записать();

	// автоматическая регистрация входящего документа
	Нумератор = Нумерация.ПолучитьНумераторДокумента(входящий); 
	ВыполнятьРегистрацию = Ложь;
	Если ЗначениеЗаполнено(Нумератор) Тогда        
		//Автоматическая регистрация возможна, входящий документ ещё не зарегистрирован.
		ВыполнятьРегистрацию = Истина;
	КонецЕсли;

	Если ВыполнятьРегистрацию Тогда    
		ТекущийПользователь = ПользователиИнформационнойБазы.ТекущийПользователь();
		входящий.ДатаРегистрации = Исходящий.ДатаРегистрации;
		СтруктураПараметров = 
			НумерацияКлиентСервер.ПолучитьПараметрыНумерации(входящий);
		Нумерация.СформироватьЧисловойНомерДокумента(СтруктураПараметров, входящий.ЧисловойНомер);
			 
		ОписанияОшибок = Новый СписокЗначений;
		СтруктураПараметров = 
		НумерацияКлиентСервер.ПолучитьПараметрыНумерации(входящий);
		Нумерация.СформироватьСтроковыйНомерДокумента(СтруктураПараметров, 
			входящий.РегистрационныйНомер, ОписанияОшибок);
		Если ЗначениеЗаполнено(входящий.РегистрационныйНомер) Тогда 
		// успешно сформирован номер
			входящий.Зарегистрировал = ПараметрыСеанса.ТекущийПользователь;
		Иначе
			Объект.ДатаРегистрации = '00010101';
		КонецЕсли;
		Делопроизводство.ЗаписатьСостояниеДокумента(входящий.Ссылка, ТекущаяДатаСеанса(), 
			Перечисления.СостоянияДокументов.Зарегистрирован, ПараметрыСеанса.ТекущийПользователь);
		входящий.Записать();
	КонецЕсли;

	// копировать файлы из источника (Исходящий) в приёмник (созданный входящий)
	МассивФайлов = Новый Массив();
	исх_файлы = Справочники.Файлы.Выбрать(,,Новый Структура("ВладелецФайла", Исходящий));
	Пока исх_файлы.Следующий() Цикл
		МассивФайлов.Добавить(исх_файлы.Ссылка);
	КонецЦикла;
			
	Если МассивФайлов.Количество()>0 Тогда
		РаботаСФайламиВызовСервера.СкопироватьФайлы(МассивФайлов, входящий.Ссылка);
	КонецЕсли;
КонецЕсли;

После создания обработчика на вкладке «Подписки» формы обработчика добавляем подписку на событие «Регистрация исходящего документа».
Подписка предназначена для связи вида бизнес-события и обработчика. В данном случае выбран предопределенный вид события.

форма привязки подписки к обработчику

После настройки остаётся установить флаг «Обработчик влючен» на форме обработчика.

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

регистр сведений Произошедшие бизнес-события

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

Тэги: 

  • Статьи
  • документооборот
  • программирование

Содержание:

1.      Базовая настройка уведомлений в 1С 8.3 администратором системы

2.      Управление персональными 1С подписками на событие

Программа 1С:Документооборот позволяет оповещать пользователей о событиях. Для этого в системе предусмотрены достаточно гибкие настройки уведомлений.

Уведомления можно получать по e-mail, sms или всплывающим окном. Можно настроить уведомления, которые все сотрудники будут получать по умолчанию. Также пользователи могут самостоятельно настраивать свои подписки на уведомления. В новой версии 1С:Документооборот 2.1 электронный адрес из контактной информации теперь отражается в персональных настройках пользователя в 1С 8.3.

Подписаться можно на события и изменение конкретных данных.

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

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

1.      Базовая настройка уведомлений в 1С 8.3 администратором системы

Первоначальную настройку уведомлений в 1С 8.3 выполняет пользователь с полными правами, т.е. Администратор системы.

Чтобы настроить уведомления необходимо:

1.      Включить в настройках программы флажки «Бизнес-события» и «Уведомления».

Необходимо установить флажок в реквизите «Бизнес-события» в разделе Настройка и администрирование — Настройка программы — Общие настройки:

Рис.1. Установка флага «Бизнес-события»

Флажок в реквизите «Уведомления» устанавливается в разделе Настройка и администрирование — Настройка программы — Общие настройки:

Рис. 2. Установка флага «Уведомления»

  2.      Настроить системную учетную запись электронной почты

Настройка выполняется в разделе Настройка и администрирование — Учетные записи — Системная учетная запись.

В системе по умолчанию предусмотрена предопределенная учетная запись – системная учетная запись. Необходимо открыть ее и дозаполнить недостающие поля.

Рис. 3. Настройка системной учетной записи

3.      Настроить уведомления по умолчанию

Уведомления по умолчанию настраиваются в разделе Настройка и администрирование — Настройка программы — Общие настройки — гиперссылка Настроить в Уведомлениях:

Рис. 4. Настройка уведомлений по умолчанию

По умолчанию, на закладках «Подписки» и «Частоты и сроки уведомлений» установлены флажки/значения, которые администратор может скорректировать.

Набор уведомлений, которые пользователи получают по умолчанию, зависит от настройки «Разрешить пользователям изменять настройки уведомлений» на закладке «Дополнительные настройки», где настройки уведомлений можно изменять.

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

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

Рис. 5. Флажок «Разрешить пользователям изменять настройки уведомлений»

4.      Ввести адреса отправки уведомлений – электронную почту или мобильный телефон сотрудников, куда будут отправляться уведомления.

В «Способах уведомления» настраиваются:

·         виды контактной информации, на которые все пользователи получают уведомления;

·         дополнительные адреса и телефоны конкретных пользователей;

·         отказ от доставки на конкретные виды контактной информации для отдельных пользователей.

Для всех пользователей можно указывать, на какие виды контактной информации уведомления будут поступать.

Рис. 6. Форма настройки способов уведомлений

По умолчанию для уведомлений используется адрес почты из контактной информации пользователя (поле Электронная почта на закладке Адреса, телефоны в справочнике Пользователи).

Дополнительные электронные адреса рассылки может указать как администратор, так и сам пользователь в персональных настройках уведомлений.  

2.      Управление персональными 1С подписками на событие

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

Настройка расположена в разделе Настройка — Персональные настройки — Уведомления

В открывшемся окне настроек пользователь самостоятельно устанавливает флажки для событий, уведомления по которым хочет получать (закладка «Подписки»). На закладке «Частоты и сроки уведомлений» пользователь устанавливает периодичность и частотность отправки уведомлений, например, за сколько дней до приближения срока выполнения задачи присылать сообщение, уведомить единожды или делать это с заданной периодичностью. На закладке «Способы уведомления» — настраивается список электронных адресов и телефонов, на которые будут отправляться уведомления. Возможность получать уведомления и выполнять задачи по почте включаются на закладке «Дополнительные настройки».

Рис.7. Форма настройки персональных уведомлений

Специалист компании ООО «Кодерлайн» 

Анна Анкабаева.

   Strelolga

20.04.16 — 13:17

Добрый день!

Занимаюсь внедрением документооборота. Реализован старт БП по получению электронного письма. У БП есть до. реквизит — почта отправителя. БП состоит из одной задачи «Ознакомление», в которой пользователь заводит нового контрагента. Теперь возникает закономерное желание при выполнении задачи оповещать заказчика (отправителя электронного письма) о результате ознакомления. Стандартными средствами не получается реализовать: если сосздать вторую задачу «Ознакомление с результатами», тогда нужно будет указывать исполнителя..А У нас такого пользователя может в БД и не быть. Хочу см помощью детектора событий отследить момент, когда выполняется задача «Ознакомление» и формировать исх электронное сообщение. Возникает проблема, как написать детектор событий?

  

Партнерская программа EFSOL Oblako

   Лефмихалыч

1 — 20.04.16 — 13:21

>как написать детектор событий

Раздел Нормативно-справочная информация…детекторы бизнес событий…новый и в текстовое поле пиши код.

Но, думаю, на самом деле вопрос у тебя не в этом

   lubitelxml

2 — 20.04.16 — 13:22

ну при завершении БП ознакомления ты можешь выполнять произвольный код, что мешает там написать формирование эл. письма? п.с.: у нас на самописке именно так.

   Strelolga

3 — 20.04.16 — 13:23

Конечно не в этом. Меня интересует, как отобрать задачу «Ознакомление» у нужного мне БП, которая только что выполнилась. И как не обрабатывать одни и те же, задачи

   Strelolga

4 — 20.04.16 — 13:24

(2) расскажи подробнее, как выполнять произвольный код?

   Strelolga

5 — 20.04.16 — 13:25

(2)т.е. сделать в конфигураторе подписку на событие «БППри записи».. и если статус = завершен, тогда формировать письмо?

Это я и делаю. Но хотелось бы научиться пользоваться детекторами событий.

   lubitelxml

6 — 20.04.16 — 13:25

(4) в карте маршрута есть точка завершения, у нее можно указать событие

   lubitelxml

7 — 20.04.16 — 13:26

с детекторами из бсп не работал

   Strelolga

8 — 20.04.16 — 13:27

(6) подробнее можно?

   lubitelxml

9 — 20.04.16 — 13:31

(8) правой по бизнес процессу — открыть карту маршрута, там в самом низу голубенький блок, у него в свойствах есть событие, будет отрабатывать при закрытии БП. Вот мой код из этой процедуры

    ДатаЗавершения = ТекущаяДатаСеанса();

    Если ТипЗнч(ОбъектСогласования) = Тип(«ДокументСсылка.УстановкаЦенНоменклатуры»)  Тогда

        //

        РассылкаУведомлений.ВыполнитьРассылку(ЭтотОбъект.Ссылка, Справочники.ВидыУведомлений.НайтиПоКоду(«000000033»));    

    ИначеЕсли ТипЗнч(ОбъектСогласования) = Тип(«СправочникСсылка.Конкурсы»)  Тогда    

        //

        РассылкаУведомлений.ВыполнитьРассылку(ЭтотОбъект.Ссылка, Справочники.ВидыУведомлений.НайтиПоКоду(«000000035»));    

    КонецЕсли;

   Лефмихалыч

10 — 20.04.16 — 13:32

(9) только это к сабжу не имеет отношения

   lubitelxml

11 — 20.04.16 — 13:33

(10) я в (7) написал что решение без детекторов

   Strelolga

12 — 20.04.16 — 13:36

(9) нет события. все посмотрела на 3 раза. а так идея хорошая

   Strelolga

13 — 20.04.16 — 13:37

Документооборот 8 КОРП, редакция 2.0 (2.0.9.6)

   Strelolga

14 — 20.04.16 — 13:38

что является объектом согласования?

   Лефмихалыч

15 — 20.04.16 — 13:41

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

   Лефмихалыч

16 — 20.04.16 — 13:41

это — если кратко.

   Strelolga

17 — 20.04.16 — 13:42

(15) Эти общие фразы я и так понимаю.

Я не понимаю что написать в код детектора. Как отследить событие, задача завершена.

   Strelolga

18 — 20.04.16 — 13:46

АА. нужно наверное так.. Выбирать все выполненные задачи например за предыдущий час по нужному мне БП. Если хоть одна задача найдена, результат = истина; ТОгда запустится обработка и должна сработать подписка. В которой я опять же буду выбирать все задачи, которые ввыполнены за предыдущий час и которые еще не были обработаны (вот как это отследить???) и отправлять по ним письма. я на верном пути?

   Лефмихалыч

19 — 20.04.16 — 13:53

(17) ну, задавай тогда конкретные вопросы

(18) тебе как-то надо мочь отличать именно твои процессы или задачи программно. Например это по шаблону процесса делать. Или сама придумай способ. Кроме того, тебе надо и в коде детектора, и в коде обработчика отличать процессы/задачи, по которым уже все отправлено, от таких же, по которым не отправлено. Иначе заспамишь дублями.

  

lubitelxml

20 — 20.04.16 — 14:00

(18) почитайте про БП — много статей написано, там все разжевано

Понравилась статья? Поделить с друзьями:
  • 1с дополнительные параметры добавить реквизит
  • 1с дополнительные реквизиты обновить на форме
  • 1с заполнить реквизиты документа при открытии
  • 1с запрет редактирования реквизита по условию
  • 1с значение реквизита объекта табличная часть