[TinyMCE] - редактор HTML WYSIWYG. Интеграция во все виды управляемого и обычного приложения

Публикация № 1343858 14.12.20

Интеграция - WEB-интеграция

В статье рассмотрены вопросы использования во всех режимах работы 1С Предприятие 8.3 редактора TinyMCE в поле HTML дополнительного функционала.

О редакторе:

TinyMCE (англ. Tiny Moxiecode Content Editor) платформонезависимый Javascript HTML WYSIWYG редактор на основе Web. К основным характеристикам программы относятся поддержка тем/шаблонов, языковая поддержка и возможность подключения модулей (плагинов). Используется в различных системах управления содержимым (CMS)

Редактор позволяет очень многое. C его помощью можно вставлять рисунки, таблицы и указывать стили оформления текста. Можно выполнять операции, присутствующие в более мощных редакторах. Вдобавок к этому существует множество плагинов.

Рассмотрим подключение этого редактора на всех типах Клиента для платформы 8.3. На момент написания статьи, автор использовал версию 8.3.17 - Платформа для ПК, и версию 8.3.17.76 - мобильный клиент.

Эта статья, является продолжением и ответами на 2 вопроса, которые возникли при использовании этого редактора: 

  1. Как использовать данный редактор в режиме Web-Клиента 1С?
  2. Можно ли использовать его на мобильной платформе?

И как итог всего этого: Создание универсального способа подключения редактора на любой тип Клиента 1С.

Ранее, было реализовано другими авторами: 

Для Обычного Приложения - детально написано здесь [TinyMCE] - редактор HTML WYSIWYG кода.

Про Управляемые формы - тоже был сделан ПОРТ решения. 

Поэтому приведу лишь краткий вариант кода, которого хватит для вывода TinyMCE в форме обработки: 

Для Обычных Форм:

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
    Редактор=ПолучитьМакет("TinyMCE_zip");
    ФайлАрхива=ПолучитьИмяВременногоФайла("zip");
    КаталогСкриптов=КаталогВременныхФайлов();
    Редактор.Записать(ФайлАрхива);
    //Теперь распакуем архив сразу: 
    Файл = Новый Файл(КаталогСкриптов);
    Если НЕ Файл.Существует() Тогда
        СоздатьКаталог(КаталогСкриптов);
    КонецЕсли;
    //
    зип = Новый ЧтениеZipФайла(ФайлАрхива);
    зип.ИзвлечьВсе(КаталогСкриптов, РежимВосстановленияПутейФайловZIP.Восстанавливать);
    УдалитьФайлы(ФайлАрхива);
    //
    ТекстНастроек = ПолучитьМакет("TinyMCE_txt").ПолучитьТекст();

    Т = Новый ТекстовыйДокумент;
    Т.ДобавитьСтроку(ТекстНастроек);            
    ВремФайл = КаталогВременныхФайлов() + "temp.html";
    Т.Записать(ВремФайл);   

     ЭлементыФормы.ДокументHTML.Перейти(ВремФайл);
    
КонецПроцедуры

И выглядит оно так:

 

 

Теперь рассмотрим самый интересный вариант: 

Для Управляемых Форм: 

Здесь сразу разделим код на 2 типа: 

  1. Тонкий Клиент
  2. Web Клиент и Мобильное приложение.

Для тонкого клиента код выглядит так: 

Функция ПолучитьМакет(Макет)
    Обработка=РеквизитФормыВЗначение("Объект");
    Возврат Обработка.ПолучитьМакет(Макет);
КонецФункции

&НаКлиенте
Процедура ПриОткрытии(Отказ)   
        Редактор=ПолучитьМакет("TinyMCE_zip");
        ФайлАрхива=ПолучитьИмяВременногоФайла("zip");
        КаталогСкриптов=КаталогВременныхФайлов();
        Редактор.Записать(ФайлАрхива);
        //Теперь распакуем архив сразу: 
        Файл = Новый Файл(КаталогСкриптов);
        Если НЕ Файл.Существует() Тогда
            СоздатьКаталог(КаталогСкриптов);
        КонецЕсли;
        //
        зип = Новый ЧтениеZipФайла(ФайлАрхива);
        зип.ИзвлечьВсе(КаталогСкриптов, РежимВосстановленияПутейФайловZIP.Восстанавливать);
        УдалитьФайлы(ФайлАрхива);
        //
        ТекстНастроек = ПолучитьМакет("TinyMCE_txt").ПолучитьТекст();         
        Т = Новый ТекстовыйДокумент;
        Т.ДобавитьСтроку(ТекстНастроек);
        //        
        ВремФайл = КаталогВременныхФайлов() + "temp.html";
        Т.Записать(ВремФайл);
        ЭтотОбъект.ДокументHTML=ВремФайл;
