НачатьПомещениеФайлов веб клиент 8.3.13

1. sybastik 04.12.18 13:30 Сейчас в теме
Добрый день.

Решил попробовать новый механизм загрузки файлов через веб-клиент без расширения в 8.3.13

&НаКлиенте
Процедура ДобавитьФайл(Команда)
	
	Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
	ДополнительныеПараметры = "";
	ОбработкаОкончанияЗагрузки = Новый ОписаниеОповещения("ОбработчикЗавершенияЗагрузки", ЭтотОбъект, ДополнительныеПараметры);
	
	НачатьПомещениеФайла(ОбработкаОкончанияЗагрузки, , Диалог, Истина, УникальныйИдентификатор);
	
КонецПроцедуры

&НаКлиенте
Процедура ОбработчикЗавершенияЗагрузки(Результат, АдресНовогоФайла, ПомещаемыйФайл, ДопПараметры) Экспорт
	
	Файл = Новый Файл(ПомещаемыйФайл);
	Расширение = Файл.Расширение;
	Имя = Файл.ИмяБезРасширения;	
	
	ДвоичныеДанные = Новый ДвоичныеДанные(ПомещаемыйФайл);
	Идентификатор  = Новый УникальныйИдентификатор;
	
	АдресХранилища = ПоместитьВоВременноеХранилище(ДвоичныеДанные, Идентификатор); 
	
	ОбщегоНазначения.СохранитьФайл(АдресХранилища, Имя, Расширение, Объект.Ссылка);
	
	ЗаполнитьТаблицыФайлов();
	
КонецПроцедуры
Показать


И никак не могу получить доступ к загружаемому файлу.
Гружу через Хром. Он и будет на продакшене, если взлетит.

Параметр АдресНовогоФайла - html код
Помещаемый файл - строка с именем файла.

Прошу помощи, что я делаю не так. Как затянуть файл к себе в хранилище?
Этот же код в тонком клиенте прекрасно отрабатывает.
По теме из базы знаний
Найденные решения
8. sybastik 05.12.18 09:30 Сейчас в теме
Вот такой код сработал.


&НаКлиенте
Процедура ДобавитьФайл(Команда)
	
	ОписаниеОповещения = Новый ОписаниеОповещения("ОбработатьВыборФайла", ЭтаФорма);
	ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
	ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
	
	НачатьПомещениеФайлов(ОписаниеОповещения, , ДиалогОткрытияФайла, Истина, УникальныйИдентификатор);
	
КонецПроцедуры

&НаКлиенте
Процедура ОбработатьВыборФайла(ПомещенныеФайлы, ДополнительныеПараметры) Экспорт

    Если ПомещенныеФайлы = Неопределено Тогда
        Возврат;
    КонецЕсли;

    Для каждого ПереданныйФайл Из ПомещенныеФайлы Цикл
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. spacecraft 04.12.18 14:39 Сейчас в теме
(1) Процедура ОбработчикЗавершенияЗагрузки(Результат, АдресНовогоФайла, ПомещаемыйФайл, ДопПараметры) Экспорт
АдресНовогоФайла это уже адрес во временном хранилище. Файл уже был туда помещен. Не нужно в коде пытаться сделать это еще раз, тем более со строкой, в которой просто хранится имя файла, а не сам файл.
3. sybastik 04.12.18 14:45 Сейчас в теме
(2)в параметре АдресНовогоФайла html код..
4. spacecraft 04.12.18 15:00 Сейчас в теме
(3) И?
Такой код работает?
&НаКлиенте
Процедура ОбработчикЗавершенияЗагрузки(Результат, АдресНовогоФайла, ПомещаемыйФайл, ДопПараметры) Экспорт
    
    Файл = Новый Файл(ПомещаемыйФайл);
    Расширение = Файл.Расширение;
    Имя = Файл.ИмяБезРасширения;    
    ОбщегоНазначения.СохранитьФайл(АдресНовогоФайла, Имя, Расширение, Объект.Ссылка);
...
Показать
5. sybastik 05.12.18 00:50 Сейчас в теме
(4) В тонком клиенте работает.
А вот в веб-клиенте нет.

АдресНовогоФайла в веб-клиенте имеет следующее значение:

<!DO CTYPE html>
<ht ml>
<head>
    <title>1С:Предприятие</title>
    <met a http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <met a http-equiv="X-UA-Compatible" content="IE=edge" />
    [*]
