gifts2017

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

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

После выхода платформы 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
9
.epf 1.0.0.1 7,59Kb 9 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. serge_focus (serge_focus) 08.02.15 14:13
а чем notepad++ для XML и HTML хуже?
Работает везде и без всяких JavaScript ...
2. Тимофей Бугаевский (boogie) 08.02.15 14:36
Тем, что предлагаемый метод подходит для встраивания в ваши программы или сайт, чтобы пользователям было удобнее работать с соответствующими форматами без установки дополнительных программ.
3. Яков Коган (Yashazz) 08.02.15 17:42
Замечу, что дело не в 8.2, а исключительно в отсутствии соответствующих расширений для текстового поля в режиме УФ. Для не-управляемых форм всё замечательно работает, как и раньше.
4. Тимофей Бугаевский (boogie) 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) 09.02.15 09:42
Над этим вариантом обязательно подумаем тоже.
7. Евгения Карук (ekaruk) 09.02.15 11:38
Обработка ни о чем.
Выдраный из конфигурации кусок, который к тому же не работатет без основной конфигурации.
Ничего нового не добавлено.
Хотя бы макет включили в обработку, чтобы запустить можно было на любой конфигурации.
Для редактирования все равно использовать нельзя, только для отображения.
Скопировать раскрашенный текст тоже нельзя, появляются лишние символы.
9. Андрей Акулов (DrAku1a) 08.04.16 02:20
Кроме того, что это не работает в Такси, есть еще две вещи:
1. Сам скрипт в обработке отсутствует
2. Для раскраски нужно нажать кнопку, т.е. это аналог "Разукрашки" от alexk-is.
Хотелось бы такой редактор, чтобы синтаксис подсвечивал сразу при вводе - автоматом. Как в тостом клиенте...
Прикрепленные файлы:
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа