Добрый день.
Решил попробовать новый механизм загрузки файлов через веб-клиент без расширения в 8.3.13
И никак не могу получить доступ к загружаемому файлу.
Гружу через Хром. Он и будет на продакшене, если взлетит.
Параметр АдресНовогоФайла - html код
Помещаемый файл - строка с именем файла.
Прошу помощи, что я делаю не так. Как затянуть файл к себе в хранилище?
Этот же код в тонком клиенте прекрасно отрабатывает.
Решил попробовать новый механизм загрузки файлов через веб-клиент без расширения в 8.3.13
&НаКлиенте
Процедура ДобавитьФайл(Команда)
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
ДополнительныеПараметры = "";
ОбработкаОкончанияЗагрузки = Новый ОписаниеОповещения("ОбработчикЗавершенияЗагрузки", ЭтотОбъект, ДополнительныеПараметры);
НачатьПомещениеФайла(ОбработкаОкончанияЗагрузки, , Диалог, Истина, УникальныйИдентификатор);
КонецПроцедуры
&НаКлиенте
Процедура ОбработчикЗавершенияЗагрузки(Результат, АдресНовогоФайла, ПомещаемыйФайл, ДопПараметры) Экспорт
Файл = Новый Файл(ПомещаемыйФайл);
Расширение = Файл.Расширение;
Имя = Файл.ИмяБезРасширения;
ДвоичныеДанные = Новый ДвоичныеДанные(ПомещаемыйФайл);
Идентификатор = Новый УникальныйИдентификатор;
АдресХранилища = ПоместитьВоВременноеХранилище(ДвоичныеДанные, Идентификатор);
ОбщегоНазначения.СохранитьФайл(АдресХранилища, Имя, Расширение, Объект.Ссылка);
ЗаполнитьТаблицыФайлов();
КонецПроцедуры
ПоказатьИ никак не могу получить доступ к загружаемому файлу.
Гружу через Хром. Он и будет на продакшене, если взлетит.
Параметр АдресНовогоФайла - html код
Помещаемый файл - строка с именем файла.
Прошу помощи, что я делаю не так. Как затянуть файл к себе в хранилище?
Этот же код в тонком клиенте прекрасно отрабатывает.
По теме из базы знаний
Найденные решения
Вот такой код сработал.
&НаКлиенте
Процедура ДобавитьФайл(Команда)
ОписаниеОповещения = Новый ОписаниеОповещения("ОбработатьВыборФайла", ЭтаФорма);
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
НачатьПомещениеФайлов(ОписаниеОповещения, , ДиалогОткрытияФайла, Истина, УникальныйИдентификатор);
КонецПроцедуры
&НаКлиенте
Процедура ОбработатьВыборФайла(ПомещенныеФайлы, ДополнительныеПараметры) Экспорт
Если ПомещенныеФайлы = Неопределено Тогда
Возврат;
КонецЕсли;
Для каждого ПереданныйФайл Из ПомещенныеФайлы Цикл
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Процедура ОбработчикЗавершенияЗагрузки(Результат, АдресНовогоФайла, ПомещаемыйФайл, ДопПараметры) Экспорт
АдресНовогоФайла это уже адрес во временном хранилище. Файл уже был туда помещен. Не нужно в коде пытаться сделать это еще раз, тем более со строкой, в которой просто хранится имя файла, а не сам файл.
АдресНовогоФайла это уже адрес во временном хранилище. Файл уже был туда помещен. Не нужно в коде пытаться сделать это еще раз, тем более со строкой, в которой просто хранится имя файла, а не сам файл.
(3) И?
Такой код работает?
Такой код работает?
&НаКлиенте
Процедура ОбработчикЗавершенияЗагрузки(Результат, АдресНовогоФайла, ПомещаемыйФайл, ДопПараметры) Экспорт
Файл = Новый Файл(ПомещаемыйФайл);
Расширение = Файл.Расширение;
Имя = Файл.ИмяБезРасширения;
ОбщегоНазначения.СохранитьФайл(АдресНовогоФайла, Имя, Расширение, Объект.Ссылка);
...
Показать
(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>
Показать
(5) попробуйте другой релиз 1С и/или браузер.
На 8.3.13.1644 отрабатывает нормально. IE11 и Yandex браузеры.
В АдресНовогоФайла получается: "e1cib/tempstorage/996090a3-37de-4e36-9413-51ecd44eb1e7?seanceId=d22cb158-06bc-414c-b0ee-c2fde217fd50". Это адрес временного хранилища.
На 8.3.13.1644 отрабатывает нормально. IE11 и Yandex браузеры.
В АдресНовогоФайла получается: "e1cib/tempstorage/996090a3-37de-4e36-9413-51ecd44eb1e7?seanceId=d22cb158-06bc-414c-b0ee-c2fde217fd50". Это адрес временного хранилища.
Попробовал тоже самое на демо-базе к платформе. Тоже не работает в веб-клиенте.
Неправильный путь к файлу '<!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>'
Показать
Вот такой код сработал.
&НаКлиенте
Процедура ДобавитьФайл(Команда)
ОписаниеОповещения = Новый ОписаниеОповещения("ОбработатьВыборФайла", ЭтаФорма);
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
НачатьПомещениеФайлов(ОписаниеОповещения, , ДиалогОткрытияФайла, Истина, УникальныйИдентификатор);
КонецПроцедуры
&НаКлиенте
Процедура ОбработатьВыборФайла(ПомещенныеФайлы, ДополнительныеПараметры) Экспорт
Если ПомещенныеФайлы = Неопределено Тогда
Возврат;
КонецЕсли;
Для каждого ПереданныйФайл Из ПомещенныеФайлы Цикл
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот