Идея данной обработки возникла из механизма ПФ в УТ 11, где можно на основании документа создавать файл для программ Microsoft Office Word и Open Office Writer (Далее, для краткости, просто Office). Однако там такие ПФ статичны, чтобы поправить существующий или создать новый макет, нужно изменять конфигурацию, прописывать вывод необходимых реквизитов.
Появилась задача разработать механизм для создания таких ПФ Office «налету», просто перебрасывая реквизиты документов, справочников из формы обработки в нужные места файла-шаблона.
Обработку можно использовать просто как внешний файл, открывая ее через основное меню, но удобнее встроить ее в базу как ВПФ. Форма ассоциируется со всеми документами и справочниками конфигурации. Рассказывать здесь как подключить ВПФ не буду, это стандартный механизм.
Основной интерфейс обработки
Перед вами основное окно обработки. Разберем, что здесь есть.
- Поле «Документ». Если обработка запущена как ПФ из конкретного элемента справочника или документа, это поле будет уже заполнено, если через «Файл - Открыть», то выбирайте любой сами. По данным именно этого объекта будет заполняться файл.
- Папка макетов. Это папка на диске, в которой будут храниться все созданные макеты, файлы-шаблоны. Данное поле пользователь заполняет в первый раз, и оно сохраняется в настройках. Получается, что у каждого пользователя будет свой набор макетов из его папки. Если одни и те же макеты необходимо использовать нескольким людям, можно либо выбрать «расшаренную» папку в сети, либо папку, которая подключена к общему облачном хранилищу. В последнем случае макеты будут доступны и через Интернет.
- Уровень вложенности. Данный параметр используется для построения дерева, палитры реквизитов документа. Например, если Уровень = 1, в дерево будут выведены только реквизиты документа, если Уровень = 2, то реквизиты документа и реквизиты реквизитов документа и т.д. Чем больше Уровень, тем дольше будет строиться дерево. Уровень > 3 уже, скорее всего, не нужен. Данный параметр используется только при создании макета. При дальнейшем использовании созданного макета Уровень уже не важен, будут обрабатываться реквизиты любой вложенности.
- Список макетов. В список входят все файлы с расширением doc, docx, odt, которые находятся в папке макетов. Список обновляется каждую минуту. Также есть отдельная кнопка для обновления списка. Двойной клик на файле из списка, в принципе, выполняет основную функцию обработки – формирует уже готовый заполненный файл по данным документа. Правый клик на файле позволяет открыть макет для редактирования.
- Кнопки «Создать макет MS Word» и «Создать макет OO Writer» нужны для создания нового макета для одной из офисных программ. О самом процессе создания поговорим в следующем разделе.
Создание макета для печати
При нажатии кнопки создания или изменения макета, обработка переключается на вкладку «Создать/Редактировать», а также открывается уже существующий или вновь созданный файл в офисной программе.
Т.к. макет строиться методом Drag & Drop, удобно, когда окна 1С и офисной программы находятся рядом. В Windows это можно легко сделать с помощью сочетаний клавиш. Сделайте активным окно 1С и нажмите «Win» + «Стрелка влево», оно займет левую половину экрана. Теперь перейдите на окно документа Office и нажмите «Win» + «Стрелка вправо». Все, теперь можно легко перекидывать элементы.
В только что созданном документе можно увидеть специальные конструкции начала и окончания области заголовка, а также список областей и табличных частей есть в левой части формы создания. Нужно это все для построения документа вместе с табличными частями. Дело в том, что программа сама не поймет, где заканчивается шапка документа, а начинается таблица, и где заканчивается таблица и начинается подвал. Об этом программе мы будем рассказывать с помощью областей. Вообще, на конечную форму будет выводиться только текст, находящийся внутри областей и в любом документе должна быть хотя бы одна область, даже если в нем не будет вывода табличных частей. Поэтому документ создается сразу с одной областью, в которую и нужно вписывать свои данные. Названия областей повторяться не должны, поэтому если на документ необходимо вывести кроме заголовка и подвала какие-то еще области, можно воспользоваться кнопкой «Добавить область».
Правая же часть формы создания – это дерево реквизитов. Тут все просто: корень – это сам документ, в него входят его реквизиты, табличные части (выделены жирным). Реквизиты могут в себя включать свои реквизиты, и т.д., в зависимости от уровня вложенности. Если в каком-то справочнике (например, организации, контрагенты) есть контактная информация, она также появится в дереве. Именно перетаскивая элементы этого дерева, мы будем строить свой макет.
Давайте рассмотрим подробнее процесс создания на конкретном примере.
Пример создания макета
Возьмем документ реализации из УТ 11 и создадим для него простой макет для Open Office Writer. Нажимаем соответствующую кнопку, вводим название макета и переходим к редактированию.
Для начала выведем заголовок документа. Для этого напишем свой текст и перетащим поля Номер и Дата. Увеличим шрифт, сделаем жирным. В итоговом документе подставленные значения будут иметь такой же шрифт, что и поля в шаблоне.
Теперь выведем сведения об организации и контрагенте. Вытащим не просто ссылки, а наименования, более подходящие для печатных форм.
Под контрагентом выведем еще его телефон. Возьмем его из контактной информации. Также ниже выведем шапку таблицы. На этом область заголовка заканчивается.
Теперь сама таблица. Перетаскиваем из списка областей «Начало строки таблицы Товары», потом рисуем саму таблицу, а потом кидаем «Конец строки таблицы Товары».
Из дерева реквизитов, из табличной части Товары перетаскиваем реквизиты в ячейки таблицы. Ничего страшного, что колонка «Номер строки» так растянула таблицу, в итоговом документе высота подстроится автоматически.
Осталось вывести подвал. Перетаскиваем начало и конец области, заполняем текстом и необходимыми реквизитами документа.
На этом все. Сохраним, закроем файл, перейдем к списку макетов и кликнем на вновь созданный макет. Выведется уже заполненный файл, соответствующий документу.
Вместо заключения
Буду рад услышать от вас отзывы, замечания, предложения по обработке. Например, есть идея по механизму вывода на печать дополнительных реквизитов, если это будет необходимо.