WYSIWYG редактор HTML (управляемые формы)

Опубликовал Антон Батыркин (batyrkin) в раздел Программирование - Инструментарий

Редактор HTML для управляемого интерфейса 8.2
Аналог Форматированного Документа из платформы.

Возникла необходимость хранить в базе, редактировать и отображать на управляемой форме текстовое описание товара с некоторым HTML-форматированием. Скудность методов работы с объектом Форматированный документ из платформы не удовлетворила страждущую душу, и вот что из этого вышло...

 

В процессе было просмотрено и разобрано по косточкам:
[TinyMCE] - редактор HTML WYSIWYG кода.

За основу взята обработка Wicked под 8.1 которая на данном сайте отсутствует. Огромное ему человеческое СПАСИБО!

 

PS: Первая публикация - просьба сильно не ругаться.

Сподвигло на публикацию недовольство работой самого объекта Форматированный документ в комментах к публикации Форматированный документ в 1С

 

Скачать файлы

Наименование Файл Версия Размер
Конфигурация с примером
.7z 63,12Kb
24.07.12
673
.7z 63,12Kb 673 Скачать

См. также

Комментарии
1. Андрей Д. (detec) 123 10.09.10 12:53 Сейчас в теме
Потрясающе, особенно если учесть, что это управляемое приложение.
2. Евгений Мигачев (Wicked) 58 10.09.10 13:15 Сейчас в теме
Молодец!
:!: Обработка на этом сайте отсутствует, но есть здесьОбработка HTML редактор для 8.1
3. Андрей Данилюк (DanilaDru) 232 14.09.10 17:44 Сейчас в теме
Спасибо, порадовали. А то я tini mce прикручивал. Все хорошо, да только в веб-клиенте не все отрабатывало. А тут, по-идее, все должно быть красиво.
4. Данила Елистратов (CagoBHuK) 25 23.08.11 10:58 Сейчас в теме
В веб-клиенте не работает. Фаерфокс не поддерживает ничего. ИЕ падает на "Метод объекта не обнаружен (queryCommandSupported)".
5. Игорь Евл (gn@mik) 43 09.12.11 22:29 Сейчас в теме
мне эта обработка очень была нужна. Огромное спасибо.
6. Максим Грибков (magrib) 16.12.11 11:45 Сейчас в теме
Обработка супер, только картинок нет
7. Alexander Grey (alex.msk) 18 16.01.12 16:20 Сейчас в теме
Спас, дружище.
Почти то, что я искал, немного допилил переход по ссылкам (в браузер по умолчанию или форму в 1С).
8. Юрий Лазаренко (TitanLuchs) 18.02.12 18:13 Сейчас в теме
Ммммммм, как раз собирался писать свое под 8.2, а оно уже написано )))
PS: а чем TinyMCE не подходит?
9. Mykhailo O (din-din) 69 20.02.12 14:23 Сейчас в теме
Автору +
Начал рисовать свое потом случайно наткнулся на эту публикацию.
Спасибо, Вы сэкономили мое время на разработку подобного решения.
10. Peter Metelkin (iiceberg) 73 21.02.12 11:16 Сейчас в теме
(4) CagoBHuK,

Для исправления ошибки в веб клиенте делаем следующее:
Модуль формы:
Добавляем процедуру (что бы заполнился ХТМЛ текст)

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	Если НЕ ЗначениеЗаполнено(Объект.ТекстHTML) Тогда
		Попытка
		Объект.ТекстHTML = Этаформа.Параметры.текстHTML;
		Исключение
		//Сообщить(НСтр("ru = '"+ОписаниеОшибки()+"'"), СтатусСообщения.Внимание);
		КонецПопытки;
	КонецЕсли;
КонецПроцедуры
...Показать Скрыть


в Процедуре "ВыполнитьКоманду(Кнопка)"
определеяем переменную:
Документ = Элементы.ПолеHTMLДокумента.Документ;


сохраняемся . проверяем.

Автору Спасибо!!!
11. Надежда М (jiggli) 01.06.12 14:48 Сейчас в теме
2 часа копила монетки, т.к. срочно понадобилась такая обработка, скачала, а она для управляемого приложения, жаль...
12. Дмитрий Март (mdy) 26.07.12 15:08 Сейчас в теме
(4) CagoBHuK,
Вам удалось добится работоспособности данной обработки в Вебе?