КонецПроцедуры


Выглядит это так:

 

 

Теперь рассмотрим вопрос по поводу Web Клиента и Мобильно клиента.

Для того,чтобы мы могли спокойно использовать редактор в этих 2-х режимах сделаем следующее: 

  1. Сам редактор TinyMCE будем размещать на сервере.
  2. Инициализацию будем производить только готового документа, что упростит работу в этих режимах.

Рассмотрим настройку сервера Apache 2.4 (под которым производилась публикация базы) для решения указанной проблемы в публикации: 

Alias "/tynymce" "C:/Program Files/Apache Software Foundation/Apache2.4/htdocs/tinymce"
<Directory "C:/Program Files/Apache Software Foundation/Apache2.4/htdocs/tinymce">
    AllowOverride All
    Options None
    Require all granted
 </Directory>

Здесь: 

  1. C:/Program Files/Apache Software Foundation/Apache2.4/htdocs/tinymce - директория с редактором. Таким же образом можно реализовать и другие плагины. 
  2. Alias "/tynymce" - добавляем путь к хосту, где публиковали базу.

Это исключает лишние вопросы, связанные с использованием данных публикации. Так как всё, что нужно - запихнуть папку tynymce, и не понадобится плодить виртуальные  хосты.

Настройка Apache 2.4 аналогична используемой 1С при публикации на Web Сервере.

Для инициализации в Web Клиенте осталось дописать код таким образом: 

Функция ПолучитьМакет(Макет)
    Обработка=РеквизитФормыВЗначение("Объект");
    Возврат Обработка.ПолучитьМакет(Макет);
КонецФункции

&НаКлиенте
Процедура ПриОткрытии(Отказ)
    #Если  ВебКлиент тогда
        // Web Клиент - редактор на сервере:
        ЭтотОбъект.ДокументHTML="http://localhost/tinymce/index.html";    
    #иначе    
        Редактор=ПолучитьМакет("TinyMCE_zip");
        ФайлАрхива=ПолучитьИмяВременногоФайла("zip");
        КаталогСкриптов=КаталогВременныхФайлов();
        Редактор.Записать(ФайлАрхива);
        //Теперь распакуем архив сразу: 
        Файл = Новый Файл(КаталогСкриптов);
        Если НЕ Файл.Существует() Тогда
            СоздатьКаталог(КаталогСкриптов);
        КонецЕсли;
        //
        зип = Новый ЧтениеZipФайла(ФайлАрхива);
        зип.ИзвлечьВсе(КаталогСкриптов, РежимВосстановленияПутейФайловZIP.Восстанавливать);
        УдалитьФайлы(ФайлАрхива);
        //
        ТекстНастроек = ПолучитьМакет("TinyMCE_txt").ПолучитьТекст();         
        Т = Новый ТекстовыйДокумент;
        Т.ДобавитьСтроку(ТекстНастроек);
        //        
        ВремФайл = КаталогВременныхФайлов() + "temp.html";
        Т.Записать(ВремФайл);
        ЭтотОбъект.ДокументHTML=ВремФайл;
    #КонецЕсли
КонецПроцедуры


Выглядит так:

 

 

Под localhost следует понимать адрес хоста в Apache, где была опубликована БАЗА.

Для Мобильного Клиента - код будет выглядеть похожим образом: 

&НаКлиенте
Процедура ПриОткрытии(Отказ)
    //Вставить содержимое обработчика
    ЭтотОбъект.ДокументHTML="http://адрес сервера публикации/tinymce/index.html";
КонецПроцедуры

Причем, в случае последнего режима - это надо писать в код Формы Справочника, или Документа (Обработка работать отказалась на мобильном клиенте).

В эмуляторе выглядит так:

 

 

Заключение: 

Приведенные способы инициализации позволяют доработать функционал HTML документа до нужного. И разумеется, следует отметить про необходимость доработки внешнего вида редактора за счет специальных стилей css для мобильной платформы и браузера.

Примечание:

Использовалась версия TinyMCE, взятая из обработке в Статье  [TinyMCE] - редактор HTML WYSIWYG кода. Надеюсь, информация будет полезной.

Специальные предложения

Оставьте свое сообщение

См. также

Что делать, когда методы объекта ПолеHTMLДокумента.Документ (УФ) недоступны?

WEB-интеграция Управляемые формы 8.3.14 Бесплатно (free)

Начиная с версии 8.3.14 некорректно загружаются некоторые веб-страницы в поле HTML-документа на УФ - методы ПолеHTMLДокумента.Документ недоступны. Методом "научного втыка" удалось обойти этот глюк системы.

