Возможности автозаполнения шаблонов можно посмотреть в поучительном ВИДЕО.
Там описаны основы для подготовки автозаполнения, которые будут использоваться в данной статье. Здесь же будут рассмотрены некоторые немаловажные моменты.
Предупреждение: в описании статьи дан обзор минимального создаваемого набора, нужного для осуществления автозаполнения. Сделано это для того, чтобы почти ничего не умеющий человек смог быстро создать набор для тестирования автозаполнения. Тем, кто с этим всем уже знаком - советую просто пробежаться глазами и дойти до нужного момента.
1. Итак, для начала создадим новый Файл. Это будет файл формата MS Word. В редакторе MS Word создадим новое "поле", заполним поля, как на скриншоте.
Загрузим файл в систему. Для этого переходим на вкладку "Документы и файлы", ссылка "Файлы". Создаём Файл в режиме "Из файла на диске". Выбираем нужный файл, делаем описание и вот, он загружен в систему.
2. Создадим новый вид документа, для этого заходим в подсистему "Нормативно-справочная информация", нажимаем ссылку "Виды документов". Создаём новый вид документа, открываем "Набор дополнительных свойств документов данного вида".
Создаём новый дополнительный реквизит.
Создаём новый Внутренний документ. Для этого переходим в подсистему "Документы и файлы", и там создаём новый документ. Ставим вид документа равным "ТестовыйВидДок", который был создан ранее. Также должен появиться созданный нами доп.реквизит.
Заполним значение доп.реквизита.
Записываем и закрываем внутренний документ.
Далее нужно создать правило автозаполнения. Для этого переходим в подсистему "Нормативно-справочная информация", открываем "Правила автозаполнения шаблонов файлов" и создаём новое правило.
На скриншоте выше показан пример, когда "поле" в документе MS Word будет заполняться из стандартного реквизита. Т.е. наше поле в текстовом документе будет заменено на значение "ТестовыйВидДок", но нам нужно значение "16047", которое мы прописали в поле карточки внутреннего документа, в дополнительном реквизите. Для этого необходимо написать определенный код, ради которого и писалась эта статья. Пример:
РезультатОбработки = АвтозаполнениеШаблоновФайловСервер.ПолучитьЗначениеДопРеквизитаОбъекта(Файл.ВладелецФайла.Ссылка,"ТестовыйДопРеквизит")
Внимание: для быстрого тестирования на форме имеется кнопка "Проверить правило", нажимая на которую можно выбрать нужный документ, и посмотреть, каким образом будет заполняться шаблон файла данными из этого документа.
Для указания другого доп.реквизита необходимо в данной строчке просто поменять значение "ТестовыйДопРеквизит" на другое название другого доп.реквизита.
Помимо данного кода в данном поле можно использовать различные вариации другого кода, например:
- РезультатОбработки = АвтозаполнениеШаблоновФайловСервер.ПолучитьЗначениеДопРеквизитаОбъекта(Файл.ВладелецФайла.Ссылка,"Страна, город") + " " + АвтозаполнениеШаблоновФайловСервер.ПолучитьЗначениеДопРеквизитаОбъекта(Файл.ВладелецФайла.Ссылка,"Организация")
т.е. можно соединять несколько доп.реквизитов в одну строку, например.
- РезультатОбработки = (НачалоДня(Файл.ВладелецФайла.ДатаОкончанияДействия) - НачалоДня(Файл.ВладелецФайла.ДатаНачалаДействия)) / 86400 + 1;
- ФИО = ПолучитьЗначениеДопРеквизитаОбъекта(Файл.ВладелецФайла.Ссылка,"Утвердил");
- НайденныйПользователь = Справочники.Пользователи.НайтиПоНаименованию(ФИО);
- СведенияПользователя = РегистрыСведений.СведенияОПользователях.Получить(Новый Структура("Пользователь", НайденныйПользователь));
- РезультатОбработки = СведенияПользователя.Должность;
3. Ещё один момент, кому-нибудь когда-нибудь пригодится. Допустим, необходимо на каждой странице шаблона в колонтитуле выводить некую информацию (неважно, откуда она берется - из дополнительного или же из обычного реквизита). Пример следующий: нужно на каждой странице автоматически выводить дату и пользователя, ну или что-то одно. В MS Word в колонтитулах можно написать некую строку, однако преобразовать её к "полю" нельзя (оно неактивно, видно на скриншоте).
Поэтому в данном случае правильно использовать замену строки. Выбираем какую-нибудь неповторимую строку (чтобы случайно не заменить нужную строку в самом документе), например "П12@3a" и вставляем её в колонтитул шаблона документа.
А дальше - кто-то уже догадался. Я сразу не заметил, всё пытался как-нибудь "докопаться" до этого "поля" в MS Word. Итак, делаем, как на скриншоте:
Спасибо тем, кто прочитал даже до этого момента, первая статья, не судите строго, сам всё знаю =)