PDA

Просмотр полной версии : Управляемая форма, html



GanjaGod
05.01.2013, 17:02
Вопрос в следующем, хочу сделать средствами 1С - аналог Outlook. Т.е. необходимые для меня вещи перенести в 1С, что бы не запускать обе программы... Со всем разобрался, сложностей не возникало, но с самым главным никак не получается... Нужно, что бы мог на форме (открыв документ "электронное письмо") редактировать тело письма... Набирать и форматировать текст, вставлять таблицы ну и картинки... Так собственно как понимаю, со всем этим проблем не должно быть, есть типо команды вставить таблицу, вставить картинку и т.д. Но ни как не получается редактировать текст, сам набор, поле не доступно...
Использую реквизит (строка, неограниченная), а на форме элемент (полеHTMLдокумента). Нашёл в справке по 1С, что можно установить режим - редактирование, методом "УстановитьРежим()", который работает в толстом клиенте, но нет этого метода ни у реквизита, ни у элемента... Не совсем понимаю, что такое толстый клиент, так в справке по 1С, написано, что надо просто выставить - основной режим запуска "управляемое приложение" и это и будет, типа толстый клиент...

---------- Post added at 18:02 ---------- Previous post was at 16:26 ----------

Короч, всё разобрался и сделал аналог Outlook в 1С... Завидуйте!

GanjaGod
10.01.2013, 20:29
Есть страничка, которая выводит редактор TINYMCE (обязательно необходимо, что бы он находился в теге BODY, так как испоользую на форме 1С и в теге TEXTAREA, появляются ненужные рамки). Использую её, для редактирования писем. На форме 1С, вывел кнопки для форматирования текста. Осталось вывести всего пару кнопок, которых мне не хватает - это:



Все кнопки делал через "ПолеHTMLДокумента.Документ.ex ecCommand("команда")" и выводил на форму 1С.



1. Изменение размера шрифта (так изменение шрифта, через метод execCommand, меня не устроил, из-за выбора размера (всего 7). Сделал, через "ПолеHTMLДокумента.Документ.ge tSelection().focusNode.parentNode.style.fontSize = НОВОЕЗНАЧЕНИЕ"). Но и здесь есть свои минусы при использовании меняется всё содержимое текущего тега.



2. Вставка таблицы, соответственно все те кнопки для её форматирования. На сайте tinyMCE, есть описание нескольких команд для execCommand, по вставке таблицы, написано что необходим плагин "table". Так же здесь хочу опомянуть еще одну команду "mceInsertContent", которая позваляет вставлять любое содержимое. Так собственно вопрос в том, что не работают эти команды, через "ПолеHTMLДокумента.Документ.ex ecCommand("команда")", почему? Есть догадки, что все эти команды не работают, потому что используя "ПолеHTMLДокумента.Документ.ex ecCommand("команда")" я не получаю доступ tinyMCE, к его методам.



3. Межстрочный интервал (сделал так же, как размер шрифта, через стили "ПолеHTMLДокумента.Документ.ge tSelection().focusNode.parentNode.style.marginTop = НОВОЕЗНАЧЕНИЕ"). Здесь меня не устраивает, то что присваивается значение не всему выделению, а только последнему выделенному. Т.е. если мне необходимо уменьшить интервал у нескольких строк, мне придется по каждой строке отдельно настраивать.



По 1-му и 3-му вопросу думаю, что может помочь, если смогу выделенное обрамлять тегами, т.е. типа по выделенному сначало по краям установить теги, а потом изменить стиль для данного тега.



По 2-му вопросу, если нет способа получить доступ к методам tinyMCE, через комобъект, то может помочь метод вставки HTML кода, так я его нашёл "ПолеHTMLДокумента.Документ.wr ite("<P>любое содержимое</p>")", но увы при его использовании теряется весь код страницы, т.е. при просмотре кода страницы, нижеприведённый код меняется на "<HTML><HEAD></HEAD><BODY><P>любое содержимое</P></BODY></HTML>"





<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
<head>
<title>TinyMCE Test</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<script type="text/javascript" src="jscripts/tiny_mce/tiny_mce.js"></script>

<script type="text/javascript">
tinyMCE.init({
plugins : "fullpage"
});
</script>
<style>
p {margin: 0; padding: 0;}
</style>
</head>
<body id="tinyMCE" class="mceContentBody" contenteditable="true" spellcheck="false" dir="ltr">

</body>

</html>