Как в 1С:Документооборот 3.0 добавить файл по шаблону из другого вида документа?

Системный администратор 1С v8.3 (Управляемые формы) 1С:Документооборот IT и автоматизация бизнеса
← На главную

При настройке и использовании «1С:Документооборот 3.0» (1С:ДО) мы часто сталкиваемся с задачей оптимизации работы пользователей. Одна из типичных ситуаций: сотрудник создает документ определенного вида, например, «Дополнительное соглашение», и хочет сразу же внутри этого документа создать файл-приложение, используя шаблон, который уже настроен для вида документа «Договор».

Однако при попытке выбрать шаблон (команда «Добавить файл по шаблону»), система предлагает только те заготовки, которые привязаны к текущему виду документа («Дополнительное соглашение»). Шаблоны от «Договоров» или других видов документов в списке отсутствуют. Давайте разберем подробно, почему так происходит, какие есть архитектурные ограничения и как мы можем решить эту задачу, используя штатные возможности конфигурации.

Суть проблемы и архитектура 1С:ДО 3.0

В третьей редакции «1С:Документооборота» логика работы с файлами и их шаблонами тесно связана с настройками Вида документа. Это сделано не случайно.

Когда мы привязываем шаблон файла (например, .docx) к виду документа, мы часто настраиваем правила автозаполнения. Мы указываем системе: «Возьми реквизит Сумма из карточки документа и вставь его в поле Summa в файле Word».

Если бы система позволяла свободно брать шаблон от «Договора» и применять его к «Доп. соглашению», механизм автозаполнения сломался бы, так как состав реквизитов (и их имена скриптов) в разных видах документов может отличаться. Поэтому платформа ограничивает выбор только теми шаблонами, которые явно разрешены для текущего вида документа.

Решение 1: Дублирование шаблона в настройках (Метод «Один документ»)

Если ваша цель — позволить пользователю в рамках одной карточки «Доп. соглашения» добавлять разные файлы (само соглашение, приложение 1, приложение 2), которые базируются на шаблонах других документов, нам необходимо явно «разрешить» эти шаблоны для нашего вида документа.

Рассмотрим пошагово, как это сделать администратору системы:

  1. Перейдите в раздел Настройка и администрирование — Настройки программы — Виды документов.
  2. Найдите и откройте карточку вида документа, в котором мы хотим видеть шаблоны (в нашем примере — «Дополнительное соглашение»).
  3. Перейдите на вкладку Шаблоны документов (или перейдите по ссылке настройки шаблонов файлов, в зависимости от интерфейса настройки).
  4. Нам нужно добавить сюда файл-шаблон, который используется в договорах.

    Важно: В 1С:ДО 3.0 один и тот же физический файл шаблона (элемент справочника ШаблоныФайлов) можно привязать к нескольким видам документов. Вам не обязательно загружать файл с диска заново, создавая дубль.

  5. Добавьте нужный шаблон в список. Теперь пользователь увидит его при создании файла.

Однако, просто добавить файл недостаточно. Самое важное — настроить автозаполнение. Поскольку контекст изменился (теперь мы заполняем файл данными из «Доп. соглашения», а не из «Договора»), старые правила могут не сработать.

Нам необходимо зайти в настройки автозаполнения для этого шаблона именно в контексте вида документа «Дополнительное соглашение» и сопоставить поля. Если в доп. соглашении есть все необходимые реквизиты (Контрагент, Организация), то настройка будет простой.

Решение 2: Использование скриптов для получения данных из основного договора

Часто возникает ситуация, когда в «Приложении», которое мы прикрепляем к «Доп. соглашению», нужно вывести данные из Основного договора (например, «к Договору №... от ...»). Но в самой карточке Доп. соглашения этих реквизитов может не быть (или они есть только в виде ссылки на документ-основание).

В этом случае при настройке автозаполнения шаблона (когда он уже добавлен в настройки вида документа «Доп. соглашение») нам придется использовать встроенный язык 1С в полях замены.

В таблице настройки автозаполнения вместо прямого выбора реквизита мы можем написать выражение на встроенном языке. Рассмотрим примерную логику, как получить данные родительского договора:


// Примерный алгоритм для поля скрипта автозаполнения
// Предполагаем, что в Доп.Соглашении есть реквизит "ВГруппеС", указывающий на Договор
// Или ищем через связи документов

Если ЗначениеЗаполнено(Документ.ВГруппеС) Тогда
	Результат = Документ.ВГруппеС.РегистрационныйНомер; 
Иначе
	// Попытка найти через связи, если прямой ссылки нет
	// Это псевдокод, реальные методы API 3.0 могут отличаться
	Связанные = СвязиДокументов.ПолучитьСвязанныеДокументы(Документ);
	Для Каждого Связь Из Связанные Цикл
		Если Связь.ТипСвязи.Имя = "ОтноситсяКДоговору" Тогда
			Результат = Связь.Документ.РегистрационныйНомер;
			Прервать;
		КонецЕсли;
	КонецЦикла;
КонецЕсли;

Таким образом, мы настраиваем один вид документа («Доп. соглашение»), в который добавляем множество шаблонов файлов от других видов, и для каждого настраиваем скрипты получения данных из документа-основания.

Решение 3: Методологический подход (Связанные документы)

Разработчики 1С и методологи рекомендуют не перегружать один вид документа множеством разнородных файлов, если они логически являются отдельными сущностями. Если «Приложение» — это юридически значимый документ, который может иметь свой жизненный цикл, лучше использовать связи.

Схема работы будет следующей:

  1. Пользователь создает Дополнительное соглашение.
  2. Вместо добавления файла внутрь, он нажимает «Создать на основании» (или через вкладку «Связи») и выбирает вид документа Приложение к договору.
  3. У вида документа «Приложение к договору» уже настроен свой шаблон и свои правила автозаполнения.
  4. Система создает новую карточку, автоматически связывает её с доп. соглашением и генерирует файл по правильному шаблону.

Этот путь кажется более долгим для пользователя (больше кликов), но он обеспечивает порядок в учете документов.

Особенность списка «Недавние»: Ловушка интерфейса

В процессе обсуждения данной темы пользователи заметили интересный нюанс. В окне выбора шаблона (команда «Файл» — «Создать по шаблону») есть группа или вкладка «Недавние».

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

Почему не стоит на это полагаться?

Резюме

Чтобы добавить файл по шаблону из другого вида документа в 1С:Документооборот 3.0, нельзя просто выбрать его из общего списка. Необходимо выполнить настройку на уровне администратора:

  1. Вариант «Все в одном»: Зайдите в настройки вида документа (напр., Доп. соглашение), добавьте туда нужный шаблон файла (даже если он уже используется в Договорах) и обязательно настройте правила автозаполнения для этого вида документа.
  2. Вариант «По стандарту»: Создавайте отдельные документы для Приложений и связывайте их связями с Доп. соглашением.

Использование обходных путей через список «Недавние» не рекомендуется, так как это не гарантирует корректного формирования текста документа.

← На главную