В ходе работы над 1 из проектов столкнулся с написанной еще до меня системой обращений к ИТ, которая представляла собой Бизнесс-процесс (далее БП) с рядом этапов реализации, возможностью добавления комментариев пользователем и исполнителем в ходе работы в поля типа "ФорматированныйДокумент" (далее ФД).
Но так как система была написана давно и имела свои недоработки мне поручили ее тюнинг и улучшение.
Изначально в системе был реализован БП в котором на этапе инициализации пользователь описывал свое обращение к отделу ИТ в поле типа "ФД" УФ (Управляемая форма), далее это обращение сохранялось вместе с сохранением и стартом БП.
В результате появлялась первая задача в которой начальник отдела ИТ определял исполнителя, ориентировочные сроки реализации, важность задачи и прочее, а так же вводил свой ккомментарий в поле типа "ФД".
И так далее на каждом этапе работы (отдельная задача БП).
В процессе работы заказчик мог открыть запущенный им БП и на закладке "Ход обсуждения" посмотреть всю историю комментариев (по задачам и произвольных к БП), а также нажав кнопку комментарий добавить свой форматированный комментарий (хранившийся в отдельном месте с привязкой к ссылке БП).
Недостаток системы был в том, что в случае добавления картинок в ФД, небыло нормальной системы вывода их в комментарии в результате чего имеющийся алгоритм выводил определенный текст в HTML в требуемом формате, но с мертвыми ссылками на картинки (скрины) и функция вставки изображений в HTML документ никак не использовалась.
Суть проблемы была в следующем: "ФД" разбирался на HTML текст и вложения (метод объект "ФД" - ПолучитьHTML), после разбора текст шел в состав общего HTML документа (списка комментариев), но всвязи с тем, что ссылки в формате 1С на вложения "ФД" выгруженые в структуру получить невозможно, а значит нельзя и вставить в тело HTML документа ссылки на вложения были мертвыми (объект "Структура" физически хранится лишь в памяти до окончания работы алгоритма формирования HTML документа).
В результате изысканий мной было (к сожалению) придумано лишь 1 решение :
HTML текст поддерживает возможность вставки элементов вложений в виде Base64 кодировки и т.к.ФД позволяет вставлять в виде вложений лишь картинки был написан следующий код, который позволяет получить чистый код HTML вставки "ФД" с вложениями в виде кодировки Base64 (в демо-конфигурации это функция общего модуля).
Как использовался этот код в ходе тестирования демонстрирует код обработки ниже. При определенных навыках и фантазии можно сделать красиво оформленные комментарии как на форумах и т.п. Но в базовом примере я этим заморачиваться не стал. (в рабочей же конфе выводится заголовок комментария, фото пользователя его оставившего из справочника сотрудники и подпись).
Собственно код УФ обработки выглядел так:
На форме обработки находится HTML поле куда компануются комментарии и 2 поля типа "ФД" в которые можно забить данные для теста.
Смотрите скрин или пример конфигурации.
Результат выполнения алгоритма вывода списка комментариев из 2 ФД:
P.S: Статьи пишу редко так что просьба за оформление текста сильно не гневаться и ногами не пинать.
P.S.S: Код 1С пришлось заменить картинками, т.к. некоторые части содержали HTML теги и в результате залива статьи текст кода становился кривым и неверным. Все реальные коды можно получить из приложенной конфы или методом перенабора со скринов