gifts2017

HTML редактор для 1С (1С HTML IDE)

Опубликовал Николай Крылов (Nikola23) в раздел Программирование - Работа с интерфейсом

Стандартный для 1с интерфейс не всегда может удовлетворить заказчика. В этом случае возникает необходимость реализовывать некоторые формы с использованием HTML.
Как известно, встроенный в 1с объект "поле табличного документа" работает с использованием старых технологий. В результате, страничка, написанная в сторонней IDE в 1с может отображаться как угодно, но только не так как требуется.
Когда у меня появилась задача сделать рабочий стол на HTML я сразу понял, что писать веб-код необходимо сразу на платформе 1с, что бы  видеть результат Online и корректировать его.
Для меня веб-программирование заканчивается знанием тега <a>. Разнообразные глюки и особенности веб-среды мне просто неизвестны, поэтому сразу видеть что получается - самое то.

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

ВНИАМНИЕ! не нашел необходимого пункта в характеристиках публикации.

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


История версий

0.2

-- первая опубликованная

0.3

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

0.4 

-- Исправлены ошибки.
-- Поле результата обновляется при изменении в любом из полей настроек.
-- Добавлено копирование строк в дереве блоков.

0.5

-- Исправлены ошибки распознавания файлов.
-- Неиспользуемые стили сохраняются закомментированными.

 

0.6

-- Скорректированы обработчики обновления результата. Срабатывало не всегда. 

-- Наведен порядок в функциях.

-- Добавлено копирование классов с сохранением настроек стиля применительно к новому классу.
-- Добавлены обработчики событий onCick.
-- Закомментированные стили теперь загружаются.

0.7

-- Исправлены выявленные ошибки

-- Релиз адаптирован для работы в немодальном режиме

-- Тестировалось только на платформе 8.3.5

 

Ждите релиз 0.8:

-- работа с даными 1с без динамического формирования кода HTML

-- отображение картинок без сохранения картинки в файл

-- сохранение и восстановление обработчиков нажатия кнопок и гиперссылок на языке 1с.


Естественно, разработанный интерфейс необходимо наполнить списками с даными, а для кнопок добавить обработчики событий, поэтому просто HTML-редактор не даст конечного результата. Однако его использование позволит значительно сократить трудозатраты.


Разработка рассчитана на div-верстку и использование таблиц стилей.

Основной объект - это дерево блоков div, где корневым элементом выступает body (хоть это и не div, но хранится все в одном дереве).

В этом же дереве описываются блоки обычного текста.

 

Каждый блок может представлять из себя тег div или просто текст, это регулируется соотв. галочкой.

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

 

Особенность первого релиза - регистрозависимость. Что бы добавить описание ранее созданного класса к новому div пишите имя класса в том же регистре, что и ранее.

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

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


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

Инструмент сохраняет результат в файл и в хранилище настроек. В решении есть механизмы для распознавания сохраненных ранее страничек.

Поддерживаются скрипты - обратите внимание на соотв. закладку.

ВНИМАНИЕ! Гарантировать, что можно распознать любую веб-страничку я не буду Cool.

Планы по развитию инструмента:

Копирование и перенос строк дерева
Выгружать свойства закомментированными, если снята галка в стилях
Добавить отключаемые классы
Добавить отключаемые ветки дерева
Контроль уникальности id

Добавить таблицу цветов

Подмена путей к картинкам
Копировать наборы стилей в новый класс
Упрощение подбора свойств

Автоматическое обновление результирующей странички при любых изменениях настроек

Выделение текущего блока на результирующей страничке с целью оценить его положение (если границ не видно - полезная опция).

Выбор цвета из таблиц веб-цветов.

Хочу сделать встроенный набор элементов управления в стиле 1с: кнопки, закладки и проч...

В архив выложил демо-пример странички, которую можно загрузить себе. Это форма напоминаний о задачах.

 

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

Наименование Файл Версия Размер Кол. Скачив.
1с_HTML_IDE релиз 0.6
.rar 15,69Kb
13.04.15
62
.rar 0.6 15,69Kb 62 Скачать
1с_HTML_IDE релиз 0.7
.rar 14,77Kb
13.04.15
74
.rar 0.7 14,77Kb 74 Скачать

См. также

Вознаграждение за ответ
Сумма: 0 $m
Добавили:
Максим Твердов (yngwie_83) (0.10 $m)
Подписаться Добавить вознаграждение

Комментарии

1. Яков Коган (Yashazz) 20.02.14 18:28
А конечная визуализация какими средствами делается-то? Вызовом браузера, какой попадётся на компе, или встроенным коцанным IE7 платформы?
2. Dima Dima (bayce) 20.02.14 20:58
Не совсем понятно , как этим пользоваться?
Evil Beaver; +1 Ответить 1
3. Николай Крылов (Nikola23) 20.02.14 21:01
(1) визуализация осуществляется средствами 1с, на это и рассчитана разработка. Делать при ее помощи сайты - не самое верное применение. Создавать альтернативу интерфейсным элементам 1с - то, ради чего создавалась обработка. В том-то и дело, что 1с-ный браузер сильно обрезан, и угадать, как отобразится HTML , если писать код в блокноnе или нормальyой IDE - довольно трудно. Я намучался.
4. Николай Крылов (Nikola23) 20.02.14 21:06
(2) Пользоваться - скачайте и попробуйте. Или дайте адрес, если нет смартмани. Для Вас пришлю пробную версию. Побалуетесь с галками - поймете.
В перспективе - я добавлю кнопки для ускорения создания HTML кода, при помощи "быстрых действий". Любой новичок сможет освоить HTML верстку, абсолютно не вникая в детали...

