Способы заполнения закладок — различия между версиями

Материал из Формирование документов Word из 1C
Перейти к: навигация, поиск
 
(не показано 28 промежуточных версий 2 участников)
Строка 1: Строка 1:
В форме способа заполнения закладки описывается определение значения для конкретной закладки шаблона. Сначала выполняется собственно вычисление значения, после чего к этому значению может быть применено форматирование.
+
В форме способа заполнения закладки описывается определение значения для конкретной закладки шаблона. Сначала выполняется собственно вычисление значения, после чего к этому значению может быть применено [[Форматирование_значений_закладок| форматирование]].
 +
 
 
Можно заполнить закладку одним из 5 способов:
 
Можно заполнить закладку одним из 5 способов:
  
Строка 5: Строка 6:
 
*Произвольным алгоритмом  
 
*Произвольным алгоритмом  
 
*Алгоритмом из библиотеки  
 
*Алгоритмом из библиотеки  
*Вставкой/удалением по условию  
+
*Вставкой/удалением блока текста по условию  
 
*Выводом таблицы/коллекции
 
*Выводом таблицы/коллекции
 
После этого, при необходимости, возможно использование одного из способов форматирования:
 
 
*Форматная строка;
 
*Число прописью;
 
*Склонение (для ФИО и для не ФИО);
 
*Фамилия, инициалы.
 
  
 
== Заполнение закладки значением поля объекта ==
 
== Заполнение закладки значением поля объекта ==
  
 +
'''Заполнение значением поля объекта''' аналогично настройке полей в стандартных отчетах на СКД. Имеется несколько способов указания поля, рассмотрим их подробнее далее.
  
'''Заполнение значением поля объекта''' аналогично выбору полей в стандартных отчетах на СКД.
+
=== Простое поле ===
  
[[Файл:fillbookmark_1.png]]
+
Под '''простым''' полем понимается выбор некоторого реквизита объекта 1С (или реквизита "через точку", поля табличной части).
  
Чаще всего указывается одно поле. В случае если значение имеет суммовой тип в некоторой валюте (сумма в рублях, например), то 2-м полем может быть выбрана валюта, что позволит корректно вывести сумму прописью в этой валюте (см. о форматировании ниже).
+
[[Файл:SimpleField.png]]
  
== Заполнение закладки произвольным алгоритмом ==
+
Чаще всего указывается одно поле. В случае если значение имеет суммовой тип в некоторой валюте (сумма в рублях, например), то 2-м полем может быть выбрана валюта, что позволит корректно вывести сумму прописью в этой валюте (см. о [[Форматирование_значений_закладок|форматировании]]).
  
Способ заполнения "Произвольным алгоритмом"- для сложных ситуаций, когда невозможно описать заполнение закладки стандартным способом. Контекст алгоритма содержит следующие переменные:
+
=== Пользовательское поле ===
  
*'''Результат''' - в эту переменную должен быть присвоен результат выполнения алгоритма. Это значение будет подставлено в закладку. Если значение - '''Неопределено''', то закладка не будет обработана (подстановка значения не производится). Значение по умолчанию - '''Неопределено'''.
+
'''Пользовательские''' поля в СКД бывают 2 видов - "поле выбор" и "поле выражение". Для '''"поле выбор"''' определяется список вариантов значений, выбираемых по условию.
*'''Объект''' - ссылка на объект информационной базы 1С, на основе которого заполняется шаблон;
 
*'''кэш''' - соответствие, доступное алгоритмам в процессе выполнения правила заполнения шаблона (его использование - на усмотрение программиста, чаще всего для кэширования);
 
  
Редактирование алгоритмов доступно только под полными правами.
+
[[Файл:UserField.png]]
  
== Заполнение закладки алгоритмом из библиотеки ==
+
Для '''"поле выражение"''' необходимо написать формулу с использованием других полей.
  
Способ заполнения "[[Библиотека_алгоритмов| Алгоритмом из библиотеки]]" - для сложных ситуаций, когда невозможно описать заполнение закладки стандартным способом. Контекст алгоритма содержит следующие переменные:
+
[[Файл:UserField2.png]]
  
