Поле ввода при работе в Web клиенте в релизах 8.2.9 и 8.3.5 в некоторых браузерах работает плохо - значение поле ввода в 1С при обращении не соответствует реально введенному тексту. Для обхода такой ошибки можно использовать поле HTML документа, лучшим вариантом формирования которого подходят 2 варианта:
- Design mode. HTML редактор для документа.
- Textarea. Стандартный редактор текста, который появился ещё во времена HTML 3.1.
Design mode требует дополнительных обработок на javascript, поэтому для обхода ошибок Web-клиента самым простым вариантом является textarea.
Полный код такого протеза выглядит таким образом:
<!-- saved from url=(0014)about:internet -->
<!DOCTYPE HTML>
<html>
<head>
<meta charset='utf-8'>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
</head>
<style>
textarea {
width: 100%;
height: 100%;
position: absolute;
margin-top: 0px; margin-left:0px; margin-right: 0px;margin-bottom: 0px; // align browser css-1.0
margin: 0;
padding: 0;
}
form, html, body {
overflow: hidden;
width: 100%;
height: 100%;
position: absolute;
margin-top: 0px; margin-left:0px; margin-right: 0px;margin-bottom: 0px; // align browser css-1.0
margin: 0;
padding: 0;
}
</style>
<body marginheight='0' marginwidth='0' topmargin='0' rightmargin='0' leftmargin='0' bottommargin='0' autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false">
<form method="POST" name='form1' action="--WEBBOT-SELF--">
<TEXTAREA name="text" COLS=50 ROWS=15 autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></TEXTAREA>
</form>
</body>
<SCRIPT>
function SetTextEditor(TEXT)
{
document.form1.text.value = TEXT;
}
</SCRIPT>
</html>
Оформление протестировано на браузерах:
- Gecko - Mozilla 1.5 и старше.
- WebKit - Safari 3.x и новее. Chrome любой версии.
- Trident - Internet Explorer 5.0 И выше.
- Presto - opera 8.0 и новее.
- Konqueror 3.4 и новее.
- Netscape Navigator 4.
Этот код обеспечивает базовую функциональность для замены поля ввода без получения выделенного текста.
В браузере Edge это выглядит таким образом:
Тест был выполнен на платформе 8.2.9, а также 8.3.5. Результат идентичен. На Тонком клиенте, к сожалению, выравнивание стилей работает некорректно.
Обновление от 09.05.2025
Внесены исправления в формирования макета - поддерживаются теперь WEB, Тонкий и Толстые клиенты на всей ветке 1С 8.x в управляемых и обычных формах (для последних удобнее создавать скрытый макет с полем html документа для расширения поля ввода).
Исправленный код этого контролла выглядит так:
<!-- saved from url=(0014)about:internet -->
<html>
<head>
<style>
textarea {
width: 100%;
height: 100%;
margin-top: 0px; margin-left:0px; margin-right: 0px;margin-bottom: 0px; // align browser css-1.0
margin: 0;
padding: 0;
display:block;
border: none;
outline: none;
display: inline-block;
font-size: 14px;
resize:none;/*Add this if you dont want users to resize */
}
form, html, body {
width: 100%;
height: 100%;
position: absolute;
margin-top: 0px; margin-left:0px; margin-right: 0px;margin-bottom: 0px; // align browser css-1.0
margin: 0;
padding: 0;
border: 0;
overflow: hidden;
display:block;
resize:none;/*Add this if you dont want users to resize */
font-size: 14px;
}
</style>
</head>
<body marginheight='0' marginwidth='0' topmargin='0' rightmargin='0' leftmargin='0' bottommargin='0' autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false">
<form method="POST" name='form1' action="--WEBBOT-SELF--">
<TEXTAREA name="text" COLS=50 ROWS=15 autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></TEXTAREA>
</form>
</body>
<SCRIPT>
function SetTextEditor(TEXT)
{
document.form1.text.value = TEXT;
}
</SCRIPT>
</html>
Скриншот версии 8.5.1 в тёмной теме (dark side 1С):
На интерфейсе Такси 8.3.27 выглядит таким образом:
Также для обычных форм был сделан тест на 1С 8.0.14, как дополнительный отлов ошибок и косяков:
К сожалению на последних версиях ОС полоса неверно отображается в обычных формах на старых 1С, поэтому лучше html использовать как поле компаньон для поля ввода.
Обновление от 03.07.2025 (применение для Тонкого клиента 8.5).
Как оказалось при разработке на 8.5.1 для поля ввода (интерфейс версия 8.5) кастрировали понятие цвет и шрифт (вопрос а за что - отдельный). По этой причине использование данного поля ввода позволяет решить эту проблему с дополнительными цветовыми настройками - единственное что требуется отдельно подсветить - рекомендуемая спецификация CSS - это версия 1.0, так как самая первая версия IE 3.0 её поддерживала и этого хватит для настройки цветов и шрифтов. Для настройки шрифтов рекомендуется использовать также стандарт безопасных шрифтов от Microsoft (все эти шрифты уже включены в современные ОС, либо могут быть легко установлены).
Проверено на следующих конфигурациях и релизах:
- 1С:Библиотека стандартных подсистем, редакция 3.1, релизы 3.1.10.479
- Управление торговлей, редакция 10.3, релизы 10.2.8.2