Разработка алгоритмов — различия между версиями

Материал из Формирование документов Word из 1C
Перейти к: навигация, поиск
Строка 4: Строка 4:
 
* при описании заполнения закладки способом "Заполнение произвольным алгоритмом";
 
* при описании заполнения закладки способом "Заполнение произвольным алгоритмом";
 
* при разработке [[Библиотека_алгоритмов|библиотеки алгоритмов]].
 
* при разработке [[Библиотека_алгоритмов|библиотеки алгоритмов]].
В обоих случаях алгоритм имеет одинаковых контекст.
+
В обоих случаях алгоритм имеет одинаковый контекст.
  
Контекст алгоритма содержит следующие переменные:
+
Алгоритмы выполняются на сервере. Контекст алгоритма содержит следующие переменные:
  
 
*'''Результат''' - в эту переменную должен быть присвоен результат выполнения алгоритма. Это значение будет подставлено в закладку.  Если значение - '''Неопределено''', то закладка не будет обработана (подстановка значения не производится). Значение по умолчанию - '''Неопределено'''.
 
*'''Результат''' - в эту переменную должен быть присвоен результат выполнения алгоритма. Это значение будет подставлено в закладку.  Если значение - '''Неопределено''', то закладка не будет обработана (подстановка значения не производится). Значение по умолчанию - '''Неопределено'''.
 
*'''Объект''' - ссылка на объект информационной базы 1С, на основе которого заполняется шаблон;
 
*'''Объект''' - ссылка на объект информационной базы 1С, на основе которого заполняется шаблон;
 
*'''кэш''' - соответствие, доступное алгоритмам в процессе выполнения правила заполнения шаблона (его использование - на усмотрение программиста, чаще всего для кэширования);
 
*'''кэш''' - соответствие, доступное алгоритмам в процессе выполнения правила заполнения шаблона (его использование - на усмотрение программиста, чаще всего для кэширования);
 +
* '''текВалюта''' - данную переменную желательно устанавливать в случаях, когда алгоритм возвращает суммовые данные (в рублях или в валюте). Это позволит корректно выводить эту сумму прописью (см. о [[Форматирование_значений_закладок|форматировании]]).
 +
 +
В случае алгоритма библиотеки доступен еще одна переменная:
 +
 +
* ПараметрАлгоритма - произвольный параметр, обычно строковый, который может быть передан алгоритму;
 +
 +
Алгоритм библиотеки может быть вызван из другого алгоритма путем следующей строки кода:
 +
 +
<code>РезультатВыполненияАлгоритма = ПолучитьРезультатВыполненияАлгоритмаБиблиотеки(Библиотека, ИмяАлгоритма, ПараметрАлгоритма, Объект)</code>
 +
 +
где
 +
 +
*'''Библиотека''' - имя библиотеки алгоритмов;
 +
*'''ИмяАлгоритма''' - имя алгоритма внутри указанной библиотеки;
 +
*'''ПараметрАлгоритма''' - произвольный параметр, передаваемый алгоритму (параметр передается по значению);
 +
*'''Объект''' - обычно в данный параметр передается ссылка на объект 1С, на основе которого заполняется шаблон (если объект не нужен, то можно, например, передать Неопределено).
  
 
Редактирование алгоритмов доступно только под полными правами.
 
Редактирование алгоритмов доступно только под полными правами.

Версия 12:35, 22 ноября 2017

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

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

  • при описании заполнения закладки способом "Заполнение произвольным алгоритмом";
  • при разработке библиотеки алгоритмов.

В обоих случаях алгоритм имеет одинаковый контекст.

Алгоритмы выполняются на сервере. Контекст алгоритма содержит следующие переменные:

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

В случае алгоритма библиотеки доступен еще одна переменная:

  • ПараметрАлгоритма - произвольный параметр, обычно строковый, который может быть передан алгоритму;

Алгоритм библиотеки может быть вызван из другого алгоритма путем следующей строки кода:

РезультатВыполненияАлгоритма = ПолучитьРезультатВыполненияАлгоритмаБиблиотеки(Библиотека, ИмяАлгоритма, ПараметрАлгоритма, Объект)

где

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

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