Как правильно настроить маршрутизацию по полям документа и кастомизировать почтовые уведомления в 1С:Документооборот 2.1?

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

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

Архитектурный подход: справочник «Внутренние документы» против новых объектов метаданных

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

Рассмотрим правильный алгоритм действий:

  1. Перейдем в режим «1С:Предприятие» и создадим новый Вид документа в справочнике ВидыВнутреннихДокументов.
  2. Для добавления специфических полей (дата командировки, сумма, контрагент) воспользуемся механизмом Дополнительных реквизитов. Это позволяет добавлять поля без изменения конфигурации.
  3. Если типовых полей и дополнительных реквизитов недостаточно (например, требуется сложная табличная часть или специфическая кнопка на форме), будем использовать Расширения конфигурации.

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

Настройка маршрутизации бизнес-процесса на основе условий

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

Для реализации логики «Если сумма > 100 000, то согласование идет к директору, иначе к руководителю отдела», выполним следующие действия:

Шаг 1. Создание условия маршрутизации.
Перейдем в раздел Настройка и администрирование — Условия маршрутизации. Создадим новое условие. У нас есть два варианта написания логики:

Рассмотрим пример скрипта, который проверяет значение в табличной части документа:


// Пример скрипта для условия маршрутизации
Результат = Ложь;
ПредметДокумента = Предмет.Ссылка; // Получаем ссылку на внутренний документ
Если ПредметДокумента.Товары.Итог("Сумма") > 50000 Тогда
    Результат = Истина;
КонецЕсли;

Шаг 2. Применение условия в шаблоне процесса.
В шаблоне комплексного процесса (или в схеме процесса согласования) используем блок Условие. В настройках этого блока укажем созданное нами условие. Теперь система будет автоматически направлять задачу по нужной ветке в зависимости от данных в карточке документа.

Добавление табличных частей через расширения

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

Для добавления своей таблицы:

  1. Создадим новое расширение.
  2. Добавим в расширение справочник ВнутренниеДокументы.
  3. Добавим в него необходимую табличную часть.
  4. Заимствуем форму документа и программно выведем новую таблицу на экран.

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


&НаКлиенте
Процедура Расш1_КомандаЗагрузкиДанных(Команда)
    // Логика открытия файла и заполнения ТЧ
    Объект.МояТабличнаяЧасть.Очистить();
    // ... код парсинга данных ...
КонецПроцедуры

Кастомизация почтовых уведомлений

Перейдем ко второму вопросу автора: как сделать почтовые уведомления более информативными? Стандартные письма часто содержат лишь общую информацию и ссылку на документ. Рассмотрим два способа изменения этой ситуации.

Способ 1. Использование шаблонов уведомлений (Пользовательский уровень)

В системе «1С:Документооборот» предусмотрен справочник Шаблоны уведомлений. Мы можем зайти в настройки уведомлений и отредактировать текст письма, используя автоподстановки типа [Предмет], [Автор], [Дата]. Однако этот способ ограничен только предопределенными полями.

Способ 2. Программная модификация (Уровень разработчика)

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

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


&После("СформироватьТекстУведомления")
Процедура Расш1_СформироватьТекстУведомления(ПараметрыУведомления, ТекстПисьма)
    // Проверяем, что уведомление относится к нашему виду документа
    Если ПараметрыУведомления.Предмет.ВидДокумента = ПредопределенноеЗначение("Справочник.ВидыВнутреннихДокументов.Командировка") Тогда
        // Достаем нужные поля из документа
        ДопИнформация = " Сумма заявки: " + ПараметрыУведомления.Предмет.Сумма;
        // Добавляем информацию в начало письма
        ТекстПисьма = ДопИнформация + Символы.ПС + ТекстПисьма;
    КонецЕсли;
КонецПроцедуры

Прикрепление печатных форм к уведомлениям

Зачастую пользователю удобнее увидеть сформированный PDF-файл прямо в почте, чем переходить в систему. Разберем, как это реализовать:

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

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

← На главную