try{

    let host = "http://127.0.0.1";

    // получаем печатное представление текущей записи
    // Создаём объект POST-запроса
    let post = new org.apache.commons.httpclient.methods.PostMethod(host + "/Synergy/rest/api/asforms/data/print");
    post.setRequestBody('{"dataUUID": "' + dataUUID + '", "format": "PDF"}');
    // Создаём HTTP-клиент и авторизационные данные
    let pdfPostclient = new org.apache.commons.httpclient.HttpClient();
    // переменные login и password доступны из настроек скрипта интерпретатора
    let creds = new org.apache.commons.httpclient.UsernamePasswordCredentials(login, password);
    // Задаём клиенту способ авторизации и передаём авторизационные данные
    pdfPostclient.getParams().setAuthenticationPreemptive(true);
    pdfPostclient.getState().setCredentials(org.apache.commons.httpclient.auth.AuthScope.ANY, creds);
    // Настраиваем заголовки запроса
    post.setRequestHeader("Content-type", "application/json");
    post.setRequestHeader("Content-disposition", "attachment; filename=printFile.pdf");
    // Выполняем метод
    let pdfPostStatus = pdfPostclient.executeMethod(post);
    let pdfResult = post.getResponseBody();
    // Обязательно закрываем соединение
    post.releaseConnection();

    // Загружаем файл печатного представления в раздел Прочие текущего документа
    // Для этого сначала стартуем загрузку файла
    let uploadGet = new org.apache.commons.httpclient.methods.GetMethod(host + "/Synergy/rest/api/storage/start_upload");
    let client = new org.apache.commons.httpclient.HttpClient();
    creds = new org.apache.commons.httpclient.UsernamePasswordCredentials(login, password);
    client.getParams().setAuthenticationPreemptive(true);
    client.getState().setCredentials(org.apache.commons.httpclient.auth.AuthScope.ANY, creds);
    uploadGet.setRequestHeader("Content-type", "application/json");
    let status = client.executeMethod(uploadGet);
    // Получаем HTTP-код возврата и преобразуем его в строку
    // далее используем по своему усмотрению
    let uploadGetResult = uploadGet.getResponseBodyAsString();
    // Обязательно закрываем соединение
    uploadGet.releaseConnection();

    // Затем загружаем файл на сервер
    let parsedUploadGetResult = JSON.parse(uploadGetResult);
    let uploadPart =  new org.apache.commons.httpclient.methods.PostMethod(host + "/Synergy/rest/api/storage/upload_part?file=" + parsedUploadGetResult.file);
    let base64 = new org.apache.commons.codec.binary.Base64();
    let encodedBytes = base64.encodeBase64(pdfResult);
    let filePart = new org.apache.commons.httpclient.methods.multipart.FilePart("body",
        new org.apache.commons.httpclient.methods.multipart.ByteArrayPartSource("filename.txt", encodedBytes));
    let parts = new Array();
    parts.push(filePart);
    let entity = new org.apache.commons.httpclient.methods.multipart.MultipartRequestEntity(parts, uploadPart.getParams());
    uploadPart.setRequestEntity(entity);
    let uploadStatus = client.executeMethod(uploadPart);
    let uploadResult = uploadPart.getResponseBodyAsString();
    console.error("Upload post Result: " + uploadResult);
    // Обязательно закрываем соединение
    uploadPart.releaseConnection();

    // Сохраняем загруженный файл в Прочих текущей записи
    let attachmentCreatePost = new org.apache.commons.httpclient.methods.PostMethod(host + "/Synergy/rest/api/docflow/doc/attachment/create");
    // Настраиваем заголовки запроса
    attachmentCreatePost.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    attachmentCreatePost.setRequestHeader("Accept", "application/json; charset=utf-8");
    attachmentCreatePost.addParameter("documentID", documentID);
    attachmentCreatePost.addParameter("fileName", "result_attachment_" + dataUUID + ".pdf");
    attachmentCreatePost.addParameter("path", "ase:workContainer");
    attachmentCreatePost.addParameter("filePath", parsedUploadGetResult.file);
    let attachmentClient = new org.apache.commons.httpclient.HttpClient();
    creds = new org.apache.commons.httpclient.UsernamePasswordCredentials(login, password);
    // Задаём клиенту способ авторизации и передаём авторизационные данные
    attachmentClient.getParams().setAuthenticationPreemptive(true);
    attachmentClient.getState().setCredentials(org.apache.commons.httpclient.auth.AuthScope.ANY, creds);
    // Выполняем метод
    let attachmentStatus = attachmentClient.executeMethod(attachmentCreatePost);
    let attachmentResult = attachmentCreatePost.getResponseBody();
    // Обязательно закрываем соединение
    attachmentCreatePost.releaseConnection();

    result = true;
    message = 'Печатное представление загружено';
} catch(e) {
    console.error("Error Message: " + e.message);
    result = false;
    message = e.message;
}
