Графит. Правщик 1С морд от kuzkov.info. 6. Сохраняем и правим SVG формат

25.02.21

Разработка - Работа с интерфейсом

Шестая часть хронологии разработки программы Графит, векторного правщика 1С морд от kuzkov.info. Добавлен функционал сохранения схемы в svg с возможностью повторной правки сохраненного svg файла. Практический пример приложения svg картинок к задаче в задачнице Мантис. Тяни-бросай svg на поле рисования из виндового проводника и пример гиперссылок между svg в обозревателе.


Приветствую, уважаемое сообщество !
В шестой части записок о разработке Графита опишем сохранение в svg формат. Это универсальный xml формат описания векторной картинки, которая одинаково отображается как в 1С, так и в любом обозревателе.

Отступление

В данной публикации будет описано следующее:
*) Сохранение в svg формат;
*) Свойства "ВидимостьВSVG" и "СохранятьВSVG";
*) Обертка в гиперссылку;
*) Пример для межстраничных переходов в обозревателе;
*) Тяни-бросай svg на поле рисования из виндового проводника;
*) Окно сообщения при тяни-бросай файла svg ошибочного формата без встроенной схемы;
*) Подкоманда "Куда-то быстро записать svg и путь в буфер";
*) Пример применения сохранения в svg на примере применения для Мантиса;

История разработки в публикациях

 

Первая часть: //infostart.ru/public/1331373/
Вторая часть: //infostart.ru/public/1336820/
Третья часть: //infostart.ru/1c/articles/1341861/
Четвертая часть: //infostart.ru/public/1353926/
Пятая часть: //infostart.ru/1c/articles/1380741/


Сохранение в svg формат

Графит получил функционал сохранения схемы в svg формат. Это важный этап развития, теперь нарисованные схемы можно сохранять как во внутренний xml формат, так и во внешний svg формат, который понимают все обозреватели.


[Гифка сохранения схемы в svg формат. GIF1]

Как ранее было написано в предыдущих записках, svg формат является только результирующим, показывающим созданную схему. Однако, благодаря встройке xml схемы в svg файл в виде комментария, мы можем обойтись одним svg файлом как для отображения, так и для повторной правки схемы. Подход сохранения xml в svg был описан еще в первой части записок ( //infostart.ru/public/1331373/ ).

Графит в своей работе с svg форматом пользуется следующими svg узлами;
*) g (группа);
*) a (гиперссылка);
*) rect (прямоугольник);
*) circle (круг);
*) line (линия);
*) path (путь);
*) text (текст);
*) textspan (строка текста);
*) pattern (шаблон заливки фигур);

Общий подход сохранения в svg формат покажу на примере сохранения прямоугольника с описанием подходов для решения некоторых технических моментов
В базовом виде прямоугольник сохраняется в svg в виде двух path элементов, которые обернуты в g узел.


[Картинка сохранения прямоугольника в svg формат. PNG2]

Каждый path элемент имеет свое имя, производное от имени элемента в g узле. Таким образом каждый элемент svg схемы обладает уникальным именем. Это сделано для дальнейшей возможности управлять js кодом (менять цвет, заливку и т.п.).
Да, я сразу оговаривался, что на Графит у нас далеко идущие планы :)

Если рамку указывать сразу в path тела через атрибуты "stroke*" то толщина рамки будет отложена наружу, а это вызовет отличия в размерах в Графите и в обозревателе.
Отдельный элемент path для рамки нужен для соблюдения внешних размеров элемента, таким образом мы откладываем рамку внутрь.


[Картинка линейки на прямоугольнике 100х100. PNG3]

Остальные элементы сохраняются примерно в похожем формате. Особо обращаю внимание что да, отображалки с нарисованными 1С мордами тоже сохраняются в svg файл и повторно открываются для правки. Как я ранее писал, разработку шаблонов временно отложили ради работы над функционалом.

Свойства "ВидимостьВSVG" и "СохранятьВSVG"

Свойства "ВидимостьВSVG" и "СохранятьВSVG" доступны через список свойств на правой панели свойств.

Свойство "ВидимостьВSVG"

Если данное свойство отключено для элемента, то элемент сохраняется в svg с атрибутом visibility="hidden". Применяться данное свойство должно тогда, когда элемент должен быть сохранен в svg изначально в скрытом состоянии.
Дальнейшее состояние зрительной видимости может быть изменено js скриптом. Например, выпадающие списки для выбиралки. Списки можно заранее нарисовать и скрыть, а скриптом включать видимость.


[Картинка случая применения свойства "ВидимостьВSVG". PNG4]

Свойство "СохранятьВSVG"

Если данное свойство отключено для элемента, то элемент в svg не сохраняется. Применяться данное свойство должно тогда, когда элемент на схеме выполняет вспомогательную роль и в конечном svg файле должен отсутствовать.


[Картинка случая применения свойства "СохранятьВSVG". PNG5]


