Настройка имён создаваемых файлов

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

Для этого, в настройках на вкладке «Создание файлов» имеется поле «Маска для имен создаваемых файлов»:

Обратите внимание: у этого поля есть контекстное меню

При настройке маски, мы можем использовать все доступные коды полей, а также 3 специальных поля:

  •  {%filename%} — имя файла шаблона без расширения
  •  {%ext%} — расширение файла шаблона
  •  {%subfolder%} — подпапки (если шаблон находится не в самой папке ШАБЛОНЫ, а в одной из её подпапок)

По-умолчанию, в настройках программы задана маска {%str%} - {%filename%}.{%ext%}

Рассмотрим на примере, что обозначает каждый из 3 кодов в этой маске, и какие имена получат создаваемые файлы.

 

Предположим, что исходная таблица с данными у нас выглядит так:

ФИО Дата рождения ФИО сокр Номер договора Дата договора
Иванов Иван Иванович 09.02.1966 Иванов И.И. ОУ2011/1 01.12.2011
Купитман Иван Натанович 13.01.1970 Купитман И.Н. ОУ2011/3 03.12.2011
Кисегач Анастасия Константиновна 31.12.1971 Кисегач А.К. ОУ2011/4 04.12.2011
Черноус Варвара Николаевна 17.12.1973 Черноус В.Н. ОУ2011/5 05.12.2011
Быков Андрей Евгеньевич 04.12.1975 Быков А.Е. ОУ2011/6 06.12.2011

 

а в папке «ШАБЛОНЫ» у нас 3 файла:

  • Акт.doc
  • Приказ.doc
  • доверенность.xls

причем файл «доверенность.xls» находится в подпапке «разное»:

...\Шаблоны\Акт.doc
...\Шаблоны\Приказ.doc
...\Шаблоны\разное\доверенность.xls

 


При использовании маски имени файла {%str%} - {%filename%}.{%ext%},
имена получаемых файлов имеют следующий вид:

Маска имени файла Файл шаблона Имя созданного документа
Строка №2 (Иванов И.И.)    
{%str%} - {%filename%}.{%ext%} ...\Шаблоны\Акт.doc ...\Документы\2 - Акт.doc
...\Шаблоны\Приказ.doc ...\Документы\2 - Приказ.doc
...\Шаблоны\разное\доверенность.xls ...\Документы\разное\2 - доверенность.xls
Строка №3 (Купитман И.Н.)    
{%str%} - {%filename%}.{%ext%} ...\Шаблоны\Акт.doc ...\Документы\3 - Акт.doc
...\Шаблоны\Приказ.doc ...\Документы\3 - Приказ.doc
...\Шаблоны\разное\доверенность.xls ...\Документы\разное\3 - доверенность.xls

 

Как видите, код {%str%} заменяется на порядковый номер исходной строки на листе.

Это позволяет давать всем файлам уникальные (отличающиеся друг от друга) имена.

 


Чтобы в имена создаваемых файлов попала фамилия сотрудника,
можно применить, например, маску {%filename%} - {ФИО сокр}.{%ext%}:

Маска имени файла Имя файла-шаблона Имя файла созданного документа
Строка №2 (Иванов И.И.)    
{%filename%} - {ФИО сокр}.{%ext%} ...\Шаблоны\Акт.doc ...\Документы\Акт - Иванов И.И..doc
...\Шаблоны\Приказ.doc ...\Документы\Приказ - Иванов И.И..doc
...\Шаблоны\разное\доверенность.xls ...\Документы\разное\доверенность - Иванов И.И..xls
Строка №3 (Купитман И.Н.)    
{%filename%} - {ФИО сокр}.{%ext%} ...\Шаблоны\Акт.doc ...\Документы\Акт - Купитман И.Н..doc
...\Шаблоны\Приказ.doc ...\Документы\Приказ - Купитман И.Н..doc
...\Шаблоны\разное\доверенность.xls ...\Документы\разное\доверенность - Купитман И.Н..xls

 

или маску {ФИО}\{%filename%}.{%ext%}

Маска имени файла Имя файла-шаблона Имя файла созданного документа
Строка №2 (Иванов И.И.)    
{ФИО}\{%filename%}.{%ext%} ...\Шаблоны\Акт.doc ...\Документы\Иванов Иван Иванович\Акт.doc
...\Шаблоны\Приказ.doc ...\Документы\Иванов Иван Иванович\Приказ.doc
...\Шаблоны\разное\доверенность.xls ...\Документы\разное\Иванов Иван Иванович\доверенность.xls
Строка №3 (Купитман И.Н.)    
{ФИО}\{%filename%}.{%ext%} ...\Шаблоны\Акт.doc ...\Документы\Купитман Иван Натанович\Акт.doc
...\Шаблоны\Приказ.doc ...\Документы\Купитман Иван Натанович\Приказ.doc
...\Шаблоны\разное\доверенность.xls ...\Документы\разное\Купитман Иван Натанович\доверенность.xls

 