27.02.2023    529    romasna    2    

8

Пагинация в 1С

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

Те, кому приходилось делать REST API на базе HTTP-сервисов 1С, могли в какой-то момент столкнуться с необходимостью разработки методов, которые позволяли бы возвращать данные с пагинацией, т.е. последовательными порциями. В языках общего назначения пагинация реализуется простым использованием операторов OFFSET и LIMIT в SQL-запросе к базе данных. В языке запросов 1С оператора OFFSET нет, поэтому всем приходится решать эту задачу обходными способами. Один из таких обходных способов представлен в этой статье.

09.01.2023    2719    aleksei_adamov    36    

21

1С бакэнд (каталог товаров)

WEB-интеграция Платформа 1С v8.3 1С:Розница 2 Россия Бесплатно (free)

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

01.01.2023    1540    aldar    7    

20

Новый SimpleWEB – тот же Simple, теперь еще web

WEB-интеграция Мобильная разработка Мобильная платформа Бесплатно (free)

Представляю новый отдельный проект на старой семантике – фремйворк для создания веб приложений. Для разработчика симпла ничего не меняется – все тот же стек разработки, тот же конфигуратор и принципы разработки, но конфигурации теперь можно запускать не только на Андроид, но и в виде веб – приложений. Т.е. теперь платформы две – мобильная и веб, в два раза больше поводов перейти на этот стек разработки. Проект пока на стадии альфы, но развивается.

19.12.2022    2826    informa1555    9    

39

Возможности доработки выгрузки из 1С в Битрикс

WEB-интеграция Платформа 1С v8.3 Управленческий учет Бесплатно (free)

В статье собраны некоторые полезные и интересные примеры доработок выгрузки из 1С на сайты на платформе Битрикс (Возможно, что-то подойдёт и для WordPress и других платформ, принимающих типовую выгрузку на сайт из 1С). Доработки рассмотрены без привязки к конкретным конфигурациям, примеры кода взяты в основном из доработок УТ 10 и 11. Некоторые доработки требуют изменений на стороне Битрикса, некоторые укладываются в типовой функционал. Примеры взяты из личного опыта, возможно, описание где-то не полное, т.к. доработки делались в разное время. Если материал будет интересен или будут аналогичные актуальные задачи, буду стараться дополнять статью более подробным описанием и примерами.

01.11.2022    1434    de0nis    2    

13

Реализация нестандартных (для 1С) интерфейсных решений в Web-клиенте

WEB-интеграция Идеи и тренды в разработке Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Онлайн-сервисы, построенные на 1С, могут использовать все многообразие веб-технологий. О том, как спроектировать, реализовать и красиво оформить интерфейс продукта 1С, в докладе на конференции Infostart Event 2021 Post-Apocalypse рассказал CTO компании WiseAdvice Олег Филиппов.

21.10.2022    7083    comol    15    

70

Верстка главной страницы Infostart на tailwind

WEB-интеграция Работа с интерфейсом Бесплатно (free)

Сверстал главную страницу infostart на framework tailwind css.

08.09.2022    3241    John_d    21    

29

Код универсального HTTP-запроса

WEB-интеграция 8.3.14 Россия Бесплатно (free)

Код предназначен для того, чтобы не читать каждый раз справку по методам 1С, а иметь под рукой готовый шаблон, где можно поменять параметры в соответствии со своими целями...

08.07.2022    4420    user1802663    13    

25

Rest API от чайника для чайников

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

На написание статьи побудило чтение книги "Технологии интеграции "1С:Предприятия 8.3"" Хрусталевой Е.Ю. В первой главе там постоянно чередуются слова REST, REST-интерфейс, архитектура REST и т.д. Мне стало интересно, я начал копать, что это такое, и тема оказалась достаточно интересной.

06.06.2022    14416    zeltyr    2    

11

Загрузка выпусков подкаста Радио 1С Энтерпрайз

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

Код для загрузки всех выпусков подкаста Радио 1С Энтерпрайз для оффлайн-прослушивания.

29.04.2022    1229    q_i    9    

16

Спецификация OpenRPC

WEB-интеграция Бесплатно (free)

Спецификация OpenRPC определяет стандартное, независимое от языка программирования описание интерфейса для API-интерфейсов JSON-RPC 2.0. Перевод общей информации и спецификации с официального сайта https://open-rpc.org/

18.04.2022    1375    malikov_pro    0    

14

Методика интеграции HTML редакторов в поле HTML документа базы 1С

WEB-интеграция Платформа 1С v8.3 Платформа 1C v8.2 Бесплатно (free)

