Константы

Vadim

Участник
Здравствуйте, как сделать так, чтобы константы можно было использовать как ссылку на файл в функции File()
 

Vladimir

Администратор
Команда форума
Добрый день.
Что необходимо сделать? Вставлять в документ изображение по умолчанию?
 

Vadim

Участник
Есть несколько шаблонов и в них надо вставлять одни и те же внешние документы (*.doc), при чем в разной последовательности. Так как адрес загружаемого документа нельзя ввести вручную, остается использовать переменную.
Поля с проекта использовать не целесообразно, потому что разным записям проекта соответствуют одни и те же внешние документы.
 

Vladimir

Администратор
Команда форума
Для вставки в шаблон другого документа *.doc можно использовать любое поле для функции File(). Но производится вставка документа, который приложен к записи.
В 5-ой версии файлы размещались в одном каталоге и достаточно было указать имя файла вручную, без выбора файла. В 6-ой версии механизм хранения был изменён и для каждой записи в хранилище создаётся дерево папок с именами по внутренним ID объекта / записи. И была заблокирована возможность ручного ввода имени файла.

Вам необходимо брать готовые куски документов из различных файлов *.doc, размещённых в фиксированном каталоге проекта.
Для этого может использоваться поле строки с подтипом "Ссылка на файл".
Необходимые файлы размещаются в папке проекта или в другой папке, расположенной внутри каталога с программой. Можно создать переключатель или поле ссылки на объект, где будет находится список существующих файлов в нужной папке.
Пример создания относительной ссылки на файл (в отличии от абсолютной, где указывается полный путь к файлу):
..\Project\Мой Проект\Документ.docx
 

Vadim

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

Vladimir

Администратор
Команда форума
Кажется сейчас начал понимать, что Вы хотите. )
Чтобы в шаблоне была прописана функция [File()] с константой, в которой, например, указан путь к другому документу.
Например константа "_Шапка" имеет значение "..\Project\Мой Проект\Шапка.docx", а в шаблоне, в нужном месте стоит:
[File(_Шапка)]
Такое реализовать можно, но если есть работающий механизм, зачем делать дублирующий код?
А насчёт избыточности базы данных я бы не беспокоился. А вот если понадобится изменить вставляемый блок, а старые документы сохранить - то вопросов при этом не возникнет.
Хотя в душе я Вас хорошо понимаю - в в 90-е годы прошлого века экономия шла за каждый байт памяти и за каждое поле в таблице базы данных.
 

Vadim

Участник
Да, вы все правильно поняли.
Цель сего дела состоит в том, что один и тот-же участок текста повторяется в разных шаблонах. Так вот, я решил вынести этот текст в отдельный файл и автоматически подгружать его в разные шаблоны. Потом, если этот участок текста должен будет когда-то измениться, то мне не надо будет его править во всех шаблонах, а только в одном месте.
 

Vladimir

Администратор
Команда форума
Нельзя не признать - идея действительно красивая! Я сам её оценил уже после написания ответа. Ведь очень часто в проектах, во множестве документов, имеются одинаковые блоки, например подписи.
Записали в доработки на будущее.
 
Сверху Снизу