Обратите внимание на обратный слеш (\) после кода {ФИО} - это позволяет создать подпапку,
имя которой соответствует тексту из заданного столбца.

В нашем примере, для каждого сотрудника в папке «Документы» была создана отдельная подпапка.

 

Таких слешей может быть сколько угодно, — например, ничто не мешает использовать маску типа {%date%}\{%filename%}\{ФИО}.{%ext%}

Маска имени файла Имя файла-шаблона Имя файла созданного документа
Строка №2 (Иванов И.И.)    
{%date%}\{%filename%}\{ФИО}.{%ext%} ...\Шаблоны\Акт.doc ...\Документы\2013-01-21\Акт\Иванов Иван Иванович.doc
...\Шаблоны\Приказ.doc ...\Документы\2013-01-21\Приказ\Иванов Иван Иванович.doc
...\Шаблоны\разное\доверенность.xls ...\Документы\разное\2013-01-21\доверенность\Иванов Иван Иванович.xls
Строка №3 (Купитман И.Н.)    
{%date%}\{%filename%}\{ФИО}.{%ext%} ...\Шаблоны\Акт.doc ...\Документы\2013-01-21\Акт\Купитман Иван Натанович.doc
...\Шаблоны\Приказ.doc ...\Документы\2013-01-21\Приказ\Купитман Иван Натанович.doc
...\Шаблоны\разное\доверенность.xls ...\Документы\разное\2013-01-21\доверенность\Купитман Иван Натанович.xls

 

Таким образом, мы сгруппировали созданные файлы по дате создания (заполнения), а внутри папки (за текущую дату) - по типу документа (акт, приказ, и т.д.)

ДОБАВЛЕНО в феврале 2021:
Если надо группировать созданные файлы в папке сначала по полю (например, по фамилии), и уже внутри этих папок создавать подпапки (как они созданы в папке ШАБЛОНЫ), то можно применить в маске имени файла специальный подстановочный код {%subfolder%}:

Рассмотрим вариант с маской имени файла {ФИО}\{%subfolder%}\{%filename%}.{%ext%}

Маска имени файла Имя файла-шаблона Имя файла созданного документа
Строка №2 (Иванов И.И.)    
{ФИО}\{%subfolder%}\{%filename%}.{%ext%} ...\Шаблоны\Акт.doc ...\Документы\Иванов Иван Иванович\Акт.doc
...\Шаблоны\приказы\Приказ.doc ...\Документы\Иванов Иван Иванович\приказы\Приказ.doc
...\Шаблоны\разное\доверенность.xls ...\Документы\Иванов Иван Иванович\разное\доверенность.xls
Строка №3 (Купитман И.Н.)    
{ФИО}\{%subfolder%}\{%filename%}.{%ext%} ...\Шаблоны\Акт.doc ...\Документы\Купитман Иван Натанович\Акт.doc
...\Шаблоны\приказы\Приказ.doc ...\Документы\Купитман Иван Натанович\приказы\Приказ.doc
...\Шаблоны\разное\доверенность.xls ...\Документы\Купитман Иван Натанович\разное\доверенность.xls

 

 


Можно в маске имени файла использовать сразу несколько доступных кодов полей:

Маска имени файла Файл шаблона Имя созданного документа
Строка №2 (Иванов И.И.)    
{ФИО сокр} (по договору {Номер договора}) {%filename%}.{%ext%} ...\Шаблоны\Акт.doc ...\Документы\Иванов И.И. (по договору ОУ2011_1) Акт.doc
...\Шаблоны\Приказ.doc ...\Документы\Иванов И.И. (по договору ОУ2011_1) Приказ.doc
...\Шаблоны\разное\доверенность.xls ...\Документы\разное\Иванов И.И. (по договору ОУ2011_1) доверенность.xls
Строка №3 (Купитман И.Н.)    
{ФИО сокр} (по договору {Номер договора}) {%filename%}.{%ext%} ...\Шаблоны\Акт.doc ...\Документы\Купитман И.Н. (по договору ОУ2011_3) Акт.doc
...\Шаблоны\Приказ.doc ...\Документы\Купитман И.Н. (по договору ОУ2011_3) Приказ.doc
...\Шаблоны\разное\доверенность.xls ...\Документы\разное\Купитман И.Н. (по договору ОУ2011_3) доверенность.xls

 


 

