IE 2017

Подсветка синтаксиса для 1С и веб сайта

Программирование - Инструментарий

После выхода платформы 8.2 поле текстового документа перестало поддерживать подсветку синтаксиса. В этой статье рассказывается, как обеспечить возможность редактирования текстов с подсветкой синтаксиса XML, встроенного языка и языка запросов.

Данный функционал реализован в конфигурации 1С:Переводчик начиная с версии 2.0.

Бесплатно скачать её можно на сайте 1C:Developer Network.

В прилагаемой к статье обработке приводится пример использования этой возможности.

Основной функционал здесь выполняет JavaScript функция textToHtml(), находящаяся в шаблоне TranslationInterface справочника Тексты. Для её работы также необходимо, чтобы сформированный HTML содержал стили для подсветки. Их формирует функция getStyles(), расположенная там же. Редактирование включается свойством ContentEditable тега body объекта HTML.

Использовать эти функции можно как в 1С:Предприятии, так и на сайте, например на форуме.

Пример кода для работы в 1С:

Результат = "<html><head>"
	+ Элементы.Вспомогательный.Документ.parentWindow.eval(
		"getStyles(""" + Тип + """)")
	+ "</head><body>" 
	+ Элементы.Вспомогательный.Документ.parentWindow.eval(
		"textToHtml(""" 
		+ СтрЗаменить(СтрЗаменить(ИсходныйТекст, Символы.ПС, "\n"), """", "\""")
		+ """, """ + Тип + """)")
	+ "</body>";

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

Наименование Файл Версия Размер
Тестовый пример подсветки синтаксиса
.epf 7,59Kb
08.02.15
12
.epf 1.0.0.1 7,59Kb 12 Скачать

См. также

Комментарии
1. serge_focus (serge_focus) 4 08.02.15 14:13 Сейчас в теме
а чем notepad++ для XML и HTML хуже?
Работает везде и без всяких JavaScript ...
2. Тимофей Бугаевский (boogie) 464 08.02.15 14:36 Сейчас в теме
Тем, что предлагаемый метод подходит для встраивания в ваши программы или сайт, чтобы пользователям было удобнее работать с соответствующими форматами без установки дополнительных программ.
3. Яков Коган (Yashazz) 2118 08.02.15 17:42 Сейчас в теме
Замечу, что дело не в 8.2, а исключительно в отсутствии соответствующих расширений для текстового поля в режиме УФ. Для не-управляемых форм всё замечательно работает, как и раньше.
4. Тимофей Бугаевский (boogie) 464 08.02.15 17:56 Сейчас в теме
Они уже устаревшими считаются.
5. Messenger Unchained (Messenger Unchained) 09.02.15 09:36 Сейчас в теме
Использовать поле HTML в 1С не рекомендуют ваши же широко известные стандарты: http://its.1c.ru/db/v8std#content:2149184379:hdoc
Так как 1С в толстом и тонком клиентах использует движок IE, на них будут влиять политики безопасности и прочие настройки, мешающие работе javascript. Почему бы не сделать все правильно и не использовать ФорматированныйДокумент?

А для встраивания именно на сайт написана уже туча раскрасок, практически для всех популярных CMS.

@boogie, со всем уважением, но ценности в данной обработке практически нет. Ну, если не учитывать, что "конфигурация сама себя не прорекламирует" =)
6. Тимофей Бугаевский (boogie) 464 09.02.15 09:42 Сейчас в теме
Над этим вариантом обязательно подумаем тоже.
7. Евгения Карук (ekaruk) 3030 09.02.15 11:38 Сейчас в теме
Обработка ни о чем.
Выдраный из конфигурации кусок, который к тому же не работатет без основной конфигурации.
Ничего нового не добавлено.
Хотя бы макет включили в обработку, чтобы запустить можно было на любой конфигурации.
Для редактирования все равно использовать нельзя, только для отображения.
Скопировать раскрашенный текст тоже нельзя, появляются лишние символы.
9. Андрей Акулов (DrAku1a) 1213 08.04.16 02:20 Сейчас в теме
Кроме того, что это не работает в Такси, есть еще две вещи:
1. Сам скрипт в обработке отсутствует
2. Для раскраски нужно нажать кнопку, т.е. это аналог "Разукрашки" от alexk-is.
Хотелось бы такой редактор, чтобы синтаксис подсвечивал сразу при вводе - автоматом. Как в тостом клиенте...
Прикрепленные файлы:
Spacer; AGLux; +2 Ответить
Оставьте свое сообщение