Пример: вы создали документ и вложили его в задачу или в ДП. Теперь нужно подписать его с помощью электронной подписи и отправить контрагенту через Диадок.
Подписание документа с помощью электронной подписи и отправка его контрагенту через Диадок инициируется внутри "Первой Формы", обычно при переходе по маршруту. Для запуска соответствующего действия используется привязка смарт-пакета к смарт-событию "После перехода".
Привязка действия
Привяжите действие к смарт-событию После перехода. В пакете достаточно настроить смарт-действие "Выполнить смарт-скрипт".
Привязка пакета действий к событию в категории.
Скрипт для автоматизации
Скрипт удобнее писать на языке Lua, хотя те же действия можно реализовать с помощью смартов.
-- Получить ID файла из ДП с ID=99
local contractFileId = SQL:scalar([[
SELECT TOP 1 CONCAT(FileId, '.', VersionId)
FROM FileStorageFileToExtParamLinks
WHERE TaskID = @taskId AND ExtParamId = 99 AND IsDeleted = 0
]], {taskId = CONTEXT.Id});
-- получить ИНН (ДП с ID=22) и КПП (ДП с ID=33)
local customerInn = SQL:scalar([[
SELECT TOP 1 epv2.ExtParamValue
FROM ExtParamValues epv1
JOIN ExtParamValues epv2 ON epv2.TaskID = epv1.SelectedTaskId AND epv2.ExtParamId = 22
WHERE epv1.TaskID = @taskId AND epv1.ExtParamId = 11
]], {taskId = CONTEXT.Id});
local customerKpp = SQL:scalar([[
SELECT TOP 1 epv2.ExtParamValue
FROM ExtParamValues epv1
JOIN ExtParamValues epv2 ON epv2.TaskID = epv1.SelectedTaskId AND epv2.ExtParamId = 33
WHERE epv1.TaskID = @taskId AND epv1.ExtParamId = 11
]], {taskId = CONTEXT.Id});
RESULT = customerInn
-- Отправить файл в Диадок смарт-действием "Отправить электронный документ"
SMART:execute_action('SendEdocument', CONTEXT.Id, "task", {
File = contractFileId,
INN = customerInn,
KPP = customerKpp,
NeedReceipt = true,
EdocumentType = nil,
TotalSum = nil
})
RESULT = contractFileId
|