Пользовательский модуль для выбора МЧД при подписании

В ELMA365 начиная с версии 2025.11 можно использовать машиночитаемые доверенности, созданные с помощью решения Управление МЧД, в качестве гарантии права пользователя подписывать документы.

Например, сотрудник в компании заменяет руководителя. При рассмотрении договора в окне подписания он отмечает опцию Использовать МЧД. В появившемся поле МЧД он выбирает выданную на его имя доверенность из раздела Управление МЧД > Доверенности. После подписания сведения о доверенности можно просмотреть на боковой панели элемента в архиве подписей.

m4d_for_signing-1

Порядок настройки подписания с доверенностью

  1. Убедитесь, что в компании:
  1. Создайте пользовательский модуль с виджетами:
  1. Активируйте применение доверенности при подписании в виджете Подпись приложения и графическом элементе Подписать.

Начало внимание

Создавать и настраивать модули могут только пользователи, включённые в группу Администраторы.

Конец внимание

Шаг 1. Создать модуль и виджет для выбора МЧД при подписании

  1. Перейдите в раздел Администрирование > Модули и в правом верхнем углу нажмите кнопку + Модуль. Выберите Создать.
  2. В открывшемся окне введите название модуля, например МЧД при подписании, и краткое описание его работы, добавьте иконку. Нажмите кнопку Создать.
  3. На странице управления модулем перейдите на вкладку Виджеты и нажмите кнопку + Виджет.
  4. В открывшемся окне задайте следующие параметры:
    m4d_for_signing-2
  • Название* — укажите название виджета, например Выбор МЧД;
  • Код виджета* — задайте код виджета, использующийся при работе с Web API;  
  • Расширение — выберите Подпись приложения > Выбор МЧД при подписании.
  1. Нажмите кнопку Сохранить.
  2. В открывшемся дизайнере интерфейсов перейдите на вкладку Контекст. Чтобы во время подписания пользователь мог выбрать определённую доверенность из раздела Управление МЧД > Доверенности, добавьте переменную типа Категория (одиночный), например МЧД.
  3. Затем перейдите на вкладку Настройки > Доступные элементы и включите опцию Разрешить использование всех элементов. Тогда при настройке скрипта будут доступны переменные приложения Доверенности.
  4. Перейдите на вкладку Скрипты и настройте скрипт для обмена данными между виджетом и приложением Доверенности. Таким образом записи из приложения будут доступны в созданной переменной МЧД во время подписания документа.
    Скрипт может выглядеть следующим образом:

async function onInit() {
    // Задаём варианты МЧД (добавляем варианты выбора в категорию из контекста)
    const items = await Global.ns.mchd_new.app.doverennost.search().all();
    const m4dField = Context.fields.m4d as any;
 
    m4dField.data.variants = (items ?? []).map(item => ({
            name: item.data.__name,
            code: item.data.__id
        }));
}
 
// Присваиваем МЧД из контекста виджета ID выбранной пользователем МЧД для отображения
доверенности в архиве
async function onSelect(): Promise<void> {
    Context.data.poaID = Context.data.m4d?.code ?? '';
}

В скрипте заданы функции:

  • onInit() — загрузка элементов приложения Доверенности в поле МЧД во время инициализации виджета Выбор МЧД в окне подписания документа;
  • onSelect() — сохранение идентификатора выбранной доверенности в контексте виджета, чтобы в дальнейшем корректно показывать её данные в архиве подписей.
  1. Для отображения в окне подписания переменной МЧД перейдите на вкладку Шаблон и разместите переменную на поле для моделирования виджета.
  2. В открывшемся окне настройки свойства перейдите на вкладку События. В поле Событие при окончании изменения значения выберите функцию onSelect(), прописанную в скрипте. Она позволяет сохранить данные о доверенности для их последующего отображения в архиве подписей.
  3. Сохраните изменения.
  4. Сохраните и опубликуйте виджет.

Шаг 2. Создать виджет для отображения МЧД в архиве подписей

Информация о подписи с применением МЧД сохраняется на боковой панели элемента приложения в архиве подписей.

m4d_for_signing-3

Чтобы просматривать сведения о доверенности, например дату выдачи, полномочия подписанта, в пользовательском модуле создайте отдельный виджет. Для отображения в нём данных об используемой МЧД в контекст виджета добавьте переменные, соответствующие свойствам приложения Доверенности.

Выполните следующие действия:

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

async function onInit(): Promise<void> {
    const poaID = Context.data.poaID!;
    // Ищем доверенность по совпадению её ID c ID МЧД из контекста виджета
    const item = await Global.ns.mchd_new.app.doverennost
        .search()
        .where(f => f.__id.eq(poaID))
        .first();
 
    if (!item) {
        // Если доверенность не найдена, прекращаем выполнение
        return;
    }
 
    // Формируем контекст с данными об используемой доверенности
    Context.data.individual_entrepreneur = item.data.individual_entrepreneur ?? undefined;
    Context.data.data_vid_dover = item.data.data_vid_dover ?? undefined;
    Context.data.poln_name = item.data.poln_name ?? undefined
}

  1. Сохраните и опубликуйте виджет.

Шаг 3. Активировать подписание с доверенностью

Сотрудник может выбирать доверенность во время подписания документа:

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

Когда вы настроите пользовательский модуль и создадите виджеты для применения МЧД, включите обязательность использования доверенности при подписании. Для этого в настройках виджета или графического элемента в поле МЧД выберите один из вариантов:

m4d_for_signing-4

  • Не использовать — опция Использовать МЧД не отобразится. Пользователь не сможет выбрать доверенность;
  • Опционально — опция Использовать МЧД по умолчанию не активирована, пользователь сможет её включить;
  • Предпочтительно — опция Использовать МЧД активирована по умолчанию, пользователь сможет её выключить;
  • Обязательно — опция Использовать МЧД активирована по умолчанию, её нельзя выключить. Пользователь не сможет подписать документ без указания доверенности.

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