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

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 кода. Надеюсь, информация будет полезной.

См. также

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

Сайты и интернет-магазины WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    15983    13    18    

13

Интеграция 1С — Битрикс24. Обмен задачами

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

Интеграция 1С и Битрикс24. Разработка имеет двухстороннюю синхронизацию 1С и Битрикс24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (8.3.18.1289). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    17985    9    15    

13

SALE! 10%

Автоматическая загрузка файлов (например, прайс-листов) из электронной почты, FTP, HTTP, их обработка и выгрузка на FTP (на сайт) и для других целей

Прайсы WEB-интеграция Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Автомобили, автосервисы Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Программа с заданным интервалом времени (или по ручной команде) скачивает файлы (например, прайс-листы поставщиков) из различных источников: письма электронной почты, FTP или HTTP-адреса, и сохраняет их в каталог упорядоченной структуры. При этом извлекает файлы из архивов, может переименовывать файлы и менять их формат (csv, xls, txt). Можно настроить выгрузку обработанных файлов на сайт (через FTP-подключение). Программа будет полезна компаниям, у которых есть большое количество поставщиков и/или прайс-листы поставщиков обновляются часто (необязательно прайс-листы, файлы могут быть любого назначения). Собранные таким образом актуальные версии прайс-листов можно выгрузить с помощью программы себе на сайт (или на любой FTP-сервер) или выполнить другие необходимые задачи.

28000 25200 руб.

28.05.2015    84990    26    51    

50

Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС

Обмен с ГосИС WEB-интеграция Платформа 1С v8.3 Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:Документооборот 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Обработка является альтернативой механизму, разработанному фирмой 1С и заполняющему реквизиты контрагента по ИНН или наименованию. Не требуется действующей подписки ИТС. Вызывается как внешняя дополнительная обработка, т.е. используется, непосредственно, из карточки контрагента. Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС (egrul.nalog.ru) для БП 2.0, БП 3.0, БГУ 1.0, БГУ 2.0, УТ 10.3, УТ 11.x, КА 1.1, КА 2.x, УПП 1.x, ERP 2.x, УНФ 1.5, УНФ 1.6, УНФ 3.0, ДО 2.1

2400 руб.

28.04.2016    89133    163    216    

320

[Расширение] БОР-Навигатор.Культура

Зарплата Бюджетный учет WEB-интеграция Обмен с ГосИС Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бюджетный учет Платные (руб)

Расширение конфигурации, включающее в себя объекты, необходимые для подготовки и сдачи отчета "Штатная численность" системы "БОР-Навигатор.Культура" в программе "1С:Зарплата и кадры государственного учреждения", редакция 3.1.

8400 руб.

01.02.2019    25902    9    0    

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