В статье описаны критерии WYSIWYG HTML редакторов и общая картина интеграции с платформенными механизмами. На момент платформы 1С 8.3 и возможно для будущих релизов описание будет скорее всего актуально. Апробировано на 1С 8.3.20 и 8.2.12, а также на мобильной платформе 8.3.19.59.

12.04.2022    1938    user1206119    2    

13

Создание кодогенератора для Postman

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

Опишу порядок разработки кодогенератора для Postman c использованием OneScript и HTTPКоннектор.

13.03.2022    1547    malikov_pro    2    

9

Запуск FastAPI (Python) на Yandex Cloud Functions и Yandex Database

WEB-интеграция Бесплатно (free)

Описание прототипа для запуска HTTP API сервиса на serverless технологии с применением фреймворка.

10.03.2022    3986    malikov_pro    2    

11

Как из 1С отдать миллионы строк в BI и успеть это сделать быстро

Консолидация данных Анализ и проектирование ИТ-систем WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

На онлайн-митапе «Бизнес-анализ по данным базы 1С. Интеграция c платформами BI» выступил ведущий разработчик WiseAdvice.tech Дмитрий Фурцев. Дмитрий рассказал о том, как отдать миллионы строк из 1С в платформу бизнес-аналитики и не потратить на это сутки.

14.02.2022    5349    Fudj1k    11    

22

Передача сообщений из 1С в MS Teams

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Пример организации уведомлений в канал MS Teams.

09.02.2022    2295    Alex_YAM    4    

24

Работа с 1С через протокол OData

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

В данной статье мы будем рассматривать работу с данными информационной базы через протокол OData (далее OData).

17.12.2021    34718    ProgrammingStore    27    

87

Подключение к HTTP-сервису с авторизацией посредством передачи клиентского SSL-сертификата

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

В статье хочу поделиться опытом настройки подключения 1С к стороннему HTTP-сервису, использующему авторизацию посредством передачи клиентского SSL-сертификата.

07.12.2021    11416    kholkin    12    

106

Тонкости и подводные камни работы типового модуля интеграции Битрикс24 и 1С (Часть 2)

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Это вторая часть цикла статей, посвящённых типовому модулю интеграции 1С Предприятия и Битрикс24. Цель данной части: рассмотреть тонкости, связанные с обменом товарами и сопутствующими сущностями (спойлер - единицы измерения и свойства товаров). Также затронем некоторые нюансы связи сущностей 1С и Б24 (относящиеся не только к товарам) и их побочное влияние при переносе данных из модуля в модуль (при смене конфигурации, переустановки или обновлении модуля).

27.11.2021    9138    freegman74    16    

19

Web консоль управления сеансами 1С

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Мы дали ему название adm1c, он позволяет посредством веб доступа удалять или смотреть на сеансы в 1С базах и при необходимости удалять их. Да и что тут такого, сказали бы, есть же консоль на win, с нее же это можно делать, и все верно, но есть пара но.

26.11.2021    3151    4ernuy    16    

28

Понимание схемы JSON (JSON Schema), часть 2

WEB-интеграция Бесплатно (free)

Перевод книги https://json-schema.org/understanding-json-schema/

09.11.2021    7680    malikov_pro    0    

23

Примеры тестовых сценариев Postman

WEB-интеграция Бесплатно (free)

Перевод статьи https://learning.postman.com/docs/writing-scripts/script-references/test-examples/

08.11.2021    35723    malikov_pro    0    

37

Тонкости и подводные камни работы типового модуля интеграции Битрикс24 и 1С

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Цель статьи - указать на подводные камни и нюансы, о которых “не пишут на заборах” и которые встретились мне за время внедрения типового модуля интеграции 1С и Битрикс24. Будет интересна для людей, кто подумывает о том, чтобы настроить интеграцию, и хотят понять, с чем столкнутся. А также для тех, кто уже работает с подобным обменом, столкнулся с какими-то из описанных ситуаций и хочет понять, что пошло не так и “как жить дальше”. Постараюсь все описать “человеческим” языком с минимальной долей терминов, так как статья, надеюсь, будет полезна не только программистам.

07.11.2021    12901    freegman74    13    

37

Окей, Google

WEB-интеграция Платформа 1С v8.3 Россия Бесплатно (free)

Пример интеграции Google Ассистента с 1С. В основе которого лежит платформа Dialogflow CX для понимания естественного языка.

28.10.2021    2175    Soloist    6    

29

Спецификация JSON:API 1.0

WEB-интеграция Бесплатно (free)

Перевод спецификации https://jsonapi.org/format/