Обертка в гиперссылку

Достаточно подробно обертка в гиперссылку была описана в пятой части записок ( //infostart.ru/1c/articles/1380741/ ). Здесь просто приложу зрительный пример того, как это работает.


[Гифка работы с гиперссылками. GIF6]


Тяни-бросай svg на поле рисования из виндового проводника

Для удобства и скорости работы, доработано таскание svg из виндового проводника на поле рисования Графита.


[Гифка тяни-бросай на поле рисования Графита. GIF7]

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


Подкоманда "Куда-то быстро записать svg и путь в буфер"

Данная подкоманда добавлена для ускорения работы с временными файлами, когда важно быстро сохранить svg файл и получить путь к файлу в буфере.
При вызове этой команды выполняется сохранение схемы в svg формате в папку Temp, которая находится рядом с exe файлом Графита. Имя файла создается из текущего времени.
Случай применения на практике покажу на примере работы с задачницей Мантис ( //infostart.ru/1c/articles/1364219/ ).

Рассмотрим случай, когда вы являетесь ведущим программистом, техписом или просто тестировщиком, который делает некую схему и прикладывает ее картинкой к задаче. На схеме может быть любая диаграмма или снимок с пояснениями.
Вот вы сделали такую схему и вам все-равно как она будет называться => вам просто надо ее приложить к задаче. Тогда вы вызываете подкоманду "Куда-то быстро записать svg и путь в буфер", переходите в Мантис, щелкаете на поле добавления файла для открытия диалога и вставляете путь из буфера. Все, картинка svg приложена к задаче.


[Гифка быстрого приложения svg к задаче. GIF8]


Сразу покажу на практике удобство повторной правки картинок с тяни-бросаем из проводника или обозревателя.
Рассмотрим обратный случай, когда вы получили задачу с картинкой и вам надо ее доработать. Через контекстное меню в обозревателе скачиваем картинку и просто бросаем ее на поле рисования Графита, правим и вышеописанным способом прикладываем обратно.


[Гифка повторной правки svg картинки. GIF9]

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


Среди этого многообразия примеров применения мы помним, что одно из основных назначений Графита это создание 1С морд.
Описанный выше функционал сохранения в svg файлы и повторное использование можно применять следующим образом:
*) Нарисовали заготовку некоей формы некоей типовой конфигурации, например форма документа "Счет";
*) Сохранили в svg в общей папке или в общей сетевой коллекции;
*) При нужности доработать форму документа "Счет" нет нужности рисовать ее с нуля каждый раз, просто взяли заготовку, перетащили на поле рисования Графита и доработали;

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

На этом пока все. Остаемся на связи !

Прототип набросок приказчик аналитик visio заказчик kuzkov.info Кузьков Графит svg шаблонщик

См. также

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

Богатый редактор картинок 1С предназначен для обработки изображений в режиме «Предприятие», с возможностью РИСОВАТЬ на них. Поддерживается работа как в обычных формах (толстый клиент) так и на управляемых формах (тонкий клиент). Обработка позволяет редактировать как картинки, хранимые в базе, так и графические файлы с диска на файловой системе. Помимо базовых функций (изменение размеров, преобразование формата, обрезание картинки, повороты и т.п.) – редактор имеет богатый набор инструментов для рисования. Доступна функция вставки изображения из буфера обмена. Объект может быть использован: на стороне клиента, на стороне сервера, из внешнего соединения. Обработка будет особенно полезна тем, кто вносит картинки в базу (изображения номенклатуры, фотографии физических лиц и т.п.). Функционал реализуется с использованием JavaScript и бесплатного ПО ImageMagick (без использования внешних компонент).

6000 руб.

16.01.2015    62986    44    59    

82

Работа с интерфейсом Программист Платформа 1С v8.3 Конфигурации 1cv8 1С:ERP Управление предприятием 2 Платные (руб)

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

2400 руб.

29.06.2020    18855    26    6    

41

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

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

1500 руб.

06.10.2020    10224    7    7    

10

Работа с интерфейсом Программист Стажер Платформа 1С v8.3 Бесплатно (free)

Это инструкция по дизайну форм в среде 1С. Гайд охватывает рекомендации и стандарты для оптимизации пользовательского интерфейса. В гайде содержатся указания по использованию элементов интерфейса, включая как основные, так и продвинутые аспекты. Предоставляются также примеры и антипримеры для наглядного понимания принципов дизайна

20.08.2024    16802    mrXoxot    43    

121

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

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

27.05.2024    7353    smielka    37    

100

Работа с интерфейсом Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Бесплатно (free)

Добавьте новогоднего настроения! Расширение создает декорацию в виде гирлянды на некоторых формах объектов.

27.12.2023    14789    913    elcoan    47    

117

Инструментарий разработчика Работа с интерфейсом Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

2 стартмани

10.04.2023    11914    162    acces969    31    

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