Пример вывода нескольких ФорматированныхДокументов в HTML поле в виде последовательных комментариев с вложениями

20.09.13

Разработка - Инструментарий разработчика

Пример вывода списка Форматированных документов в виде комментариев с вложениями в HTML поле.

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

Наименование Файл Версия Размер
Пример конфигурация
.cf 10,26Kb
24
.cf 10,26Kb 24 Скачать

В ходе работы над 1 из проектов столкнулся с написанной еще до меня системой обращений к ИТ, которая представляла собой Бизнесс-процесс (далее БП) с рядом этапов реализации, возможностью добавления комментариев пользователем и исполнителем в ходе работы в поля типа "ФорматированныйДокумент" (далее ФД).

Но так как система была написана давно и имела свои недоработки мне поручили ее тюнинг и улучшение.

Изначально в системе был реализован БП в котором на этапе инициализации пользователь описывал свое обращение к отделу ИТ в поле типа "ФД" УФ (Управляемая форма), далее это обращение сохранялось вместе с сохранением и стартом БП.

 В результате появлялась первая задача в которой начальник отдела ИТ определял исполнителя, ориентировочные сроки реализации, важность задачи и прочее, а так же вводил свой ккомментарий в поле типа "ФД".

И так далее на каждом этапе работы (отдельная задача БП).

В процессе работы заказчик мог открыть запущенный им БП и на закладке "Ход обсуждения" посмотреть всю историю комментариев (по задачам и произвольных к БП), а также нажав кнопку комментарий добавить свой форматированный комментарий (хранившийся в отдельном месте с привязкой к ссылке БП).

 Недостаток системы был в том, что в случае добавления картинок в ФД, небыло нормальной системы вывода их в комментарии в результате чего имеющийся алгоритм выводил определенный текст в HTML в требуемом формате, но с мертвыми ссылками на картинки (скрины) и функция вставки изображений в HTML документ никак не использовалась.

Суть проблемы была в следующем: "ФД" разбирался на HTML текст и вложения (метод объект "ФД" - ПолучитьHTML), после разбора текст шел в состав общего HTML документа (списка комментариев), но всвязи с тем, что ссылки в формате 1С на вложения "ФД" выгруженые в структуру получить невозможно, а значит нельзя и вставить в тело HTML документа ссылки на вложения были мертвыми (объект "Структура" физически хранится лишь в памяти до окончания работы алгоритма формирования HTML документа).

 В результате изысканий мной было (к сожалению) придумано лишь 1 решение :

HTML текст поддерживает возможность вставки элементов вложений в виде Base64 кодировки и т.к.ФД позволяет вставлять в виде вложений лишь картинки был написан следующий код, который позволяет получить чистый код HTML вставки "ФД" с вложениями в виде кодировки Base64 (в демо-конфигурации это функция общего модуля).

Код общего модуля 

Как использовался этот код в ходе тестирования демонстрирует код обработки ниже. При определенных навыках и фантазии можно сделать красиво оформленные комментарии как на форумах и т.п. Но в базовом примере я этим заморачиваться не стал. (в рабочей же конфе выводится заголовок комментария, фото пользователя его оставившего из справочника сотрудники и подпись).

Собственно код УФ обработки выглядел так:

КодМодуляФормыОбработки

На форме обработки находится HTML поле куда компануются комментарии и 2 поля типа "ФД" в которые можно забить данные для теста.

Смотрите скрин или пример конфигурации.

Форма обработки и тестовых полей до вывода комментариев

Результат выполнения алгоритма вывода списка комментариев из 2 ФД:

 

Результат работы алгоритма


P.S: Статьи пишу редко Sealed так что просьба за оформление текста сильно не гневаться и ногами не пинать.

P.S.S: Код 1С пришлось заменить картинками, т.к. некоторые части содержали HTML теги и в результате залива статьи текст кода становился кривым и неверным. Все реальные коды можно получить из приложенной конфы или методом перенабора со скринов Innocent

ФорматированныйДокумент HTMLПоле

См. также

SALE! 20%

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

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

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

13000 10400 руб.

02.09.2020    122170    670    389    

714

SALE! 25%

Infostart PrintWizard

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

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

18000 15300 руб.

06.10.2023    7294    21    6    

39

SALE! 20%

Infostart УДиФ: Управление данными и формами

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

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

10000 8000 руб.

10.11.2023    3539    11    1    

34

SALE! 30%

PowerTools

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

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

3600 2520 руб.

14.01.2013    177752    1073    0    

849

Многопоточность. Универсальный «Менеджер потоков» 2.1

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

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99347    239    97    

296

Богатый редактор картинок, хранимых в базе, с возможностью РИСОВАНИЯ. Редактор внешних файлов картинок. Объект, расширяющий возможности работы с картинками из встроенного языка (Три в одном) + Обработка «Стандартизация картинок»

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

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

6000 руб.

16.01.2015    61797    43    59    

80

[Расширения] Динамическое управление видимостью и доступностью элементов форм (УФ) (8.3.6+)

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

Механизм «Динамическое управление доступом к элементам форм объектов 1С8» предназначен для обеспечения возможности оперативного управления видимостью и доступностью элементов форм документов и справочников продуктов фирмы «1С» «1С:Предприятие 8». Решение универсальное, встраивается в любую конфигурацию с минимальными доработками, что позволяет без проблем обновлять типовые решения.

5000 руб.

14.01.2016    54403    16    21    

42

Управление дашбордами

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

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

2400 руб.

29.06.2020    16698    21    4    

35
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Sirus Virus 109 20.09.13 10:47 Сейчас в теме
При желании можно формировать упорядоченный "СписокЗначений" (значения типа "ФД") и написать алгоритм их вывода в виде ленты.
2. kapustinag 20.09.13 20:26 Сейчас в теме
Может быть, лучше для хранения картинок и файлов иного формата выделить файловый ресурс?
Тогда в тексте HTML можно использовать тэги типа IMG SRC=..., или ссылки на эти файлы.
При этом инф.база не будет засоряться двоичными данными.
3. Sirus Virus 109 21.09.13 00:12 Сейчас в теме
В компании где это используется жесткая политика безопасности и вариантов доступа к файловым ресурсам нет.
Изначально пытался сделать сохранение рисунков во временные файлы из тела ФД при парсе и обработке, но увы не взлетело и поэтому был изобретен такой вот велосипед :)

Да решение может и не совсем удобное, но пример выложен лишь как вариант на случай "а может кому пригодится" :)
4. Поручик 4670 21.09.13 01:03 Сейчас в теме
(0) Спасибо, я-то голову ломал, как же картинки в тексте письма отправлять. И главное дело, знал про вставку изображений в виде кодированных по base64.
Пошёл убиваться об стенку, Акела лоханулся. Теперь попробую ваш метод.
5. Steelvan 302 25.02.15 22:24 Сейчас в теме
Оформление кода такое, как будто делал тупой американец.

А, понял почему звездочки раздражают, они же на их флаге :)
6. Steelvan 302 25.02.15 22:26 Сейчас в теме
Два слеша + текст более чем достаточно для описания блока небольшого блока строк.
7. Sirus Virus 109 26.02.15 12:42 Сейчас в теме
(6) Ну извини :) привык подробно комментировать свой код да и тем кто приходит работать после проще разобраться и в целом он становится читабельней.
Оставьте свое сообщение