*'''Результат''' - в эту переменную должен быть присвоен результат выполнения алгоритма. Это значение будет подставлено в закладку.  Если значение - '''Неопределено''', то закладка не будет обработана (подстановка значения не производится). Значение по умолчанию - '''Неопределено'''.
+
[https://infostart.ru/public/97245/ Статья на Инфостарте по пользовательским полям]
*'''Объект''' - ссылка на объект информационной базы 1С, на основе которого заполняется шаблон;
 
*'''ПараметрАлгоритма''' - произвольный параметр, обычно строковый, который может быть передан алгоритму;
 
*'''кэш''' - соответствие, доступное алгоритмам в процессе выполнения правила заполнения шаблона (его использование - на усмотрение программиста, чаще всего для кэширования);
 
  
Редактирование алгоритмов доступно только под полными правами.
+
=== Итоговое поле ===
  
== Заполнение закладки с помощью вставки/удаления по условию ==
+
'''Итоговое''' поле представляет собой итог по реквизиту табличной части. Чаще всего применяется для вывода итоговой суммы под таблицей.
  
 +
[[Файл:TotalField.png]]
  
 +
Имеется возможность рассчитать итог не по всей табличной части, а только по некоторым строкам, соответствующим отбору. Это бывает необходимо, когда табличная часть выводится частично - с отбором (см. о выводе таблиц ниже).
  
 +
== Заполнение закладки произвольным алгоритмом ==
  
'''Удаление при условии''' подразумевает удаление блока текста, отмеченного закладкой, из документа, если выполняется заданное условие. Если условие не выполняется, то содержимое закладки остается без изменений. Условие также задается аналогично определению условий в стандартных отчетах на СКД.
+
Способ заполнения "Произвольным алгоритмом"- для сложных ситуаций, когда невозможно описать заполнение закладки стандартным способом.
  
[[Файл:fillbookmark_2.png]]
+
Подробнее о разработке алгоритмов см. в [[Разработка_алгоритмов|разделе "Разработка алгоритмов"]]
  
'''Вставка при условии''' подразумевает,что блок текста, отмеченный закладкой в документе, останется без изменений, если выполняется заданное условие. Если условие не выполняется, то содержимое закладки удаляется. Условие также задается аналогично определению условий в стандартных отчетах на СКД.
+
== Заполнение закладки алгоритмом из библиотеки ==
  
 +
Способ заполнения "[[Библиотека_алгоритмов|Алгоритмом из библиотеки]]" - для сложных ситуаций, когда невозможно описать заполнение закладки стандартными способами выбора полей.
  
== Заполнение таблицы/коллекции ==
+
Пользователю необходимо указать
 +
* библиотеку алгоритмов;
 +
* имя алгоритма из выбранной библиотеки;
 +
* произвольный дополнительный параметр (''только если поддерживается алгоритмом, можно не указывать'');
 +
* объект, к которому нужно применить алгоритм.
  
 +
[[Файл:LibAlgoField.png|извлечение телефона контрагента алгоритмом стандартной библиотеки]]
  
 +
В системе есть "Стандартная библиотека", в рамках которой уже реализовано множество базовых алгоритмов для извлечения
 +
* дополнительных свойств;
 +
* контактной информации;
 +
* банковских реквизитов;
 +
* контактных лиц;
 +
* паспортных данных;
 +
* присоединенных файлов.
  
 +
Также возможно создание своих библиотек алгоритмов (см. раздел [[Библиотека_алгоритмов|Библиотека алгоритмов]])
  
 +
== Вставка/удаление/подчеркивание блока текста по условию ==
  
 +
'''Вставка при условии''' подразумевает, что блок текста, выделенный закладкой в документе, будет вставлен в текст, если выполняется заданное условие. Если условие не выполняется, то содержимое закладки удаляется. Условие задается отборами СКД.
  
 +
'''Удаление при условии''' подразумевает удаление блока текста, выделенного закладкой, из документа, если выполняется заданное условие. Если условие не выполняется, то содержимое закладки остается без изменений. Условие задается также отборами СКД.
  
== Форматирование закладок ==
+
'''Подчеркивание при условии''' <span style="color:#ff0000">(поддерживается только с версии 2.0)</span> - подчеркивание блока текста, выделенного закладкой, если выполняется заданное условие. Если условие не выполняется, то содержимое закладки остается без изменений. Условие задается также отборами СКД.
  
Применение '''форматирования''' настраивается в нижней части формы:
+
[[Файл:fillbookmark_2.png]]
  
[[Файл:fillbookmark_3.png]]
+
== Вывод таблицы/коллекции ==
  
Способ "'''Форматная строка'''" предоставляет стандартные возможности платформы 1С: Предприятие по форматированию значений типа Число, Дата, Булево (функция Формат). В поле '''Формат''' должна быть задана форматная строка. Форматную строку удобно задавать с помощью конструктора форматной строки, открываемого кнопкой выбора (формат здесь задается по составляющим параметрам, можно сразу видеть результат форматирования для различных значений).
+
Для вывода таблицы или коллекции по шаблону необходимо в Word-документе указать закладкой повторяющуюся область (шаблон элемента коллекции):
  
Способ "'''Число прописью'''" предоставляет также стандартные возможности платформы 1С: Предприятие по формированию числа прописью (функция ЧислоПрописью). В поле '''Формат''' можно выбрать один из предопределенных вариантов или задать свою строку форматирования - в этом случае форматная строка и параметры предмета исчисления задаются вместе (см. пример в варианте "{произвольный}").
+
[[Файл:TableRowTemplate.png|Шаблон строки таблицы]]
  
Способы "'''Склонение (ФИО''')" и "'''Склонение (не ФИО)'''" позволяют склонять представления объектов. При использовании данных способов нужно дополнительно указывать падеж. Функционал склонения предоставляется библиотекой стандартных подсистем и доступен в большинстве типовых конфигураций. Для некоторых справочников склонения могут быть заданы вручную:
+
Внутри этой области (в примере - область "СтрокаТаблицы") - выделены области вставки данных (также как в других частях документа). После загрузки в 1С эти закладки видны следующим образом:
  
[[Файл:fillbookmark_5.png]]
+
[[Файл:TableRowBookmarks.png|Закладки шаблона строки таблицы в ]]
 
 
Способ "'''Фамилия, инициалы'''" позволяет сократить ФИО до варианта "Фамилия И.О." или "И.О. Фамилия". Его удобно применять в области подписей ответственных лиц и т.д.
 
 
 
 
 
 
 
 
 
 
 
 
 
'''Заполнение значением поля объекта''' аналогично выбору полей в стандартных отчетах на СКД.
 
 
 
[[Файл:fillbookmark_1.png]]
 
 
 
Чаще всего указывается одно поле. В случае если значение имеет суммовой тип в некоторой валюте (сумма в рублях, например), то 2-м полем может быть выбрана валюта, что позволит корректно вывести сумму прописью в этой валюте (см. о форматировании ниже).
 
 
 
'''Удаление при условии''' подразумевает удаление закладки из документа, если выполняется заданное условие. Если условие не выполняется, то содержимое закладки остается без изменений. Условие также задается аналогично определению условий в стандартных отчетах на СКД.
 
 
 
[[Файл:fillbookmark_2.png]]
 
  
 +
Закладка шаблона строки таблицы, как видно, включает в себя закладки вставки отдельных значений полей элемента коллекции (ячеек таблицы).
  
 +
Для закладки шаблона элемента коллекции (в примере - "СтрокаТаблицы") необходимо указать способ заполнения "Вывести коллекцию/таблицу по шаблону".
  
<span style="color:#ff0000">Информация для технических специалистов (программисты, консультанты, администраторы)</span>
+
[[Файл:TableRowFillRule.png|Способ заполнения "Вывести коллекция/таблицу по шаблону"]]
  
== Алгоритмические способы заполнения закладок ==
+
Здесь же можно указать отбор, если нужно выводить не всю коллекцию, а только ее часть по некоторому условию, задаваемому отбором СКД.
  
Способы заполнения "Произвольным алгоритмом" и "[[Библиотека_алгоритмов| Алгоритмом из библиотеки]]" - для сложных ситуаций, когда невозможно описать заполнение закладки стандартным способом. Контекст алгоритма содержит следующие переменные:
+
Для вложенных закладок - указать какими данными и из какой табличной части их заполнять (способ "Заполнить значением поля объекта" с указанием реквизита табличной части).
  
*'''Результат''' - в эту переменную должен быть присвоен результат выполнения алгоритма. Это значение будет подставлено в закладку.  Если значение - '''Неопределено''', то закладка не будет обработана (подстановка значения не производится). Значение по умолчанию - '''Неопределено'''.
+
[[Файл:TableRowBookmarks2.png|Вложенные закладки шаблона элемента коллекции]]
*'''Объект''' - ссылка на объект информационной базы 1С, на основе которого заполняется шаблон;
 
*'''ПараметрАлгоритма''' - произвольный параметр, обычно строковый, который может быть передан алгоритму ('''только для''' [[Библиотека_алгоритмов|алгоритмов из библиотеки]]);
 
*'''кэш''' - соответствие, доступное алгоритмам в процессе выполнения правила заполнения шаблона (его использование - на усмотрение программиста, чаще всего для кэширования);
 
  
Редактирование алгоритмов доступно только под полными правами.
+
Таблица может быть также сформирована программно. В этом случае для закладки шаблона элемента коллекции указывается способ заполнения "Произвольным алгоритмом", а для вложенных закладок никаких настроек способа заполнения не делается. См. подробнее в разделе [[Разработка_алгоритмов|Разработка алгоритмов]].

Текущая версия на 12:49, 28 февраля 2021

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

Можно заполнить закладку одним из 5 способов:

  • Значением поля объекта
  • Произвольным алгоритмом
  • Алгоритмом из библиотеки
  • Вставкой/удалением блока текста по условию
  • Выводом таблицы/коллекции

Заполнение закладки значением поля объекта

Заполнение значением поля объекта аналогично настройке полей в стандартных отчетах на СКД. Имеется несколько способов указания поля, рассмотрим их подробнее далее.

Простое поле

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

SimpleField.png

Чаще всего указывается одно поле. В случае если значение имеет суммовой тип в некоторой валюте (сумма в рублях, например), то 2-м полем может быть выбрана валюта, что позволит корректно вывести сумму прописью в этой валюте (см. о форматировании).

Пользовательское поле

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

UserField.png

Для "поле выражение" необходимо написать формулу с использованием других полей.

UserField2.png

Статья на Инфостарте по пользовательским полям

Итоговое поле

Итоговое поле представляет собой итог по реквизиту табличной части. Чаще всего применяется для вывода итоговой суммы под таблицей.

TotalField.png

Имеется возможность рассчитать итог не по всей табличной части, а только по некоторым строкам, соответствующим отбору. Это бывает необходимо, когда табличная часть выводится частично - с отбором (см. о выводе таблиц ниже).

Заполнение закладки произвольным алгоритмом

Способ заполнения "Произвольным алгоритмом"- для сложных ситуаций, когда невозможно описать заполнение закладки стандартным способом.

Подробнее о разработке алгоритмов см. в разделе "Разработка алгоритмов"

Заполнение закладки алгоритмом из библиотеки

Способ заполнения "Алгоритмом из библиотеки" - для сложных ситуаций, когда невозможно описать заполнение закладки стандартными способами выбора полей.

Пользователю необходимо указать

  • библиотеку алгоритмов;
  • имя алгоритма из выбранной библиотеки;
  • произвольный дополнительный параметр (только если поддерживается алгоритмом, можно не указывать);
  • объект, к которому нужно применить алгоритм.

извлечение телефона контрагента алгоритмом стандартной библиотеки

В системе есть "Стандартная библиотека", в рамках которой уже реализовано множество базовых алгоритмов для извлечения

  • дополнительных свойств;
  • контактной информации;
  • банковских реквизитов;
  • контактных лиц;
  • паспортных данных;
  • присоединенных файлов.

Также возможно создание своих библиотек алгоритмов (см. раздел Библиотека алгоритмов)

Вставка/удаление/подчеркивание блока текста по условию

Вставка при условии подразумевает, что блок текста, выделенный закладкой в документе, будет вставлен в текст, если выполняется заданное условие. Если условие не выполняется, то содержимое закладки удаляется. Условие задается отборами СКД.

Удаление при условии подразумевает удаление блока текста, выделенного закладкой, из документа, если выполняется заданное условие. Если условие не выполняется, то содержимое закладки остается без изменений. Условие задается также отборами СКД.

Подчеркивание при условии (поддерживается только с версии 2.0) - подчеркивание блока текста, выделенного закладкой, если выполняется заданное условие. Если условие не выполняется, то содержимое закладки остается без изменений. Условие задается также отборами СКД.

Fillbookmark 2.png

Вывод таблицы/коллекции

Для вывода таблицы или коллекции по шаблону необходимо в Word-документе указать закладкой повторяющуюся область (шаблон элемента коллекции):

Шаблон строки таблицы

Внутри этой области (в примере - область "СтрокаТаблицы") - выделены области вставки данных (также как в других частях документа). После загрузки в 1С эти закладки видны следующим образом:

Закладки шаблона строки таблицы в 1С

Закладка шаблона строки таблицы, как видно, включает в себя закладки вставки отдельных значений полей элемента коллекции (ячеек таблицы).

Для закладки шаблона элемента коллекции (в примере - "СтрокаТаблицы") необходимо указать способ заполнения "Вывести коллекцию/таблицу по шаблону".

Способ заполнения "Вывести коллекция/таблицу по шаблону"

Здесь же можно указать отбор, если нужно выводить не всю коллекцию, а только ее часть по некоторому условию, задаваемому отбором СКД.

Для вложенных закладок - указать какими данными и из какой табличной части их заполнять (способ "Заполнить значением поля объекта" с указанием реквизита табличной части).

Вложенные закладки шаблона элемента коллекции

Таблица может быть также сформирована программно. В этом случае для закладки шаблона элемента коллекции указывается способ заполнения "Произвольным алгоритмом", а для вложенных закладок никаких настроек способа заполнения не делается. См. подробнее в разделе Разработка алгоритмов.