<st yle type="text/css">
BODY
{
    margin: 0;
    padding: 0;
    border: 0;
    font-family: 'MS Sans Serif';
    color: #594304;
}
</style>
    <sc ript language="javascript" type="text/javascript">
    var BaseUrl = window.location.href.substr(
      0, window.location.href.lastIndexOf("/")) + "/";

    var base = "/test/ru";
    var lang = "ru_RU";
    var redirect = false;
    var openIDRelyingParty = false;
    var splashTopBrandingImage = false;
    var splashBottomBrandingImage = false;
    var hasBranding = false;
    var exitURL = "";
    var oidcAllowStandardAuthentication = "";
    var version = "8.3.13.1644"

    var path = base;
    var url = window.location.protocol + "//" + window.location.host;
    if (path.slice(-1) !== '/') path += '/';
    if (base.length !== 0)
        url += path;

    var paramKeyPrefix = getParameterValue(window.location.href, 'sk');
    var keyPrefix = (paramKeyPrefix) ? paramKeyPrefix : generateKeyPrefix();

    if (!isStorageSupported())
    {
        url += '?sk=' + keyPrefix;
    }

    function generateKeyPrefix()
    {
        function s4()
        {
            return Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1);
        }

        return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4();
    }

    function removeUrlParameter(strUrl, paramName)
    {
        var re = new RegExp('[&]?' + paramName + '=[^&]+', 'gi');

        var result = strUrl.replace(re, '');

        if (result.indexOf('?') === result.length - 1)
        {
            result = result.substr(0, result.indexOf('?'));
        }

        return result;
    }

    function getParameterValue(strUrl, paramName)
    {
        var re = new RegExp('[\?&]?' + paramName + '=([^&]+)', 'gi');

        var matches = re.exec(strUrl);

        if (matches && matches.length > 1 && matches[1])
        {
            return matches[1];
        }

        return null;
    }


    function writeToStorage(key, value, inQuote, encode)
    {
        if (value)
        {
            if (inQuote && value.length > 1 &&
                ((value.charAt(0) === '"' && value.charAt(value.length - 1) === '"') ||
                 (value.charAt(0) === '\'' && value.charAt(value.length - 1) === '\'')))
            {
                value = value.substring(1, value.length - 1);
            }
            if (encode)
                value = encodeURIComponent(value);

            if (!isStorageSupported())
            {
                var expiresDate = new Date();
                // Время жизни - 1 минута
                expiresDate = new Date(expiresDate.getTime() + 1000 * 60);

                document.cookie = keyPrefix + '_' + key + '=' + value + ';expires=' +
                                  expiresDate.toGMTString() + ';Path=' + path;
            }
            else
            {
                sessionStorage.setItem(key, value);
            }
        }
        else
        {
            if (!isStorageSupported())
            {
                var expiresDate = new Date();
                // Время жизни - 1 минута
                expiresDate = new Date(expiresDate.getTime() + 1000 * 60);

                document.cookie = keyPrefix + '_' + key + '=;expires=' +
                                  expiresDate.toGMTString() + 'Path=' + path;
            }
            else
            {
                sessionStorage.setItem(key, value);
            }
        }
    }

    function getFromStorage(key)
    {
        if (isStorageSupported())
        {
            return sessionStorage.getItem(key)
        }
        else
        {
            var cookies = document.cookie.split(";");

            for (var i = 0; i < cookies.length; i++)
            {
                var values = cookies[i].split("=");
                var str = values[0];
                str = str.replace(/(^\s*)|(\s*$)/g, "");

                if (str === keyPrefix + '_' + key)
                {
                    return values[1];
                }
            }
        }
        return null;
    }

    function deleteFromStorage(key)
    {
        if (isStorageSupported())
        {
            sessionStorage.removeItem(key);
        }
        else
        {
            document.cookie = keyPrefix + '_' + key +
                              "=;expires=Fri, 21 Dec 1976 04:31:24 GMT;Path="
                              + path;
        }
    }

    function isStorageSupported()
    {
        var testKey = 'test';

        try
        {
            var storage = window.sessionStorage;
            storage.setItem(testKey, '1');
            storage.removeItem(testKey);

            return true;
        }
        catch (error)
        {
            return false;
        }
    }

    function writeCookie(cookieName, value, inQuote, encode)
    {
        if (value)
        {
            if (inQuote && value.length > 1 &&
                ((value.charAt(0) === '"' && value.charAt(value.length - 1) === '"') ||
                 (value.charAt(0) === '\'' && value.charAt(value.length - 1) === '\'')))
            {
                value = value.substring(1, value.length - 1);
            }
            if (encode)
                value = encodeURIComponent(value);

            document.cookie = cookieName + '=' + value + ';Path=' + path;
        }
        else
        {
            document.cookie = cookieName + '=;Path=' + path;
        }
    }

    function getCookie(cookieName)
    {
        var cookies = document.cookie.split(";");
        for (var i = 0; i < cookies.length; i++)
        {
            var values = cookies[i].split("=");
            var str = values[0];
            str = str.replace(/(^\s*)|(\s*$)/g, "");
            if (str === cookieName)
                return values[1];
        }
        return null;
    }
    function deleteCookie(cookieName)
    {
        document.cookie = cookieName + "=;expires=Fri, 21 Dec 1976 04:31:24 GMT;Path=" + path;
    }

    function getHash ()
    {
        var hash = "";
        if (/msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent) &&
           (/msie 6\.0/i).test(navigator.userAgent))
        {
            var str = window.location.href;
            var inStr = false;
            var strCh = "";
            for (var i = str.length - 1; i >= 0; i--)
            {
                var ch = str.charAt(i);
                if (inStr)
                {
                    if (ch === strCh)
                        inStr = false;
                    continue;
                }
                if (ch === "\"" || ch === "'")
                {
                    inStr = true;
                    strCh = ch;
                    continue;
                }
                if (ch === "#")
                {
                    hash = str.substr(i + 1);
                    break;
                }
            }
        }
        else
        {
            hash = window.location.hash;
        }
        return hash;
    }

    function getParams ()
    {
        if (window.location.search)
        {
            var params = decodeURIComponent(window.location.search).split("&");
            if (params && params[0].substring(0, 1) === "?")
                params[0] = params[0].substr(1);
            return params;
        }
        else
        {
            return [];
        }
    }

    function proceedOIDC (enableOpenIDAuth, openIDInfo)
    {
        if (getFromStorage('vrs_seance'))
        {
            setTimeout(continueLoadHTML.bind(this, true), 50);
            return false;
        }

        var OIDCSelectedProvider = getFromStorage('vrs_sel_prov');
        deleteFromStorage('vrs_sel_prov');

        writeToStorage('vrs_oidcAllowStandardAuthentication',
            (OIDCSelectedProvider ? OIDCSelectedProvider : oidcAllowStandardAuthentication));

        if (enableOpenIDAuth)
            writeToStorage('vrs_oiadenable', '1');

        if (openIDInfo)
        {
            var openIDStr = JSON.parse(openIDInfo);
            for (var key in openIDStr)
            {
                var strIDStr = JSON.stringify(openIDStr);
                writeToStorage('vrs_oauth', strIDStr);
                setTimeout(continueLoadHTML.bind(this, false), 50);
                return false;
            }
        }
        return true;
    }

    function initMain()
    {
        var hash = getHash();
        if (hash)
        {
            hash = decodeURIComponent(hash);
            writeToStorage('vrs_hash', hash, false, true);
        }

        var params = getParams();

        var enableOpenIDAuth = openIDRelyingParty;
        var openIDLogout = false;

        for (var i = 0; i < params.length; i++)
        {
            var arr = params[i].split("=");
            if (!arr)
                continue;

            var paramName = arr[0].toUpperCase();
            var paramVal = null;
            if (arr.length > 2)
                paramVal = arr.slice(1).join('=');
            else if (arr.length > 1)
                paramVal = arr[1];
            var paramValUp = paramVal ? paramVal.toUpperCase() : paramVal;

            if (paramName === "O" && paramValUp)
            {
                var v = (paramValUp === "LOW") ? "true" : (paramValUp === "NORMAL") ? "false" : null;
                if (v !== null)
                    writeToStorage("vrs_slow", v);
            }
            else if (paramName === "C")
                writeToStorage('vrs_param', paramVal, true, true);
            else if (paramName === "N")
                writeToStorage('vrs_user', paramVal, true, true);
            else if (paramName === "P")
                writeToStorage('vrs_psw', paramVal, false, true);
            else if (paramName === "WA-")
                writeToStorage('vrs_nowa');
            else if (paramName === "DISABLESTARTUPMESSAGES")
                writeToStorage('vrs_disStartMsg');
            else if (paramName === "DISPLAYALLFUNCTIONS")
                writeToStorage('vrs_displayAllFunctions');
            else if (paramName === "VL")
                writeToStorage('vrs_vl', paramVal);
            else if (paramName === "L")
                writeToStorage('vrs_ul', paramVal);
            else if (paramName === "DISPLAYPERFORMANCE")
                writeToStorage('vrs_perf');
            else if (paramName === "DISPLAYUSERNOTIFICATIONLIST")
                writeToStorage('vrs_displayusernotificationlist');
            else if (paramName === "DEBUGGERURL")
                writeToStorage('vrs_deburl', paramVal, true, true);
            else if (paramName === "DEBUG")
                writeToStorage('vrs_debug', paramVal || 'TCP');
            else if (paramName === "NCP")
                writeToStorage('vrs_nocheckpopup');
            else if (paramName === "TESTCLIENT")
                writeToStorage('vrs_test');
            else if (paramName === "TESTCLIENTID")
                writeToStorage('vrs_test_id', paramVal || '');
            else if (paramName === "Z")
                writeToStorage('vrs_zn', paramVal, true, true);
            else if (paramName === "ITAXI")
                writeToStorage('vrs_interface', '1');
            else if (paramName === "ITDI" || paramName === "ISDI")
                writeToStorage('vrs_interface', '0');
            else if (paramName === "OIDA-")
                enableOpenIDAuth = false;
            else if (paramName === "VRS-SEANCE")
                writeToStorage('vrs_seance', paramVal);
            else if (paramName === "AUTHOFF" && openIDRelyingParty)
                openIDLogout = true;
            else if (paramName === "USEPRIVILEGEDMODE")
                writeToStorage('vrs_privMode');
            else if (paramName === "VRSSESSION2")
                writeToStorage('vrs_session2', paramVal);
            else if (paramName === "DEBUGGCC")
            {
                var debugGcc = paramValUp || "1";
                if (debugGcc === "1" || debugGcc === "ON" || debugGcc === "TRUE")
                    writeCookie('vrs_dbggcc');
                else
                    deleteCookie('vrs_dbggcc');
            }
            else if (paramName === "SYSTEMWEBCLIENTSTAT")
                writeToStorage('vrs_webclientstat');
            else if (paramName === "EXECUTE")
                writeToStorage('vrs_execute', paramVal);
            else if (paramName === 'ENABLECHECKSERVERCALLS')
                writeToStorage('vrs_enablecheckservercalls');
            else if (paramName === 'OIDCSELECTEDPROVIDER')
                writeToStorage('vrs_sel_prov', paramVal);
            else if (paramName == 'DISABLESPLASH' && hasBranding)
                writeToStorage('vrs_disablesplash');
            else if (paramName === 'AUTHMESSAGE' && paramVal)
                alert(paramVal);
        }

        if (getFromStorage('vrs_nooida'))
            enableOpenIDAuth = false;
        else if(!enableOpenIDAuth)
            writeToStorage('vrs_nooida', '1');

        // Значение для локейла форматирования
        writeToStorage('vrs_lang', lang);

        if (splashTopBrandingImage)
            writeToStorage('vrs_splashTop');

        if (splashBottomBrandingImage)
            writeToStorage('vrs_splashBottom');

        if (exitURL)
            writeToStorage('vrs_exitURL', exitURL, true, true);

        if (openIDLogout)
        {
            window.location.replace("e1cib/oid2rp?cmd=logout" + getZoneParam());
            return;
        }

        if (removeUrlParameter(window.location.search, 'sk') || hash || redirect)
        {
            window.location.replace(url);
            return;
        }

        var openIDInfo = document.getElementById('openidconnectconfig').innerHTML;
        if (openIDInfo && !proceedOIDC(enableOpenIDAuth, openIDInfo))
            return;

        if (getFromStorage('vrs_afteroidainit') === '1')
        {
            deleteFromStorage('vrs_afteroidainit');
        }
        else if (enableOpenIDAuth)
        {
            writeToStorage('vrs_oida', '1');
            writeToStorage('vrs_afteroidainit', '1');
            window.location.replace("e1cib/oid2rp?cmd=init" + getZoneParam());
            return;
        }
        setTimeout(continueLoadHTML.bind(this, true), 50);
    }

    function getZoneParam()
    {
        var zone = getFromStorage("vrs_zn");
        if (zone)
            return "&z=" + zone;
        else
            return "";
    }

    function getHttpRequest()
    {
        var httpRequest;
        if (window.XMLHttpRequest)
        {
            httpRequest = new XMLHttpRequest();
        }
        else if (window.ActiveXObject)
        {
            var progIDs = ["Msxml2.XMLHTTP", "Microsoft.XMLHTTP"];
            for (var i = 0; i < progIDs.length; i++)
            {
                try
                {
                    httpRequest = new ActiveXObject(progIDs[i]);
                    break;
                }
                catch (e)
                {
                }
            }
        }
        return httpRequest;
    }

    function continueLoadHTML(isMainFormHTML)
    {
        var httpRequest = getHttpRequest();
        if (!httpRequest)
        {
            alert("Данный браузер не может быть использован для работы с программой 1С:Предприятие");
            return;
        }

        var url = (isMainFormHTML ? "mainform.html" : "authform.html") + "?sysver=" + version;
        httpRequest.open("GET", encodeURI(url), false);
        httpRequest.setRequestHeader("Content-Type", "text/html; charset=utf-8");
        httpRequest.setRequestHeader("Accept", "text/html");
        httpRequest.send("");
        var html = httpRequest.responseText;

        // Посылаем событие асинхронному расширению в Chrome перед doc.open,
        // который уничтожит все навешенные ранее обработчики
        if (/chrome/i.test(navigator.userAgent))
        {
            var startLoadWebClientEvent = new CustomEvent("1c.startLoadWebClient");
            window.dispatchEvent(startLoadWebClientEvent);
        }

        var doc = document;
        doc.open("text/html", "replace");
        doc.write(html);
        doc.close();
    }

    window.on error = function(message)
    {
        alert(message);
        return true;
    }
    </sc ript>