28.10.2021    6440    malikov_pro    4    

17

Повышение производительности веб-сервисов. Переиспользование сеансов

WEB-интеграция HighLoad оптимизация Платформа 1С v8.3 Бесплатно (free)

Повышение производительности веб-сервисов. Переиспользование сеансов. Практическая реализация.

20.10.2021    4914    sorter1    3    

47

Когда интерфейсам 1С нужны веб-технологии

WEB-интеграция Работа с интерфейсом Анализ и проектирование ИТ-систем Бесплатно (free)

Есть несколько способов сделать интерфейс в 1С богаче и оптимальнее с помощью веб-технологий. О том, какие практические приемы помогут в этой задаче, на митапе «Интерфейс в 1С» рассказали руководители разработки в компании «Арбис» Матвей Серегин и Анна Гнатюк.

15.10.2021    5728    Akcium    11    

69

WEB/HTTP сервисы. Базовые отличия и применение на практике

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

Рассказываем о WEB и HTTP сервисах, их практическом применении, о шишках, которые мы набили, и о выводах, которые сделали. Спойлер: тех, кто дочитает статью до конца, ждет бонус от автора.

04.10.2021    29885    Neti    23    

114

Быстрое чтение составных http сообщений multipart/form-data

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

Алгоритм быстрого разбора составного http сообщения multipart/form-data.

26.09.2021    3121    cherkasovvitalik    4    

56

Интеграция 1С с Битрикс24 через вебхуки

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Пример получения токена и http запрос к API битрикса.

15.09.2021    9731    TyurinArt    11    

32

Бесплатный сертификационный курс Интеграция API Яндекс.Маршрутизации и программных продуктов на базе 1С (22 сентября - 5 октября 2021 года)

WEB-интеграция Бесплатно (free)

Курс позволит получить востребованную квалификацию по работе с API Яндекс.Маршрутизации, поможет разобраться с особенностями настройки сервиса и научит реализовывать сложные операционные бизнес-схемы, чтобы быстрее интегрировать его в своей компании или на стороне клиента, снижая затраты на логистику на 10-20% и повышая маржинальность организации до 2х раз. Сертифицированные специалисты также смогут присоединиться к агентской программе Яндекс.Маршрутизации и получать дополнительный доход от продажи лицензий и проведения работ по интеграции сервиса.

13.09.2021    1937    routing    0    

13

Внедрение веб-клиента – взгляд изнутри программиста 1С со стороны заказчика

WEB-интеграция Бесплатно (free)

Программист 1С в компании TELS Виталий Ильинчик выступил на онлайн-митапе «Web-клиент для 1С». Он рассказал о том, с какими проблемами столкнется ИТ-отдел заказчика и как их можно предупредить. За основу взят опыт внедрения веб-кабинета поставщика на платформе vCan-Site.

10.09.2021    2229    wtlz    0    

9

Обмен с HTTP сервисом файлами по формату multipart/form-data

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Потребовалось отправить картинку в теле запроса в HTTP сервис методом POST, куча реализаций, но есть маленькие нюансы, если хотя бы кому-то поможет, то уже это было не напрасно.

07.09.2021    11356    ix5s    25    

67

Разработка гибридного web-приложения на 1С, возможности и ограничения

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

Все чаще разработчики склоняются к использованию 1C в качестве бэкенда при разработке веб-приложений. Но благодаря встраиванию веб-клиента 1С в сайт можно получить еще больше готовой функциональности. О том, как реализовать гибридное приложение за счет связки 1С с другими веб-технологиями, рассказал разработчик компании Neti Эльдар Мингалиев.

06.09.2021    5285    Бэнни    12    

51

Работа с WEB-сервисами под HTTPS на примере прямого обмена между базами (1С – 1С) 

WEB-интеграция Платформа 1С v8.3 Россия Бесплатно (free)

Использование веб-сервисов 1С при обмене 1С – 1С позволяет быстро передавать достаточно большие объемы данных из базы-источника в базу-приемник в объектах языка 1С. Данный метод обмена может применяться при бесшовной интеграции между двумя базами 1С, но требует определенной серверной инфраструктуры (установленного и настроенного WEB-сервера).

03.09.2021    12224    UltraUnion2005    9    

35

Умная маршрутизация: о сложностях интеграции с 1С (часть 2)

WEB-интеграция Платформа 1С v8.3 1С:Управление торговлей 11 Бесплатно (free)

В статье будет много примеров кода с комментариями работы расширения для обмена данными УТ11.4 с Яндекс.Маршрутизацией через выгрузку/загрузку EXCEL файла.

27.08.2021    2840    greencactus    7    

18