Правила заполнения шаблонов — различия между версиями

Материал из Формирование документов Word из 1C
Перейти к: навигация, поиск
(События)
 
(не показана 1 промежуточная версия 1 участника)
Строка 21: Строка 21:
 
[[Файл:temprule_2.png]]
 
[[Файл:temprule_2.png]]
  
'''Информация для технических специалистов (программисты, консультанты, администраторы)'''
+
<span style="color:#ff0000">Информация для технических специалистов (программисты, консультанты, администраторы)</span>
  
 
Последние 2 варианта для случаев сложных условий, которые невозможно описать стандартным способом. Контекст алгоритма содержит следующие переменные:
 
Последние 2 варианта для случаев сложных условий, которые невозможно описать стандартным способом. Контекст алгоритма содержит следующие переменные:
Строка 34: Строка 34:
 
== События ==
 
== События ==
  
На закладке события можно определить обработчики событий, которые запускаются на различных этапах подготовки данных и вывода их в документ Word. Они применяются в случаях, когда не хватает стандартного функционала и простых настроек.
+
На закладке события можно определить обработчики событий, которые запускаются на различных этапах подготовки данных и вывода их в документ Word.  
  
Обработчики событий реализуются на встроенном языке 1С. Формирование документа Word производится в 2 этапа
+
См. подробнее в разделе [[Обработчики_событий|Обработчики событий]].
 
 
#Подготовка данных для заполнения закладок.''' Выполняется на сервере'''.
 
#Обработка и заполнение закладок в документе Word. '''Выполняется на клиенте'''.
 
 
 
===Обработчики событий подготовки данных для заполнения шаблона===
 
 
 
Данные обработчики выполняются на сервере. Из обработчиков событий данной группы можно выполнять вызовы алгоритмов библиотек (см. раздел [[Библиотека алгоритмов]])
 
 
 
====Перед подготовкой данных заполнения====
 
Возникает в начале процедуры подготовки данных для заполнения шаблона. Контекст:
 
 
 
*'''Объект''' - ссылка на объект информационной базы 1С, на основе которого выполняется заполнение шаблона;
 
*'''кэш''' - соответствие, доступное алгоритмам в процессе выполнения правила заполнения шаблона (его использование - на усмотрение программиста, чаще всего для кэширования);
 
 
 
Может использоваться, например, для подготовки данных в кэше.
 
 
 
====При подготовке данных закладки====
 
Возникает после вычисления значения для очередной закладки (в цикле вычисления значений для закладок). Контекст:
 
 
 
*'''Объект''' - ссылка на объект информационной базы 1С, на основе которого выполняется заполнение шаблона;
 
*'''ИмяЗакладки''' - имя закладки, для которой вычисляется значение;
 
*'''ЗначениеЗакладки''' - вычисленное значение для подстановки в закладку '''до форматирования''' (см. раздел "[[Способы заполнения закладок]]");
 
*'''ЗначениеЗакладкиСтр''' - ЗначениеЗакладки '''после форматирования''' и преобразования значения в строку, изменение данной переменной изменяет подставляемое в закладку значение;
 
*'''кэш''' - соответствие, доступное алгоритмам в процессе выполнения правила заполнения шаблона (его использование - на усмотрение программиста, чаще всего для кэширования);
 
 
 
Отметим, что если значение закладки = Неопередено, то закладка при заполнении шаблона '''не обрабатывается'''. Например, для способа заполнения "Удалить при условии" значение закладки либо Неопределено (если условие НЕ выполняется), либо пустая строка (если условие выполняется).
 
 
 
====После подготовки данных заполнения====
 
Возникает после цикла вычисления значений закладок. Контекст:
 
 
 
*'''Объект''' - ссылка на объект информационной базы 1С, на основе которого выполняется заполнение шаблона;
 
*'''кэш''' - соответствие, доступное алгоритмам в процессе выполнения правила заполнения шаблона (его использование - на усмотрение программиста, чаще всего для кэширования);
 
 
 
Может использоваться, например, для простановки отметки в информационной базе о том, что было выполнено формирование документа Word (отметка "договор распечатан").
 
 
 
===Обработчики событий заполнения шаблона===
 
 
 
Данные обработчики выполняются на клиенте. Здесь невозможен вызов алгоритмов из библиотек.
 
 
 
====Перед заполнением====
 
Возникает перед началом цикла обработки закладок Word-документа. Контекст:
 
 
 