</head>
<body on load="initMain();">
    <div id="openidconnectconfig" style="display:none"></div>
</body>
</html>
Показать
7. spacecraft 05.12.18 07:28 Сейчас в теме
(5) попробуйте другой релиз 1С и/или браузер.
На 8.3.13.1644 отрабатывает нормально. IE11 и Yandex браузеры.
В АдресНовогоФайла получается: "e1cib/tempstorage/996090a3-37de-4e36-9413-51ecd44eb1e7?seanceId=d22cb158-06bc-414c-b0ee-c2fde217fd50". Это адрес временного хранилища.
6. sybastik 05.12.18 03:22 Сейчас в теме
Попробовал тоже самое на демо-базе к платформе. Тоже не работает в веб-клиенте.

Неправильный путь к файлу '<!DO CTYPE html>
<ht ml>
<head>
    <title>1С:Предприятие</title>
    <met a http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <met a http-equiv="X-UA-Compatible" content="IE=edge" />
    [*]
<st yle type="text/css">
BODY
{
    margin: 0;
    padding: 0;
    border: 0;
    font-family: 'MS Sans Serif';
    color: #594304;
}
</style>
    <sc ript language="javascript" type="text/javascript">
    var BaseUrl = window.location.href.substr(
      0, window.location.href.lastIndexOf("/")) + "/";

    var base = "/test/ru";
    var lang = "ru_RU";
    var redirect = false;
    var openIDRelyingParty = false;
    var splashTopBrandingImage = false;
    var splashBottomBrandingImage = false;
    var hasBranding = false;
    var exitURL = "";
    var oidcAllowStandardAuthentication = "";
    var version = "8.3.13.1644"

    var path = base;
    var url = window.location.protocol + "//" + window.location.host;
    if (path.slice(-1) !== '/') path += '/';
    if (base.length !== 0)
        url += path;

    var paramKeyPrefix = getParameterValue(window.location.href, 'sk');
    var keyPrefix = (paramKeyPrefix) ? paramKeyPrefix : generateKeyPrefix();

    if (!isStorageSupported())
    {
        url += '?sk=' + keyPrefix;
    }

    function generateKeyPrefix()
    {
        function s4()
        {
            return Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1);
        }

        return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4();
    }

    function removeUrlParameter(strUrl, paramName)
    {
        var re = new RegExp('[&]?' + paramName + '=[^&]+', 'gi');

        var result = strUrl.replace(re, '');

        if (result.indexOf('?') === result.length - 1)
        {
            result = result.substr(0, result.indexOf('?'));
        }

        return result;
    }

    function getParameterValue(strUrl, paramName)
    {
        var re = new RegExp('[\?&]?' + paramName + '=([^&]+)', 'gi');

        var matches = re.exec(strUrl);

        if (matches && matches.length > 1 && matches[1])
        {
            return matches[1];
        }

        return null;
    }


    function writeToStorage(key, value, inQuote, encode)
    {
        if (value)
        {
            if (inQuote && value.length > 1 &&
                ((value.charAt(0) === '"' && value.charAt(value.length - 1) === '"') ||
                 (value.charAt(0) === '\'' && value.charAt(value.length - 1) === '\'')))
            {
                value = value.substring(1, value.length - 1);
            }
            if (encode)
                value = encodeURIComponent(value);

            if (!isStorageSupported())
            {
                var expiresDate = new Date();
                // Время жизни - 1 минута
                expiresDate = new Date(expiresDate.getTime() + 1000 * 60);

                document.cookie = keyPrefix + '_' + key + '=' + value + ';expires=' +
                                  expiresDate.toGMTString() + ';Path=' + path;
            }
            else
            {
                sessionStorage.setItem(key, value);
            }
        }
        else
        {
            if (!isStorageSupported())
            {
                var expiresDate = new Date();
                // Время жизни - 1 минута
                expiresDate = new Date(expiresDate.getTime() + 1000 * 60);

                document.cookie = keyPrefix + '_' + key + '=;expires=' +
                                  expiresDate.toGMTString() + 'Path=' + path;
            }
            else
            {
                sessionStorage.setItem(key, value);
            }
        }
    }

    function getFromStorage(key)
    {
        if (isStorageSupported())
        {
            return sessionStorage.getItem(key)
        }
        else
        {
            var cookies = document.cookie.split(";");

            for (var i = 0; i < cookies.length; i++)
            {
                var values = cookies[i].split("=");
                var str = values[0];
                str = str.replace(/(^\s*)|(\s*$)/g, "");

                if (str === keyPrefix + '_' + key)
                {
                    return values[1];
                }
            }
        }
        return null;
    }

    function deleteFromStorage(key)
    {
        if (isStorageSupported())
        {
            sessionStorage.removeItem(key);
        }
        else
        {
            document.cookie = keyPrefix + '_' + key +
                              "=;expires=Fri, 21 Dec 1976 04:31:24 GMT;Path="
                              + path;
        }
    }

    function isStorageSupported()
    {
        var testKey = 'test';

        try
        {
            var storage = window.sessionStorage;
            storage.setItem(testKey, '1');
            storage.removeItem(testKey);

            return true;
        }
        catch (error)
        {
            return false;
        }
    }

    function writeCookie(cookieName, value, inQuote, encode)
    {
        if (value)
        {
            if (inQuote && value.length > 1 &&
                ((value.charAt(0) === '"' && value.charAt(value.length - 1) === '"') ||
                 (value.charAt(0) === '\'' && value.charAt(value.length - 1) === '\'')))
            {
                value = value.substring(1, value.length - 1);
            }
            if (encode)
                value = encodeURIComponent(value);

            document.cookie = cookieName + '=' + value + ';Path=' + path;
        }
        else
        {
            document.cookie = cookieName + '=;Path=' + path;
        }
    }

    function getCookie(cookieName)
    {
        var cookies = document.cookie.split(";");
        for (var i = 0; i < cookies.length; i++)
        {
            var values = cookies[i].split("=");
            var str = values[0];
            str = str.replace(/(^\s*)|(\s*$)/g, "");
            if (str === cookieName)
                return values[1];
        }
        return null;
    }
    function deleteCookie(cookieName)
    {
        document.cookie = cookieName + "=;expires=Fri, 21 Dec 1976 04:31:24 GMT;Path=" + path;
    }

    function getHash ()
    {
        var hash = "";
        if (/msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent) &&
           (/msie 6\.0/i).test(navigator.userAgent))
        {
            var str = window.location.href;
            var inStr = false;
            var strCh = "";
            for (var i = str.length - 1; i >= 0; i--)
            {
                var ch = str.charAt(i);
                if (inStr)
                {
                    if (ch === strCh)
                        inStr = false;
                    continue;
                }
                if (ch === "\"" || ch === "'")
                {
                    inStr = true;
                    strCh = ch;
                    continue;
                }
                if (ch === "#")
                {
                    hash = str.substr(i + 1);
                    break;
                }
            }
        }
        else
        {
            hash = window.location.hash;
        }
        return hash;
    }

    function getParams ()
    {
        if (window.location.search)
        {
            var params = decodeURIComponent(window.location.search).split("&");
            if (params && params[0].substring(0, 1) === "?")
                params[0] = params[0].substr(1);
            return params;
        }
        else
        {
            return [];
        }
    }

    function proceedOIDC (enableOpenIDAuth, openIDInfo)
    {
        if (getFromStorage('vrs_seance'))
        {
            setTimeout(continueLoadHTML.bind(this, true), 50);
            return false;
        }

        var OIDCSelectedProvider = getFromStorage('vrs_sel_prov');
        deleteFromStorage('vrs_sel_prov');

        writeToStorage('vrs_oidcAllowStandardAuthentication',
            (OIDCSelectedProvider ? OIDCSelectedProvider : oidcAllowStandardAuthentication));

        if (enableOpenIDAuth)
            writeToStorage('vrs_oiadenable', '1');

        if (openIDInfo)
        {
            var openIDStr = JSON.parse(openIDInfo);
            for (var key in openIDStr)
            {
                var strIDStr = JSON.stringify(openIDStr);
                writeToStorage('vrs_oauth', strIDStr);
                setTimeout(continueLoadHTML.bind(this, false), 50);
                return false;
            }
        }
        return true;
    }

    function initMain()
    {
        var hash = getHash();
        if (hash)
        {
            hash = decodeURIComponent(hash);
            writeToStorage('vrs_hash', hash, false, true);
        }

        var params = getParams();

        var enableOpenIDAuth = openIDRelyingParty;
        var openIDLogout = false;

        for (var i = 0; i < params.length; i++)
        {
            var arr = params[i].split("=");
            if (!arr)
                continue;

            var paramName = arr[0].toUpperCase();
            var paramVal = null;
            if (arr.length > 2)
                paramVal = arr.slice(1).join('=');
            else if (arr.length > 1)
                paramVal = arr[1];
            var paramValUp = paramVal ? paramVal.toUpperCase() : paramVal;

            if (paramName === "O" && paramValUp)
            {
                var v = (paramValUp === "LOW") ? "true" : (paramValUp === "NORMAL") ? "false" : null;
                if (v !== null)
                    writeToStorage("vrs_slow", v);
            }
            else if (paramName === "C")
                writeToStorage('vrs_param', paramVal, true, true);
            else if (paramName === "N")
                writeToStorage('vrs_user', paramVal, true, true);
            else if (paramName === "P")
                writeToStorage('vrs_psw', paramVal, false, true);
            else if (paramName === "WA-")
                writeToStorage('vrs_nowa');
            else if (paramName === "DISABLESTARTUPMESSAGES")
                writeToStorage('vrs_disStartMsg');
            else if (paramName === "DISPLAYALLFUNCTIONS")
                writeToStorage('vrs_displayAllFunctions');
            else if (paramName === "VL")
                writeToStorage('vrs_vl', paramVal);
            else if (paramName === "L")
                writeToStorage('vrs_ul', paramVal);
            else if (paramName === "DISPLAYPERFORMANCE")
                writeToStorage('vrs_perf');
            else if (paramName === "DISPLAYUSERNOTIFICATIONLIST")
                writeToStorage('vrs_displayusernotificationlist');
            else if (paramName === "DEBUGGERURL")
                writeToStorage('vrs_deburl', paramVal, true, true);
            else if (paramName === "DEBUG")
                writeToStorage('vrs_debug', paramVal || 'TCP');
            else if (paramName === "NCP")
                writeToStorage('vrs_nocheckpopup');
            else if (paramName === "TESTCLIENT")
                writeToStorage('vrs_test');
            else if (paramName === "TESTCLIENTID")
                writeToStorage('vrs_test_id', paramVal || '');
            else if (paramName === "Z")
                writeToStorage('vrs_zn', paramVal, true, true);
            else if (paramName === "ITAXI")
                writeToStorage('vrs_interface', '1');
            else if (paramName === "ITDI" || paramName === "ISDI")
                writeToStorage('vrs_interface', '0');
            else if (paramName === "OIDA-")
                enableOpenIDAuth = false;
            else if (paramName === "VRS-SEANCE")
                writeToStorage('vrs_seance', paramVal);
            else if (paramName === "AUTHOFF" && openIDRelyingParty)
                openIDLogout = true;
            else if (paramName === "USEPRIVILEGEDMODE")
                writeToStorage('vrs_privMode');
            else if (paramName === "VRSSESSION2")
                writeToStorage('vrs_session2', paramVal);
            else if (paramName === "DEBUGGCC")
            {
                var debugGcc = paramValUp || "1";
                if (debugGcc === "1" || debugGcc === "ON" || debugGcc === "TRUE")
                    writeCookie('vrs_dbggcc');
                else
                    deleteCookie('vrs_dbggcc');
            }
            else if (paramName === "SYSTEMWEBCLIENTSTAT")
                writeToStorage('vrs_webclientstat');
            else if (paramName === "EXECUTE")
                writeToStorage('vrs_execute', paramVal);
            else if (paramName === 'ENABLECHECKSERVERCALLS')
                writeToStorage('vrs_enablecheckservercalls');
            else if (paramName === 'OIDCSELECTEDPROVIDER')
                writeToStorage('vrs_sel_prov', paramVal);
            else if (paramName == 'DISABLESPLASH' && hasBranding)
                writeToStorage('vrs_disablesplash');
            else if (paramName === 'AUTHMESSAGE' && paramVal)
                alert(paramVal);
        }

        if (getFromStorage('vrs_nooida'))
            enableOpenIDAuth = false;
        else if(!enableOpenIDAuth)
            writeToStorage('vrs_nooida', '1');

        // Значение для локейла форматирования
        writeToStorage('vrs_lang', lang);

        if (splashTopBrandingImage)
            writeToStorage('vrs_splashTop');

        if (splashBottomBrandingImage)
            writeToStorage('vrs_splashBottom');

        if (exitURL)
            writeToStorage('vrs_exitURL', exitURL, true, true);

        if (openIDLogout)
        {
            window.location.replace("e1cib/oid2rp?cmd=logout" + getZoneParam());
            return;
        }

        if (removeUrlParameter(window.location.search, 'sk') || hash || redirect)
        {
            window.location.replace(url);
            return;
        }

        var openIDInfo = document.getElementById('openidconnectconfig').innerHTML;
        if (openIDInfo && !proceedOIDC(enableOpenIDAuth, openIDInfo))
            return;

        if (getFromStorage('vrs_afteroidainit') === '1')
        {
            deleteFromStorage('vrs_afteroidainit');
        }
        else if (enableOpenIDAuth)
        {
            writeToStorage('vrs_oida', '1');
            writeToStorage('vrs_afteroidainit', '1');
            window.location.replace("e1cib/oid2rp?cmd=init" + getZoneParam());
            return;
        }
        setTimeout(continueLoadHTML.bind(this, true), 50);
    }

    function getZoneParam()
    {
        var zone = getFromStorage("vrs_zn");
        if (zone)
            return "&z=" + zone;
        else
            return "";
    }

    function getHttpRequest()
    {
        var httpRequest;
        if (window.XMLHttpRequest)
        {
            httpRequest = new XMLHttpRequest();
        }
        else if (window.ActiveXObject)
        {
            var progIDs = ["Msxml2.XMLHTTP", "Microsoft.XMLHTTP"];
            for (var i = 0; i < progIDs.length; i++)
            {
                try
                {
                    httpRequest = new ActiveXObject(progIDs[i]);
                    break;
                }
                catch (e)
                {
                }
            }
        }
        return httpRequest;
    }

    function continueLoadHTML(isMainFormHTML)
    {
        var httpRequest = getHttpRequest();
        if (!httpRequest)
        {
            alert("Данный браузер не может быть использован для работы с программой 1С:Предприятие");
            return;
        }

        var url = (isMainFormHTML ? "mainform.html" : "authform.html") + "?sysver=" + version;
        httpRequest.open("GET", encodeURI(url), false);
        httpRequest.setRequestHeader("Content-Type", "text/html; charset=utf-8");
        httpRequest.setRequestHeader("Accept", "text/html");
        httpRequest.send("");
        var html = httpRequest.responseText;

        // Посылаем событие асинхронному расширению в Chrome перед doc.open,
        // который уничтожит все навешенные ранее обработчики
        if (/chrome/i.test(navigator.userAgent))
        {
            var startLoadWebClientEvent = new CustomEvent("1c.startLoadWebClient");
            window.dispatchEvent(startLoadWebClientEvent);
        }

        var doc = document;
        doc.open("text/html", "replace");
        doc.write(html);
        doc.close();
    }

    window.on error = function(message)
    {
        alert(message);
        return true;
    }
    </sc ript>
</head>
<body on load="initMain();">
    <div id="openidconnectconfig" style="display:none"></div>
</body>
</html>'
Показать
8. sybastik 05.12.18 09:30 Сейчас в теме
Вот такой код сработал.


&НаКлиенте
Процедура ДобавитьФайл(Команда)
	
	ОписаниеОповещения = Новый ОписаниеОповещения("ОбработатьВыборФайла", ЭтаФорма);
	ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
	ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
	
	НачатьПомещениеФайлов(ОписаниеОповещения, , ДиалогОткрытияФайла, Истина, УникальныйИдентификатор);
	
КонецПроцедуры

&НаКлиенте
Процедура ОбработатьВыборФайла(ПомещенныеФайлы, ДополнительныеПараметры) Экспорт

    Если ПомещенныеФайлы = Неопределено Тогда
        Возврат;
    КонецЕсли;

    Для каждого ПереданныйФайл Из ПомещенныеФайлы Цикл
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот