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

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

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

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

При настройке маски, мы можем использовать все доступные коды полей, а также 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 - целое число), можно указать программе количество печатных копий для отдельных файлов-шаблонов.

Комментарии

Здравствуйте, Владимир.
Я бы наверняка уже добавил бы что-подобное, но увы, - в составе Windows и Office (по крайней мере, по состоянию на несколько лет назад) нет инструментов для работы с ПДФ (например, для склейки нескольких файлов в один ПДФ).
Да, для этого есть сторонние приложения, их можно установить и с их помощью реализовать.
Пока от других пользователей подобных запросов не поступало, потому я ничего подобного не пытался реализовать.
Там доработка непростая, кучу разных опций в настройках нужно будет делать.
Такую доработку могу сделать либо за деньги (недешево), либо если несколько покупателей выскажутся о необходимости подобного функционала.

Здравствуйте, Игорь.
Не давно приобрёл лицензию и получил первый положительный опыт. Но вот есть моменты, которых явно не хватает в Вашем продукте и которые, на мой взгляд, существенно повысит популярность за расширенный функционал. Например, Ваш продукт создаёт отдельные документы из шаблонов, размещённых в одноимённую папку. Но часто бывает необходимость создавать «Пакет» документов и «Комплект» из документов. Поясню на примере:
1. Функционал «Пакет» позволил бы объединять несколько файлов в один документ (чаще всего PDF) с общим названием. Например, это нужно для отправки актов, счётов, фактур и т.п. через ЭДО единым документом, чтобы сэкономить на оплате. При этом документы формата PDF могут формироваться из разных источниках (1С, сканер, получен от третьих лиц) но «склейка» (объединение/ merge) в «Пакет» приобретёт ценность для бухгалтеров, менеджеров, секретарей… которые оправляют письма с презентацией, бланками, билетами и прочим, что просто присоединяется к одному из документу, созданному в FillDocuments (например, сопроводительному письму) и как в «контейнере» содержат все свои части.
2. Функционал «Комплект» помог бы связывать в РАЗНОРОДНЫЕ документы (формат JPG, TIFF, PDF и т.д.) в одном пространстве. Например, юристам нужно перечислить в «сопроводиловке» поименовано все документы и чаще их ещё предварительно НУМЕРОВАТЬ, чтобы суд или другой корреспондент точно отождествит документы по описи. Случаи, когда получателю направляют обращение и указывать «Приложениями» другие документы – множество. Программа FillDocuments могла бы предварительно собирать такие документы в одном месте (из разных мест), нумеровать (или переименовать в «приложение №ХХХ) чтобы пользователь получил их не только в одной папке, но и в исходящем документе (сопроводиловке) был полный перечень дополнительных материалов. На вскидку, это может быть нужно архитекторам, страховщикам, банкирам, адвокатам, логисты и другим «белым воротничкам».

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

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