Решения

Ссылка Описание
# Добавить настраиваемый веб-шаблон из раздела "Шаблоны документов" на страницу.
# Запрос на получение списка всех настраиваемых полей.
# Отправить и создать клиентский файл на сервере.

Добавить настраиваемый веб-шаблон из раздела "Шаблоны документов" на страницу.

<link rel="stylesheet" type="text/css" href="custom_web_template.html?object_id=<%=ArrayFirstElem(XQuery("for $elem in custom_web_templates where $elem/code=5796971352983414117 return $elem")).id%>

Запрос на получение списка всех настраиваемых полей.

Если у вас SQL база, то данный объект хранится в таблице [(spxml_blobs)].

Для получения списка полей сделайте запрос в SQL Server Managment Studio:

SELECT *, CONVERT(xml,(data )) as xml_data 
FROM [(spxml_blobs)]
WHERE url like '%custom_templates%'

Отправить и создать клиентский файл на сервере.

Создайте в корне вашего сайта файл _save-file.html с наполнением ниже и откройте его

(данный код будет сохранять файл любого формата в корне сайта)

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

<%
if(Request.UrlParam === 'save') {
var body = tools.read_object(Request.Body, 'json')
PutFileData(UrlToFilePath('x-local://wt/web/_' + body.name), Base64Decode(body.data))

var newDoc = tools.new_doc_by_name('resource')
root = newDoc.resource
root.name = body.name
root.file_name = body.name
root.file_url = 'x-local://wt/web/_' + body.name
newDoc.BindToDb(DefaultDb)
newDoc.Save()
}
%>
<input type="file">
<button onclick="save()">Save</button>
<script>
function save() {
    var file = document.querySelector('input').files[0]
    if (file) {
        var reader = new FileReader()
        reader.readAsDataURL(file)
        reader.onload = function(e) {
            var data = e.target.result.replace('data:' + file.type + ';base64,', '')
            xhr({
                "name": file.name,
                "data": data
            })
        }
    }
}

function xhr(body) {
    var xhr = new XMLHttpRequest()
    xhr.open("POST", "/_save-file.html?save")
    xhr.send(JSON.stringify(body))
    xhr.onreadystatechange = function() {
        if (xhr.readyState === 4 && xhr.status === 200) {
            alert("Saved")
        }
    }
}
</script>

results matching ""

    No results matching ""