Я поправил код как Вы написали, но увы не работает,
Чем можете помочь?
13. розница.net (ZLENKO) 26.07.12 17:10 Сейчас в теме
CSS файл к этой обработке можно прикрутить ?
14. Peter Metelkin (iiceberg) 73 29.07.12 23:15 Сейчас в теме
(12) mdy, дело было в феврале. Не могу вспомнить результата, по причине того что проект заглох и данный модуль не пригодился. Но в результатах тестирования мои изменения работали.
15. RomikMf (RomikMf) 58 19.09.12 13:10 Сейчас в теме
Нужно сделать нечно подобное под веб-клиент. Интересно было бы посмотреть на данное решение.
16. latrium (latrium) 26.11.12 15:29 Сейчас в теме
Спасибо огромное за труд. Обработка пригодилась.
17. Саша Безымяный (help1Ckr) 25.12.12 00:40 Сейчас в теме
18. Владимир Насыров (Spacer) 251 11.01.13 16:39 Сейчас в теме
Хорошая вещь, полезная! Скачал, плюсанул.
Вот просто интересно - почему не используется стандартный диалог выбора цвета?
По-моему, он выглядит эстетичнее. Вот только ползунков у него нет.
Но зато в нем есть возможность выбора цвета стиля.
19. Александр Леженин (AVMCo) 05.05.13 20:31 Сейчас в теме
Очень нужная обработка, намного легче текст править для Интернет-Магазина
20. oleg (opus70) 67 16.09.13 16:17 Сейчас в теме
подскажите как добавить табличку в редактор
на одну или 2 колонки
21. Max Bykov (Masich) 26.09.13 15:31 Сейчас в теме
22. megatrend - (megatrend) 115 30.09.13 16:03 Сейчас в теме
Отличная обработка. давно искал.
спасибо автору.
23. Яков Коган (Yashazz) 1987 31.10.13 11:47 Сейчас в теме
Не, мне больше по душе исходный функционал от Душелова. Там режимов и кноппачек на панели побольше, да и в УФ отлично бегает. Не все тестил, правда, но для меня правка исходного html, например, очень симпатична, а здесь её нету. Автор, почему урезаны возможности Tiny?
24. Антон Батыркин (batyrkin) 102 31.10.13 21:21 Сейчас в теме
(23) Yashazz, если вы не заметили, Tiny MCE в моей поделке вообще не используется - все сделано без нее.
25. Яков Коган (Yashazz) 1987 03.11.13 13:46 Сейчас в теме
(24) Не качал, поэтому и не заметил )) Откуда я знаю, может, вы просто дизайн поменяли, а js-вызовы эмулируете ) Ну тады пардон, тогда вопросов не имею, а вещица у вас вышла недурственная полюбому.
26. Max (maximus_80) 08.06.14 11:45 Сейчас в теме
batyrkin, есть вопрос
При редактировании описания товара у нас они достаточно большие и возникла необходимость в полосе прокрутки во вертикали.
В режиме просмотра ее удалось добавить с помощью Документ.body.scroll = "yes";
Но, она также нужна в режиме редактирования HTML.
Можно ли это сделать с помощью настроек?
Или, если понадобится доработка - какова стоимость?
27. Андрей Акулов (DrAku1a) 1187 25.07.14 10:42 Сейчас в теме
Нету вставки картинок из буфера обмена. Так и не понятно - чем форматированный документ не устроил?
28. c+ + (ture) 224 20.08.14 14:22 Сейчас в теме
Сыровато. Но в целом спасибки.
Добавь себе еще кнопки отмены и повторения действия, раскрась строки таблицы выбора цвета, убери к еб*ням форму вставки ссылки (пусть отрабатывает форма отцов основателей), так же поступи с вставкой картинки. Множество доступных команд спроси у гейтса.

Я выдрал твои наработки к себе, но пришлось долго возиться (т.е. разбираться в механизме). outerHTML - позволяет у прогруженного документа спросить весь текст HTML, а не только body.

Атрибут body с именем ContentEditable нужно сбрасывать, чтоб потом все тараканы не лезли менять страничку.

Идея подсвечивания очень понравилась!!! странно, что ее нет в консолях запросов. Но я вырубил этот режим и просто текстовое поле вываливаю вместо поля html, чтобы можно было редактировать всю страницу, а не только часть.

Вот эта шняга queryCommandValue получает имя шрифта, его размер и имя стиля, чтоб не только кнопки помечать при нажатии мышкой. Жаль, что низя так же по движению курсора делать (я не сильно здесь тужился).

В общем вот так. Расти большой не будь лапшой! Удачи чувак!



29. Алексей Прилепский (IamAlexy) 490 27.10.14 13:06 Сейчас в теме
Картинки вообще вставить нельзя?
и работы с таблицами нет ?
30. grayshadow grayshadow (grayshadow) 11.08.15 08:21 Сейчас в теме
Элемент.Документ.body.scroll = "no";
Чуваг, зачем??:) я думала, это 1с косячит, 2 часа гуглила причину, почему в полеhtmlдокумента не выводится скролл-бар...
и еще под новой платформой проблемы с модальными окнами
в остальном обработка супер!
31. Антон Батыркин (batyrkin) 102 11.08.15 12:07 Сейчас в теме
(30) grayshadow, когда мне это надо было, была необходимость именно короткие HTML описания делать чтоб они на сайт вываливались из 1С, потому и Элемент.Документ.body.scroll = "no";
32. Михаил Басалаев (MorozAltay) 27.12.16 08:10 Сейчас в теме
Картинку можно "допилить" вставив команду

&НаКлиенте
Процедура КомандаВставитьКартинку(Команда)
	Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
	Диалог.Заголовок = "Выберите файл";
	Диалог.Фильтр = "Все файлы|*.*";

	Если Диалог.Выбрать() Тогда
		Документ.execCommand("insertImage", Ложь, Диалог.ПолноеИмяФайла);
	КонецЕсли;

	ПоказатьРежимыКнопок();	
КонецПроцедуры
...Показать Скрыть

А вот с таблицами - беда, кто нибудь может подскажет как таблицы вставлять?