Можно добавлять данные из исходной таблицы Excel в имена отдельно выбранных файлов,
прописав коды полей прямо в именах файлов-шаблонов.

 

Для примера, переименуем наши шаблоны следующим образом:

  • Счёт ({ФИО сокр}) на {сумма договора} рублей.doc
  • доверенность - {ФИО}.xls
  • Договор {Номер договора} от {Дата договора}.doc

 

В этом случае, мы можем использовать простейшую маску имени файла {%filename%}.{%ext%}

Маска имени файла Файл шаблона Имя созданного документа
Строка №2 (Иванов И.И.)    
{%filename%}.{%ext%} ...\Шаблоны\доверенность - {ФИО}.xls ...\Документы\доверенность - Иванов Иван Иванович.xls
...\Шаблоны\Договор {Номер договора} от {Дата договора}.doc ...\Документы\Договор ОУ2011_1 от 01.12.2011.doc
...\Шаблоны\Счёт ({ФИО сокр}) на {сумма договора} рублей.doc ...\Документы\Счёт (Иванов И.И.) на 300,00 рублей.doc
Строка №3 (Купитман И.Н.)    
{%filename%}.{%ext%} ...\Шаблоны\доверенность - {ФИО}.xls ...\Документы\доверенность - Купитман Иван Натанович.xls
...\Шаблоны\Договор {Номер договора} от {Дата договора}.doc ...\Документы\Договор ОУ2011_3 от 03.12.2011.doc
...\Шаблоны\Счёт ({ФИО сокр}) на {сумма договора} рублей.doc ...\Документы\Счёт (Купитман И.Н.) на 320,30 рублей.doc

 

или же, комбинировать оба способа:

Маска имени файла Файл шаблона Имя созданного документа
Строка №2 (Иванов И.И.)    
{ФИО сокр} - {%filename%}.{%ext%} ...\Шаблоны\доверенность.xls ...\Документы\Иванов И.И. - доверенность.xls
...\Шаблоны\Договор {Номер договора}{print=2}.doc ...\Документы\Иванов И.И. - Договор ОУ2011_1.doc
...\Шаблоны\Счёт ({сумма договора} руб.).doc ...\Документы\Иванов И.И. - Счёт ( 300,00 руб.).doc
Строка №3 (Купитман И.Н.)    
{ФИО сокр} - {%filename%}.{%ext%} ...\Шаблоны\доверенность.xls ...\Документы\Купитман И.Н. - доверенность.xls
...\Шаблоны\Договор {Номер договора}{print=2}.doc ...\Документы\Купитман И.Н. - Договор ОУ2011_3.doc
...\Шаблоны\Счёт ({сумма договора} руб.).doc ...\Документы\Купитман И.Н. - Счёт ( 320,30 руб.).doc

 

В последнем примере, мы применили маску {ФИО сокр} - {%filename%}.{%ext%},
а имена файлов-шаблонов были такими:

  • доверенность.xls
  • Договор {Номер договора}{print=2}.doc
  • Счёт ({сумма договора} руб.).doc

 

Обратите внимание на код поля {print=2} - это служебное поле, в имя создаваемого файла оно не попадает.

Это поле используется, чтобы сообщить программе, в скольки экземплярах надо выводить на печать тот или иной документ.
(актуально при использовании функции автоматического вывода документов на печать)

По-умолчанию, на печать выводится 1 копия документа (впрочем, количество копий можно задать в настройках программы, или же настроить, чтобы оно бралось из определённого столбца исходной таблицы Excel)

Используя код {print=x} (где x - целое число), можно указать программе количество печатных копий для отдельных файлов-шаблонов.

Комментарии

Александр, здесь написано что можно брать только значения из ИМЕНОВАННЫХ ЯЧЕЕК
https://excelvba.ru/programmes/FillDocuments/manuals/templates/FieldCodes
Присвойте этой ячейке B2 любое имя, и должно всё заработать.

Здравствуйте! При формировании документов и "раскладыванию" их по подпапкам столкнулся с такой ситуацией. Если путь указывается в формате {ФИО сокр}\{%filename%}.{%ext%} - все нормально. Если в качестве имени папки брать адрес ячейки, то папка формируется с именем = этому адресу, а не значению: {=B2}\{%filename%}.{%ext%}. Значит ли это, что использовать единичные ячейки в качестве имени папки\файла нельзя? Спасибо.