Это амбициозный план. Реализую, если возникнет потребность в решении хотя бы в том виде как есть.
5. Сергей Петухин (nilabs) 26.02.14 09:44

Платформа: 1C: Предприятие 8.2
Конфигурация: Не имеет значения

Вот это что такое?

JQ = ПолучитьОбщийМакет("БИТ_CRM_jQuery").ПолучитьТекст();



Классы = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(ДанныеСвойства, " ");

а у меня нет такого модуля


6. Николай Крылов (Nikola23) 26.02.14 12:46
(5) Спасибо за замечание.
Я забыл стереть кусок кода, который есть только у меня в конфе. Я перевыложу релиз с исправлением ошибки.
Закомментируйте эту строку, если нет желания скачивать обработку повторно.

Второе замечание - это упоминается стандартная функция БСП, жаль, что у Вас ее нет. Вы на какой конфигурации работаете?
7. Евгений К (John_d) 26.02.14 18:25
Вопрос не по обработке.
Когда у меня появилась задача сделать рабочий стол на HTML

а как вы HTML-кнопки привязали с кодом 1с? или вы не привязывали?
8. Николай Крылов (Nikola23) 26.02.14 19:19
(7) В релизе 0.6, который пока еще не опубликован, есть возможность назначать обработчики на кнопки).
Если есть желание получить сырую версию этого релиза, напишите почту или подождите пару дней - я выложу на этот сайт. В этом релизе Вы сможете посмотреть, как обрабатываются события.
9. Андрей Овсянкин (Evil Beaver) 02.03.14 00:55
Не понял, что именно она делает... Что первичные входные данные для нее? ДеревоЗначений с фрагментами HTML?
В чем преимущество перед набиванием HTML в текстовый документ?
10. Николай Крылов (Nikola23) 03.03.14 08:09
(9) Evil Beaver, абсолютно верно. Дерево значений, с фрагментами.
В чем преимущество любой IDE над блокнотом? Если Вы ответите на этот вопрос, то сможете понять, зачем создана эта обработка. Лично для меня главное преимущество в том, что я вижу результат "набивания" кода практически он-лайн, что сильно экономит мое время.
11. Максим Твердов (yngwie_83) 04.03.14 12:20
Привет. Если есть желание получить сырую версию релиза 0.6.
Вот почта yngwie_83@mail.ru.
Прикрепленные файлы:
12. Дмитрий Иванов (ikekoval) 04.03.14 15:07
Этим комментом я подпишусь и буду ждать релиза 0.6
Эта идея может нести в себе красивый потенциал, а пользователи любят интерфейсы =)
Nikola23; +1 Ответить
13. Александр Зубцов (iov) 11.03.14 04:13
любопытная идея... надо будет приспособить
14. Konstantin Konstantin (KonstB) 22.04.14 22:35
Скачал оба файла, но везде версия 0.5 - это так задумано?
15. Николай Крылов (Nikola23) 23.04.14 07:20
(14) KonstB, безобразие. И все молчат... Файл обновил.
Дайте Ваш адрес почты, я скину 6й релиз.
16. Konstantin Konstantin (KonstB) 23.04.14 10:40
17. Илья Вольных (xFoG) 23.04.15 11:55
Хорошая идея, автору молодец. Рекомендую посмотреть конфигурацию БИТ.УМЦ, в частности справочник шаблонов осмотра. Делал его года два назад, может какие-то идеи по непосредственному применению пригодятся =)
18. Николай Крылов (Nikola23) 23.04.15 14:02
(17) xFoG, Посмотрим, спасибо!
19. vampiroid vampiroid (vampiroid) 03.06.15 14:00
здравствуйте! можно будет использовать это для создания альтернативной формы выбора (в html) для спр. номенклатуры, например?
20. Николай Крылов (Nikola23) 03.06.15 14:08
(19) vampiroid, Можно. Но в случае с подбором (это сложная форма на мой взгляд), использовать инструмент можно только в части быстрого программирования элементов интерфейса.
Комбинировать из элементов конечное решение, наполнять данными необходимо уже на языке 1с.
Т.е. этой обработкой мы получаем только макет конечной страницы.
21. Роман Сюзев (sorb) 22.11.15 11:16
(20) Nikola23, тема не заброшена? Планируются ли новые версии обработки в этом году?
22. Николай Крылов (Nikola23) 22.11.15 15:34
(21) sorb, Пока непонятно, что добавлять в функционал. Мои задачи обработка решила, критичесских косяков - не найдено. До идеала доводить ради самого процесса - не выгодно.
Есть конкретное что-то чего не хватает?
23. Дмитрий Алексеев (dim479) 26.05.16 23:13
Добрый день! Требуется разместить во встроенном HTML 1С поле выбора с данными из справочника, а также радиокнопки с данными перечисления с возможностью возврата результата выбора; с помощью данной обработки это возможно?
24. Николай Крылов (Nikola23) 27.05.16 04:46
25. Дмитрий Алексеев (dim479) 27.05.16 08:03
т.е. разместить поле выбора отображающее данные из 1С нельзя?
26. Николай Крылов (Nikola23) 27.05.16 10:01
(25) dim479, разместить поле - можно, но все это вручную. Я сам - не пробовал.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа