Формулировка проблемы: необходимо реализовать новый компонент с возможностью открытия файла из Хранилища, а также его местоположения.
Используется:
Конфигуратор -> Процессы -> Формы;
Основное приложение -> Документы.
Решение: необходимо реализовать новый компонент "Ссылка на файл в Хранилище" на основе компонента "Файл", представляющий собой:
В режиме редактирования
Файл не был выбран - отображать кнопку "Добавить файл". По нажатию на кнопку - открывать компонент выбора файлов. Компонент отображает все доступные пользователю папки из модуля "Хранилище". Папка "Мои документы" не отображается.
Файл был выбран - отображать две ссылки в следующем виде:
%иконка% %Название_файла.расширение%
(т.е
ссылка на открытие файла)
%Полный_путь_до_файла_в_Хранилище/Название_файла.расширение%
(т.е ссылка на конечную папку файла в Хранилище)
а также иконки:
"Изменить" - по нажатию на иконку необходимо открывать компонент выбора файлов (из модуля "Хранилище");
"Удалить" - по нажатию на кнопку необходимо удалять файл из компонента.
В режиме просмотра
Файл не был выбран - отображать лейбл "Файл не выбран";
Файл был выбран - отображать две ссылки в следующем виде:
%иконка% %Название_файла.расширение%
(т.е
ссылка на открытие файла)
%Полный_путь_до_файла_в_Хранилище/Название_файла.расширение%
(т.е ссылка на конечную папку файла в Хранилище)
Конфигуратор -> Процессы -> Формы
Компонент должен располагаться в панели "Специальные" вкладки "Элементы" после компонента "Свойства документа".
В настройках компонента должны присутствовать следующие флажки (по умолчанию все выключены):
"Обязательное поле";
"Заблокировать от изменений пользователем";
"Открывать в отдельном окне".
Преднастройки компонента сохраняются. При повторном открытии формы и/или создании файла по форме компонент "Ссылка на файл в хранилище" отображает последнее сохраненное значение.
Основное приложение -> Документы
Переход по ссылкам
В зависимости от ссылки необходимо:
ссылка на открытие файла - открывать файл;
ссылка на открытие пути - открывать конечную папку пути на той странице, где находится файл, а также выделять его.
В зависимости от состояния флажка "Открывать в отдельном окне" в Конфигураторе требуется:
включен - открывать файл / папку в новом окне браузера;
выключен - открывать файл / папку в новом окне
Synergy
.
Альтернативные потоки событий
При переходе по ссылкам, а также при каждом сохранении документа необходимо осуществлять их валидацию:
для включенной настройки "Открывать в отдельном окне" - отображать ошибку с последующим переходом по ссылкам;
для выключенной настройки "Открывать в отдельном окне" - отображать ошибку без последующего перехода по ссылкам.
Удаление файла. Если файл был удален, необходимо изменять иконку расширения на иконку "неизвестен", а в качестве ссылки на открытие пути файла дублировать значение первой строки. Текст ошибки:
Элемент был удален либо у вас нет прав на просмотр
Недостаточно прав на просмотр файла / папки в Хранилище. Необходимо отображать следущий текст ошибки:
Элемент был удален либо у вас нет прав на просмотр
Файл был перемещен. При открытии документа, в котором содержатся перемещенные файлы, необходимо изменять название ссылок для открытия папки согласно новым путям.
Печатное представление
В зависимости от формата ввода идентификатора необходимо отображать компонент "Ссылка на файл в Хранилище" в шаблоне печатного представления следующим образом:
%cmp%
- название компонента;
%cmp%.filename
- название компонента;
%cmp%.path
- текст пути файла в Хранилище;
%cmp%.link
- текст ссылки на открытие файла;
%cmp%.path_link
- текст ссылки на открытие
конечной папки с файлом в Хранилище.
Рисунок 19. Новый компонент "Ссылка на файл в Хранилище" в основном приложении в режиме редактирования