Случилось такое, что клиенту было недостаточно поля описания у свойства типа "Файл" с фотографиями - слишком мало текста помещается (ограничение в базе на 255 символов, тип VARCHAR), а работать с изображениями через медиабиблиотеку неудобно. Было принято решение дополнить текстовое поле описания более подробным полем. Вот так:

То есть после нажатия на кнопку "Добавить описание" появляется не одно поле, а два - первое с помощью шаблона пойдет в alt и title к картинке, а второе будет подписью.
Суть решения в работе с событиями OnAfterIBlockElementUpdate, OnBeforeProlog и OnEndBufferContent.
Почему не кастомизация страницы редактирования элемента? Оказалось, что список файлов, представленный на картинке генерируется методом модуля fileman - кастомизировать его "легально" не получится - обновления затрут изменения.
Таким образом суть решения заключается в добавлении своей таблицы, которая хранит ID значения свойства и подробное описание к этому свойству (картинке).
С помощью OnEndBufferContent и регулярных выражений редактируем страницу, добавляя textarea рядом с полем ввода описания.
Через событие OnAfterIBlockElementUpdate сохраняем введенные значения в нужной таблице.
А в OnBeforeProlog подключаем простой скрипт, который показывает текстовые поля с детальным описанием для тех свойств, где не введено обычное описание (хотя это можно было сделать и в OnEndBufferContent, но так проще и быстрее).
В целом решение простое, но его поиск занимает определенное время, поэтому надеюсь, что кому-нибудь помог.
Сам код довольно большой, не вижу смысла выкладывать его целиком. Однако, хочу узнать у сообщества, есть ли смысл сделать такое решения для MarketPlace?

То есть после нажатия на кнопку "Добавить описание" появляется не одно поле, а два - первое с помощью шаблона пойдет в alt и title к картинке, а второе будет подписью.
Суть решения в работе с событиями OnAfterIBlockElementUpdate, OnBeforeProlog и OnEndBufferContent.
Почему не кастомизация страницы редактирования элемента? Оказалось, что список файлов, представленный на картинке генерируется методом модуля fileman - кастомизировать его "легально" не получится - обновления затрут изменения.
Таким образом суть решения заключается в добавлении своей таблицы, которая хранит ID значения свойства и подробное описание к этому свойству (картинке).
С помощью OnEndBufferContent и регулярных выражений редактируем страницу, добавляя textarea рядом с полем ввода описания.
Через событие OnAfterIBlockElementUpdate сохраняем введенные значения в нужной таблице.
А в OnBeforeProlog подключаем простой скрипт, который показывает текстовые поля с детальным описанием для тех свойств, где не введено обычное описание (хотя это можно было сделать и в OnEndBufferContent, но так проще и быстрее).
В целом решение простое, но его поиск занимает определенное время, поэтому надеюсь, что кому-нибудь помог.
Сам код довольно большой, не вижу смысла выкладывать его целиком. Однако, хочу узнать у сообщества, есть ли смысл сделать такое решения для MarketPlace?
Но мы на Битриксе не потому, что это самая удобная система для таки конечного пользователя.
Во фронтэнде можно, понятно, вывести так или иначе все, что было введено пользователем. Но иногда нужно, чтобы пользователю было тоже удобно, а не "а чо там - создаем еще пару инфоблоков и один highload-блок..."