*'''WordDocument''' - COM-объект объектной модели Word, тип - [https://msdn.microsoft.com/en-us/vba/word-vba/articles/document-object-word Document] - заполняемый документ-шаблон.
 
*'''СоответствиеЗакладокИЗначений''' - соответствие, в котором ключ - имя закладки, а значение - то, на что будет заменено значение закладки;
 
 
 
Может использоваться, например, для предобработки документа или значений закладок.
 
 
 
====При заполнении закладки====
 
Возникает после выделения закладки в тексте документа (WordDocument.Application.Selection - объект [https://msdn.microsoft.com/en-us/vba/word-vba/articles/selection-object-word Selection]), но до подстановки значения закладки. Контекст:
 
 
 
'''WordDocument''' - COM-объект объектной модели Word, тип - [https://msdn.microsoft.com/en-us/vba/word-vba/articles/document-object-word Document] - заполняемый документ-шаблон.
 
 
 
'''СоответствиеЗакладокИЗначений''' - соответствие, в котором ключ - имя закладки, а значение - то, на что будет заменено значение закладки.
 
 
 
'''ИмяЗакладки''' - имя закладки, в которую подставляется значение;
 
 
 
'''ЗначениеЗакладки''' - значение, которое после преобразования в строку будет подставлено в закладку;
 
 
 
'''ЗначениеЗакладкиСтр''' - строковое значение, подставляемое в закладку. Изменение значения данной переменной изменяет подставляемое значение. Если присвоить данной переменной значение '''Неопределено''', то закладка не будет обработана (можно обработать закладку по своему усмотрению);
 
 
 
Может использоваться, например, для переопределения типового механизма обработки закладок.
 
 
 
====После заполнения====
 
Возникает перед началом цикла обработки закладок Word-документа. Контекст:
 
 
 
*'''WordDocument''' - COM-объект объектной модели Word, тип - [https://msdn.microsoft.com/en-us/vba/word-vba/articles/document-object-word Document] - заполняемый документ-шаблон.
 
 
 
*'''СоответствиеЗакладокИЗначений''' - соответствие, в котором ключ - имя закладки, а значение - то, на что выполнялась замена закладки;
 
 
 
Может использоваться, например, для постобработки документа.
 

Текущая версия на 13:21, 22 ноября 2017

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

Закладки

Temprule 1.png

На вкладке "Закладки" выводится дерево закладок (закладки могут включаться одна в другую). Для каждой закладки указывается способ ее заполнения. Всего предусмотрено 4 способа заполнения каждой закладки: значением поля объекта, произвольным алгоритмом, алгоритмом из библиотеки, удаление при условии. Подробнее о способах заполнения см. в разделе "Способы заполнения закладок".

Видимость

На вкладке "Видимость" можно определить условие, при котором данное правило заполнения будет доступно пользователю. Условия видимости проверяются при формировании списка шаблонов, которые могут быть заполнены из объекта 1С. Это может быть полезно, например, когда у каждой организации свой шаблон договора - в этом случае условие видимости может быть задано по реквизиту Организация.

Условие может быть задано 3-мя способами.

  1. Стандартными отборами СКД.
  2. Произвольным алгоритмом.
  3. Указанием алгоритма из библиотеки алгоритмов.

Первый вариант аналогичен настройке отборов в типовых отчетах.

Temprule 2.png

Информация для технических специалистов (программисты, консультанты, администраторы)

Последние 2 варианта для случаев сложных условий, которые невозможно описать стандартным способом. Контекст алгоритма содержит следующие переменные:

  • Результат - в эту переменную должен быть присвоен результат выполнения алгоритма. Если присваивается значение типа Булево, то оно и будет определять видимость правила заполнения. Если присваивается значение другого типа, то видимость определяется с помощью стандартной функции ЗначениеЗаполнено к этому значению.
  • Объект - ссылка на объект информационной базы 1С, для которого необходимо определить возможность использования правила заполнения;
  • ПараметрАлгоритма - произвольный параметр, обычно строковый, который может быть передан алгоритму (только для алгоритмов из библиотеки);
  • кэш - соответствие, доступное алгоритмам в процессе формирования списка правил заполнения для выбора пользователем (его использование - на усмотрение программиста, чаще всего для кэширования);

Редактирование алгоритмов доступно только под полными правами.

События

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

См. подробнее в разделе Обработчики событий.