Подсветка синтаксиса для 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("""
+ СтрЗаменить(СтрЗаменить(ИсходныйТекст, Символы.ПС, "
"), """", """")
+ """, """ + Тип + """)")
+ "</body>";

8 Comments

  1. serge_focus

    а чем notepad++ для XML и HTML хуже?

    Работает везде и без всяких JavaScript …

    Reply
  2. boogie

    Тем, что предлагаемый метод подходит для встраивания в ваши программы или сайт, чтобы пользователям было удобнее работать с соответствующими форматами без установки дополнительных программ.

    Reply
  3. Yashazz

    Замечу, что дело не в 8.2, а исключительно в отсутствии соответствующих расширений для текстового поля в режиме УФ. Для не-управляемых форм всё замечательно работает, как и раньше.

    Reply
  4. boogie

    Они уже устаревшими считаются.

    Reply
  5. Messenger Unchained

    Использовать поле HTML в 1С не рекомендуют ваши же широко известные стандарты: http://its.1c.ru/db/v8std#content:2149184379:hdoc

    Так как 1С в толстом и тонком клиентах использует движок IE, на них будут влиять политики безопасности и прочие настройки, мешающие работе javascript. Почему бы не сделать все правильно и не использовать ФорматированныйДокумент?

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

    @boogie, со всем уважением, но ценности в данной обработке практически нет. Ну, если не учитывать, что «конфигурация сама себя не прорекламирует» =)

    Reply
  6. boogie

    Над этим вариантом обязательно подумаем тоже.

    Reply
  7. ekaruk

    Обработка ни о чем.

    Выдраный из конфигурации кусок, который к тому же не работатет без основной конфигурации.

    Ничего нового не добавлено.

    Хотя бы макет включили в обработку, чтобы запустить можно было на любой конфигурации.

    Для редактирования все равно использовать нельзя, только для отображения.

    Скопировать раскрашенный текст тоже нельзя, появляются лишние символы.

    Reply
  8. DrAku1a

    Кроме того, что это не работает в Такси, есть еще две вещи:

    1. Сам скрипт в обработке отсутствует

    2. Для раскраски нужно нажать кнопку, т.е. это аналог «Разукрашки» от alexk-is.

    Хотелось бы такой редактор, чтобы синтаксис подсвечивал сразу при вводе — автоматом. Как в тостом клиенте…

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *