Создание формулы

Чтобы создать новую формулу, воспользуйтесь командой Создать формулу. Ее можно вызвать:

  • из контекстного меню группы формул;

  • при помощи кнопки панели инструментов ico_formula Создать формулу.

  1. В списке формул укажите группу, в которой нужно создать формулу.

  2. Вызовите команду Создать формулу. В указанной группе появится Новая формула.

  3. В области настройки в поле Имя введите название формулы. Оно может быть неуникальным.

  4. При необходимости введите описание формулы.

  5. Формуле автоматически будет присвоен код, который отображается в раскрывающемся разделе Коды в поле Код. Код формулы можно редактировать, однако код каждой формулы должен быть уникален.

  6. В поле Формула создайте текст формулы.

  7. Если формула включает в себя параметры, опишите их в поле Параметры формулы.

Текст и параметры формулы могут включать в себя:

  • операторы, функции, константы;

  • коды свойств (если в формуле фигурируют свойства);

  • коды областей выбора объектов (если в формуле фигурируют типы связей);

  • конструкции, предназначенные для вставки:

    • значения свойства объекта;

    • значения свойства связанного объекта;

    • значения свойства документа, связанного с объектом;

    • уникального номера объекта.

Если средствами Редактора были внесены изменения в существующую формулу, нажмите кнопку Вычислить для всех объектов, чтобы значения свойств объектов, которые вычисляются по этой формуле, были пересчитаны.

Параметры

Формулы могут включать в себя параметры.

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

Параметры формулы, указанной в дереве, перечислены в списке Параметры формулы.

Поля списка:

Параметр – переменная, которой обозначен параметр в формуле;
Вычисление – значение переменной.
Элементы управления:
ico_add Добавить параметр формулы
ico_delbig Удалить параметр
ico_sort Сортировать по наименованию
ico_sort_loc Сортировать по положению в теле формулы

Примечание

Параметры могут содержать в себе другие параметры, а также константы, операторы и функции.

Параметры пишутся в квадратных скобках. Имя параметра не может содержать квадратных скобок, но может содержать пробелы, кириллицу и другие печатные символы.

Если в формулу вставляется код свойства или код области выбора объектов, соответствующие параметры попадают в список Параметры формулы автоматически.

Чтобы в формуле заменить выражение параметром, необходимо:

  • добавить в формулу переменную, которая будет заменять выражение,

  • добавить новый параметр в список Параметры формулы, заполнив поля:

    • Параметр – наименованием переменной, которая заменяет выражение в формуле;

    • Вычисление – выражением, которое заменяет переменная.

Константы

  • Строковая константа – массив символов. Строковые константы записываются в одинарных кавычках, например, ‘ABC’ или ‘123’.

  • Числовая константа – целое или дробное число, например, 123 или 123.456.

  • Константа даты и времени – символьное значение даты и времени специального формата. Константы даты и времени записываются в одинарных кавычках или знаках решетки, например, ‘01.09.2022 05:07:11’ или #01.09.2022 05:07:11#.

  • this – текущий объект.

  • Pi – число Пи.

  • null – бестиповая ссылка, не указывающая на объект.

Подсказка

Чтобы поместить в строковую константу одинарную кавычку, используйте перед ней экранирующий символ \. Например, ‘\‘ABC\’’.

Для записи числовых констант можно использовать научную нотацию, например:

  • 1.22e1

  • 1e2

  • 1e+2

  • 1e-2

  • .1e-2

  • 1e10


Примеры

Формула состоит из двух параметров: Длина и Ширина, и константы 2. Параметры Длина и Ширина состоят из числовых констант 3 и 4.

Формула состоит из константы Pi и константы Радиус, которая равна числовой константе 4.

Операторы

Выражения в формулах связываются при помощи операторов. В таблице ниже приведены группы операторов в порядке снижения их приоритета.

Операторы, используемые в формулах

Название

Оператор

Пример использования

Унарные

Логическое отрицание

not, !

ico_formula: not(true)

Результат: false

Побитовое отрицание

(операция выполняется с двоичным представлением числа)

~

ico_formula: ~10

Результат: -11

Операторы арифметических операций

Умножение, деление

*, /

ico_formula: 5 * 4 / 2

Результат: 10

Взятие остатка от деления

%

ico_formula: 11 % 3

Результат: 2

Сложение, вычитание

+, -

ico_formula: 2+3-1

Результат: 4

Операторы сравнения

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

Равно

=, ==

ico_formula: 1 = 2

Результат: false

 

ico_formula: 2 == 2

Результат: true

Неравно

!=, <>

ico_formula: 1 != 2

Результат: true

 

ico_formula: 2 <> 2

Результат: false

Больше, меньше

>, <

ico_formula: 1 > 2

Результат: false

 

ico_formula: 1 < 2

Результат: true

Больше или равно,

меньше или равно

>=, <=

ico_formula: 2 >= 2

Результат: true

 

ico_formula: 1 <= -2

Результат: false

Логические операторы

(результатом логического выражения является логический тип данных)

Конъюнкция

(логическое И)

and, &&

ico_formula: true and false

Результат: false

 

ico_formula: 1 > -2 and true

Результат: true

Дизъюнкция

(логическое ИЛИ)

or, ||

ico_formula: true or false

Результат: true

 

ico_formula: 0 == -2 or false

Результат: false

Битовые операции

(операции выполняются с двоичным представлением чисел)

Побитовое И

&

ico_formula: 11 & 14

Результат: 10

Побитовое исключающее ИЛИ (XOR)

^

ico_formula: 11 ^ 14

Результат: 5

Побитовое ИЛИ

|

ico_formula: 11 | 14

Результат: 15

Битовый сдвиг влево

<<

ico_formula: 3 << 2

Результат: 12

Битовый сдвиг вправо

>>

ico_formula: 13 >> 2

Результат: 3

Функции

Функции, используемые в формулах

Функция

Пример использования

Математические функции

Abs(x)

 

Возвращает абсолютное значение числа.

ico_formula: Abs(-5)

Результат: 5

Acos(x)

 

Возвращает величину угла (в радианах) по заданному значению косинуса.

ico_formula: Acos(0.5)

Результат: 1.047...

Asin(x)

 

Возвращает величину угла (в радианах) по заданному значению синуса.

ico_formula: Asin(0.5)

Результат: 0.523...

Atan(x)

 

Возвращает величину угла (в радианах) по заданному значению тангенса.

ico_formula: Atan(1)

Результат: 0.785...

Ceiling(x)

 

Возвращает ближайшее большее целое число.

ico_formula: Ceiling(1.1)

Результат: 2

Cos(x)

 

Возвращает косинус угла, заданного в радианах.

ico_formula: Cos(1.047)

Результат: 0.5

Exp(x)

 

Возвращает результат выражения ex.

ico_formula: Exp(1)

Результат: 2.718...

Floor(x)

 

Возвращает ближайшее меньшее целое число.

ico_formula: Floor(1.7)

Результат: 1

IEEERemainder(x, y)

 

Возвращает остаток от деления x на y.

Остаток рассчитывается по формуле:

 

equation

 

где x – делимое

y – делитель

Q – результат деления x на y, округленный до ближайшего целого числа;

 

если x / y находится на равном расстоянии от двух целых чисел, выбирается четное число;

 

если результат выражения equation равен нулю, то возвращается:

+0 при положительном x;

-0 при отрицательном x.

ico_formula: IEEERemainder(11,3)

Результат: -1

Log(x, y)

 

Возвращает логарифм числа x по основанию y.

ico_formula: Log(8,2)

Результат: 3

Log10(x)

 

Возвращает десятичный логарифм числа x.

ico_formula: Log10(1000)

Результат: 3

Max (a1, a2, …)

 

Возвращает наибольшее из значений.

 

Не учитывает null и пустые строки.

 

Для чисел с плавающей запятой учитывает тип значения свойства.

Если на вход подается диапазон, то берет максимальное значение диапазона.

Если число с допуском, то берет номинальное значение.

ico_formula: Max(2,5,1,4,3)

Результат: 5

Min (a1, a2, …)

 

Возвращает наименьшее из значений.

 

Не учитывает null и пустые строки.

 

Для чисел с плавающей запятой учитывает тип значения свойства.

Если на вход подается диапазон, то берет минимальное значение диапазона.

Если число с допуском, то берет номинальное значение.

ico_formula: Min(2,5,1,4,3)

Результат: 1

Pow(x,y)

 

Возвращает результат возведения числа x в степень y.

ico_formula: Pow(3, 2)

Результат: 9

Round(x,y)

 

Возвращает результат округления числа x с точностью y знаков после запятой.

 

Значения посередине округляются до ближайшего четного числа.

ico_formula: Round(3.125, 2)

Результат: 3.12

 

ico_formula: Round(3.135, 2)

Результат: 3.14

 

ico_formula: Round(3.5, 0)

Результат: 4

 

ico_formula: Round(2.5, 0)

Результат: 2

Sign(x)

 

Возвращает -1 для отрицательного x, и 1 для положительного.

ico_formula: Sign(-10)

Результат: -1

Sin(x)

 

Возвращает синус угла, заданного в радианах.

ico_formula: Sin(0)

Результат: 0

Sqrt(x)

 

Возвращает квадратный корень из x.

ico_formula: Sqrt(16)

Результат: 4

Tan(x)

 

Возвращает тангенс угла, заданного в радианах.

ico_formula: Tan(0)

Результат: 0

Truncate(x)

 

Возвращает целую часть числа.

ico_formula: Truncate(1.7)

Результат: 1

if(Условие, Выражение 1, Выражение 2)

 

Если условие истинно, возвращает результат выражения 1.

 

Если условие ложно, возвращает результат выражения 2.

ico_formula: if(3 % 2 == 1, 1+1, 2+2)

Результат: 2

 

ico_formula: if(3 < 2, true, false)

Результат: false

in (x, a1, a2, …, an)

 

Ищет элемент x в коллекции элементов (a1, a2, …, an)

 

Если элемент найден, возвращает true, если нет – false.

 

Функция работает только с числовыми и строковыми типами данных.

ico_formula: in(1, 11, 22, 33)

Результат: False

 

ico_formula: in(1, 3, 2, 1)

Результат: True

 

ico_formula: in('Г', 'АБВГДЕЁЖ')

Результат: False

 

ico_formula: in('Г','А','Б','В','Г','Д','Е','Ё','Ж')

Результат: True

Функции приведения типов

AsString(выражение)

 

Преобразует результат выражения к строке.

 

AsString(null) возвращает null.

ico_formula: AsString(-5*2) + '00'

Результат: -1000

IsNull(выражение)

 

Возвращает true, если выражение – null, иначе – false.

ico_formula: IsNull(0)

Результат: false

 

ico_formula: IsNull(null)

Результат: true

ToBool(выражение)

 

Преобразует результат выражения к логическому типу.

ico_formula: ToBool(-10)

Результат: true

 

ico_formula: ToBool(0)

Результат: false

 

ico_formula: ToBool('false')

Результат: false

ToDouble(выражение)

 

Преобразует результат выражения к вещественному числу.

ico_formula: ToDouble('3,14') / 2

Результат: 1,57

ToDouble(выражение, культура)

 

Преобразует результат выражения к вещественному числу с учетом культуры.

ico_formula: ToDouble('3,14', 'ru-RU') / 2

Результат: 1,57

 

ico_formula: ToDouble('3.14', 'en-US') / 2

Результат: 1.57

ToInt(выражение)

 

Преобразует результат выражения к целому числу.

ico_formula: ToInt('2,67')

Результат: 2

 

ico_formula: ToInt('2') + 3

Результат: 5

ToPlainText(выражение)

 

Преобразует RTF-текст к строке.

ico_formula: ToPlainText(GetPropertyValue(this, 'pd:@Description', '')

 

Вернет значение свойства Описание типа RTF-текст указанного объекта в виде строки.

ToString(выражение)

 

Преобразует результат выражения к строке.

 

ToString(null) возвращает пустую строку.

 

Разделитель дробных чисел соответствует текущей системной культуре.

ico_formula: ToString(-5*2) + '00'

Результат: -1000

ToString(выражение, культура)

 

Преобразует результат выражения к строке с учетом указанной культуры.

ico_formula: ToString(3.14, 'en-US')

Результат: 3.14

 

ico_formula: ToString(3.14, 'ru-RU')

Результат: 3,14

Функции для работы с датой

AppServerDateTime()

 

Возвращает текущую дату и время с сервера приложений ПОЛИНОМ:MDM в виде строки в формате dd.MM.yyyy HH:mm:ss и культуре ru-RU.

ico_formula: StringDateTime(AppServerDateTime())

Результат: 01.01.2022 00:00:00

StringDateTime(выражение, формат, культура)

 

Преобразует результат выражения типа дата и время к строке с учётом указанных формата и культуры.

 

Если формат не указан, то по умолчанию вернет строку в формате dd.MM.yyyy HH:mm:ss.

 

Подробное описание см. в документации Microsoft.

ico_formula: StringDateTime(GetPropertyValue(this, 'pd:@DateCreated', ''), 'D', 'en-EN')

Результат: Monday, January 1, 1901

 

ico_formula: StringDateTime(GetPropertyValue(this, 'pd:@DateCreated', ''), 'dd.MM.yyyy HH:mm:ss', 'en-EN')

Результат: 01.01.1901 00:00:00

 

ico_formula: StringDateTime(GetPropertyValue(this, 'pd:@DateCreated', ''), 'yyyy-MM-d dddd')

Результат: 1901-01-1 понедельник

Строковые функции

StringArray( Строка1, Строка2, …, Строкаn )

 

Возвращает коллекцию из указанных строк.

ico_formula: StringArray('ABC','DEF')

StringEquals(Строка 1, Строка 2, Чувствительность к регистру)

 

Если строки эквивалентны возвращает true, иначе возвращает false.

ico_formula: StringEquals('AAA','aaa')

Результат: false

 

ico_formula: StringEquals('AAA','aaa', true)

Результат: false

 

ico_formula: StringEquals('AAA','aaa', false)

Результат: true

StringExtract(Коллекция строк, Индекс элемента коллекции)

 

Возвращает элемент коллекции с указанным индексом.

ico_formula: StringExtract(StringArray('ABC','DEF'), 0)

Результат: ABC

StringFormat(Строка, Коллекция параметров)

 

Создает строку по шаблону аналогично методу String.Format в c#.

 

Подробное описание см. в документации Microsoft.

ico_formula: StringFormat('Сумма {0} и {1} равна {2}', 2, 3, 2+3)

Результат: Сумма 2 и 3 равна 5

StringIndexOf(Строка, Подстрока, Чувствительность к регистру)

 

Ищет подстроку в строке и возвращает индекс начала подстроки. Если подстрока не найдена, возвращает -1.

ico_formula: StringIndexOf('abcdef', 'cd')

Результат: 2

 

ico_formula: StringIndexOf('abcdef', 'CD', true)

Результат: -1

 

ico_formula: StringIndexOf('abcdef', 'CD', false)

Результат: 2

StringIsEmpty(Строка)

 

Возвращает true, если получает на вход пустую строку или null, иначе возвращает false.

ico_formula: StringIsEmpty('ABC')

Результат: false

 

ico_formula: StringIsEmpty('')

Результат: true

StringJoin(Коллекция, Разделитель)

 

Возвращает все элементы коллекции в виде строки через разделитель.

ico_formula: StringJoin(StringArray('3', '2', '1'), '+')

Результат: 3+2+1

StringLength(Строка)

 

Возвращает длину строки.

ico_formula: StringLength('ABC')

Результат: 3

StringPrefixSuffix(Строка, Префикс, Суффикс)

 

Добавляет к исходной строке префикс и суффикс.

 

Если нужно добавить только префикс/суффикс, то в качестве суффикса/префикса укажите пустую строку.

ico_formula: StringPrefixSuffix('CD', 'AB', 'EF')

Результат: ABCDEF

 

ico_formula: StringPrefixSuffix('CD', 'AB', '')

Результат: ABCD

StringRemove(Строка, Коллекция подстрок)

 

Ищет в строке подстроки из коллекции и удаляет их.

ico_formula: StringRemove('123456789', StringArray('2','4','6','8'))

Результат: 13579

StringReplace(Строка, Подстрока 1, Подстрока 2)

 

Ищет в строке подстроку 1 и заменяет ее на подстроку 2.

ico_formula: StringReplace('123456789', '12', '012')

Результат: 0123456789

StringSplit(Строка, Разделитель)

 

Разбивает строку на части, используя разделитель, и возвращает эти части в виде коллекции.

ico_formula: StringExtract(StringSplit('A B C D E F', ' '), 2)

Результат: С

StringSubstring(Строка, Индекс, Длина)

 

Возвращает подстроку заданной длины, начиная с указанного индекса.

 

Если длина не указана, берется подстрока от элемента с заданным индексом до последнего элемента строки.

ico_formula: StringSubstring('ABCDEF', 3)

Результат: DEF

 

ico_formula: StringSubstring('ABCDEF', 1, 3)

Результат: BCD

StringToLower(Строка)

 

Возвращает указанную строку в нижнем регистре.

ico_formula: StringToLower('AbC')

Результат: abc

StringToUpper(Строка)

 

Возвращает указанную строку в верхнем регистре.

ico_formula: StringToUpper('AbC')

Результат: ABC

StringTrim(Строка)

 

Убирает пробелы в начале или конце строки.

ico_formula: StringTrim('   ABCD   ')

Результат: ABCD

StringTrimEnd(Строка, Коллекция)

 

Убирает в конце строки все символы, которые есть в указанной коллекции.

 

Если коллекция не указана, то в конце строки убираются пробелы.

ico_formula: StringTrimEnd('01-21-ABCD-02-21', StringArray ('0','1','2','-'))

Результат: 01-21-ABCD

 

ico_formula: StringTrimEnd('++ABCD++', '+')

Результат: ++ABCD

 

ico_formula: StringTrimEnd('ABCD   ')

Результат: ABCD

StringTrimStart(Строка, Коллекция)

 

Убирает в начале строки все символы, которые есть в указанной коллекции.

 

Если коллекция не указана, то в начале строки убираются пробелы.

ico_formula: StringTrimStart('01-21-ABCD-02-21', StringArray ('0','1','2','-'))

Результат: ABCD-02-21

 

ico_formula: StringTrimStart('++ABCD++', '+')

Результат: ABCD++

 

ico_formula: StringTrimStart('   ABCD')

Результат: ABCD

Функции для чисел с плавающей запятой

GetDoublePropertyValueWithUnit(IPropertyOwner, propertyCode, defaultValue, defaultUnitCode)

 

Возвращает значение свойства и код единицы измерения свойства propertyCode владельца свойства IPropertyOwner.

 

Если свойство не найдено или у него нет значения, то возвращает значение по умолчанию (defaultValue) и код единицы измерения по умолчанию (defaultUnitCode).

ico_formula: GetDoublePropertyValueWithUnit([this], 'c:concept::pd:prop', GetDoubleRange(0, 100), 'VE13AD7FA26514145A95CD06664375952')

 

Вернет значение и код единицы измерения свойства с кодом c:concept::pd:prop, принадлежащего объекту, к которому применена формула (this).

 

Если свойство не найдено или у него нет значения, то возвращает значение и единицу измерения по умолчанию: диапазон от 0 до 100 см.

GetDoubleRange(minValue,maxValue,unitCode)

 

Возвращает число с плавающей запятой в виде диапазона.

 

Параметры minValue, maxValue принимают на вход строковые или числовые значения. Например, через функцию GetPropertyValue().

 

minValue - минимальное значение диапазона

 

maxValue - максимальное значение диапазона

 

Параметр unitCode необязательный.

Принимает на вход строковое значение.

Например, через функцию GetPropertyUnit() или GetOkeiCodeUnit().

 

unitCode - код единицы измерения

 

ico_formula: GetDoubleRange([min],[max],[unit])

 

Параметры формулы min, max вернут значения свойства, к которому применена формула (this), по его коду.

 

min:

GetPropertyValue([this], 'c:assemble::c:assembleRange::pd:assembleRangeMin', '')

например, 2,5

 

max:

GetPropertyValue([this], 'c:assemble::c:assembleRange::pd:assembleRangeMax', '')

например, 4,3

 

Параметр формулы unit вернет код единицы измерения по коду ОКЕИ, полученному из значения свойства, к которому применена формула (this), по его коду:

 

unit:

GetOkeiCodeUnit(GetPropertyValue([this], 'c:assemble::c:assembleRange::pd:assembleRangeUnitCode', ''), '')

например, 354

 

Результат: 2,5 - 4,3 с

GetDoubleTolerance(value,minValue,maxValue,unitCode)

 

Возвращает число с плавающей запятой в виде числа с допуском.

 

Параметры value, minValue, maxValue принимают на вход строковые или числовые значения. Например, через функцию GetPropertyValue().

 

value - номинальное значение

 

minValue - минимальное из отклонений

 

maxValue - максимальное из отклонений

 

Параметр unitCode необязательный.

Принимает на вход строковое значение.

Например, через функцию GetPropertyUnit() или GetOkeiCodeUnit().

 

unitCode - код единицы измерения

 

ico_formula: GetDoubleTolerance([value],[minTolerance],[maxTolerance],[unit])

 

Параметры формулы value, min, max вернут значения свойства, к которому применена формула (this), по его коду.

 

value:

GetPropertyValue([this], 'c:assemble::c:assembleTolerance::pd:assembleValue', '')

например, 8

 

minTolerance:

GetPropertyValue([this], 'c:assemble::c:assembleTolerance::pd:assembleMinTolerance', '')

например, -1

 

maxTolerance:

GetPropertyValue([this], 'c:assemble::c:assembleTolerance::pd:assembleMaxTolerance', '')

например, 1

 

Параметр формулы unit вернет код единицы измерения по коду ОКЕИ, полученному из значения свойства, к которому применена формула (this), по его коду:

 

unit:

GetOkeiCodeUnit(GetPropertyValue([this], 'c:assemble::c:assembleTolerance::pd:assembleToleranceUnitCode', ''), '')

например, 354

 

Результат: res_formula

MinRange(doublePropertyValue)

 

Учитывает тип числа с плавающей запятой.

 

Если на вход подается диапазон, возвращает минимальное значение диапазона.

 

Если число с допуском, возвращает номинальное значение с учетом минимального отклонения.

 

Если на вход подается число, то вернет число.

 

Значения возвращаются в виде строки.

ico_formula: MinRange([range])

 

Параметр формулы range вернет значения свойства, к которому применена формула (this), по его коду.

 

range:

GetPropertyValue([this], 'c:disassemble::c:disassembleRange::pd:disassembleRange', 0)

 

Например, параметр возвращает диапазон 2,5 - 4,3 с

 

Результат: 2,5

 

Например, параметр возвращает число с допуском res_formula

 

Результат: 7

MaxRange(doublePropertyValue)

 

Учитывает тип числа с плавающей запятой.

 

Если на вход подается диапазон, возвращает максимальное значение диапазона.

 

Если число с допуском, возвращает номинальное значение с учетом максимального отклонения.

 

Если на вход подается число, то вернет число.

 

Значения возвращаются в виде строки.

ico_formula: MaxRange([range])

 

Параметр формулы range вернет значения свойства, к которому применена формула (this), по его коду.

 

range:

GetPropertyValue([this], 'c:disassemble::c:disassembleRange::pd:disassembleRange', 0)

 

Например, параметр возвращает диапазон 2,5 - 4,3 с

 

Результат: 4,3

 

Например, параметр возвращает число с допуском res_formula

 

Результат: 9

MinTolerance(doublePropertyValue)

 

Учитывает тип числа с плавающей запятой.

 

Если на вход подается диапазон, возвращает значение, которое рассчитывается по формуле:

 

equation1

 

где

minValue - минимальное значение диапазона

maxValue - максимальное значение диапазона

 

Если на вход подается число с допуском, возвращает минимальное из отклонений.

 

Если на вход подается число, то вернет число.

 

Значения возвращаются в виде строки.

ico_formula: MinTolerance([valueTolerance])

 

Параметр формулы valueTolerance вернет значения свойства, к которому применена формула (this), по его коду.

 

valueTolerance:

GetPropertyValue([this], 'c:disassemble::c:disassembleTolerance::pd:disassembleValueTolerance', 0)

 

Например, параметр возвращает диапазон 2,5 - 4 с

 

Результат: -0,75

 

Например, параметр возвращает число с допуском res_formula

 

Результат: -1

MaxTolerance(doublePropertyValue)

 

Учитывает тип числа с плавающей запятой.

 

Если на вход подается диапазон, возвращает значение, которое рассчитывается по формуле:

 

equation2

 

где

minValue - минимальное значение диапазона

maxValue - максимальное значение диапазона

 

Если на вход подается число с допуском, возвращает максимальное из отклонений.

 

Если на вход подается число, то вернет число.

 

Значения возвращаются в виде строки.

ico_formula: MaxTolerance([valueTolerance])

 

Параметр формулы valueTolerance вернет значения свойства, к которому применена формула (this), по его коду.

 

valueTolerance:

GetPropertyValue([this], 'c:disassemble::c:disassembleTolerance::pd:disassembleValueTolerance', 0)

 

Например, параметр возвращает диапазон 2,5 - 4 с

 

Результат: 0,75

 

Например, параметр возвращает число с допуском res_formula

 

Результат: 1

Nominal(doublePropertyValue)

 

Учитывает тип числа с плавающей запятой.

 

Если на вход подается диапазон, возвращает значение, которое рассчитывается по формуле:

 

equation3

 

где

minValue - минимальное значение диапазона

maxValue - максимальное значение диапазона

 

Если на вход подается число с допуском, возвращает число (номинальное значение).

 

Если на вход подается число, то вернет число.

 

Значения возвращаются в виде строки.

ico_formula: Nominal([dpvalue])

 

Параметр формулы dpvalue вернет значения свойства, к которому применена формула (this), по его коду.

 

dpvalue:

GetPropertyValue([this], 'c:disassemble::pd:dpvalue', 0)

 

Например, параметр возвращает диапазон 4 - 8 с

 

Результат: 6

 

Например, параметр возвращает число с допуском res_formula

 

Результат: 8

IsRange(doublePropertyValue)

 

Возвращает true, если doublePropertyValue является диапазоном, иначе возвращает false.

 

Если тип свойства не является числом с плавающей запятой, вернет false.

 

ico_formula: IsRange([dpvalue])

 

Параметр формулы dpvalue вернет значения свойства, к которому применена формула (this), по его коду.

 

dpvalue:

GetPropertyValue([this], 'c:disassemble::pd:dpvalue', 0)

 

Например, параметр возвращает диапазон 4 - 8 с

 

Результат: true

 

Например, параметр возвращает число с допуском res_formula

 

Результат: false

IsTolerance(doublePropertyValue)

 

Возвращает true, если doublePropertyValue является числом с допуском, иначе возвращает false.

 

Если тип свойства не является числом с плавающей запятой, вернет false.

 

ico_formula: IsTolerance([dpvalue])

 

Параметр формулы dpvalue вернет значения свойства, к которому применена формула (this), по его коду.

 

dpvalue:

GetPropertyValue([this], 'c:disassemble::pd:dpvalue', 0)

 

Например, параметр возвращает диапазон 4 - 8 с

 

Результат: false

 

Например, параметр возвращает число с допуском res_formula

 

Результат: true

IsNominal(doublePropertyValue)

 

Возвращает true, если doublePropertyValue является числом, иначе возвращает false.

 

Если тип свойства не является числом с плавающей запятой, вернет false.

 

ico_formula: IsNominal([dpvalue])

 

Параметр формулы dpvalue вернет значения свойства, к которому применена формула (this), по его коду.

 

dpvalue:

GetPropertyValue([this], 'c:disassemble::pd:dpvalue', 0)

 

Например, параметр возвращает диапазон 4 - 8 с

 

Результат: false

 

Например, параметр возвращает число с допуском res_formula

 

Результат: false

 

Например, параметр возвращает число 4,3 c

 

Результат: true

Функции для работы с API

CatalogNumber()

 

Возвращает уникальный номер объекта, документа или представления в рамках каталога.

ico_formula: CatalogNumber(this)

ConvertUnit(srcCode, dstCode, value)

 

Конвертирует значение value из единицы измерения с кодом srcCode в единицу измерения с кодом dstCode.

 

Если преобразование выполнить не удалось, возвращается исходное значение value.

ico_formula: ConvertUnit('VD53586643AE74C38A1BDF03D34991850', 'V7A9D79F6364B40D3BEEC90E05363F7C0', 1)

Результат: 1000

 

В результате значение 1 (кг) будет преобразовано в 1000 (г).

Find(collection, ‘filter’)

 

Возвращает коллекцию всех элементов коллекции collection, удовлетворяющих условию, заданному в фильтрующем параметре.

 

Фильтрующий параметр получает на вход переменную item – очередной элемент коллекции.

ico_formula: StringJoin(Find(StringArray('3', '2', '1'), 'filter'), ',')

Параметр filter: item < '3'

Результат: 2,1

FindFirst(collection, ‘filter’)

 

Возвращает первый элемент коллекции collection, удовлетворяющий условию, заданному в фильтрующем параметре.

 

Фильтрующий параметр получает на вход переменную item – очередной элемент коллекции.

ico_formula: FindFirst(StringArray('3', '2', '1'), 'filter')

Параметр filter: item < '3'

Результат: 2

First(collection)

 

Возвращает первый элемент коллекции collection.

ico_formula: First(StringArray('3', '2', '1'))

Результат: 3

GetDocuments(IPropertyOwner)

 

Возвращает коллекцию документов для указанного владельца свойств.

ico_formula: GetPropertyValue(First(GetDocuments(this)),'@Name','')

 

Вернет наименование первого найденного документа, принадлежащего объекту (this), к которому применена формула.

GetElements(IPropertyOwner)

 

Возвращает коллекцию объектов для указанного представления.

ico_formula: GetPropertyValue(First(GetElements(this)),'@Name','')

 

Вернет наименование первого найденного объекта, принадлежащего представлению (this), к которому применена формула.

GetEnumItemDescription(IPropertyOwner, propertyCode, defaultValue)

 

Возвращает описание значения свойства типа перечислимое с описанием с кодом propertyCode владельца свойства IPropertyOwner.

 

Для свойств понятий задается полный код, для собственных свойств – полный код определения свойства.

 

Простой код определения свойства возвращает первое найденное в понятиях свойство с таким определением.

 

Если свойство не найдено или у него нет значения, то возвращает значение по умолчанию (defaultValue).

ico_formula: GetEnumItemDescription(this, 'size', '')

 

Вернет описание значения свойства с кодом size принадлежащего объекту, к которому применена формула (this).

GetGroupClassId(GetOwnerGroup(this))

 

Возвращает идентификатор класса группы, в которой располагается объект.

 

Если группе не задан идентификатор класса, то вернется идентификатор класса ближайшей из родительских групп, у которой он заполнен.

ico_formula: GetGroupClassId(GetOwnerGroup(this))

 

Вернет идентификатор группы, в которой находится указанный объект (this).

GetGroupObjects(IBaseGroupOwner)

 

Возвращает коллекцию объектов, документов или представлений указанной группы.

ico_formula: GetGroupObjects(GetOwnerGroup(this))

 

Вернет коллекцию объектов, которые находятся в той же группе, что и указанный объект.

GetGroupObjectsRecursively(IBaseGroupOwner)

 

Возвращает коллекцию объектов, документов или представлений указанной группы и всех подгрупп ниже по иерархии.

ico_formula: GetGroupObjectsRecursively(GetOwnerGroup(this))

 

Вернет коллекцию объектов, которые находятся в той же группе, что и указанный объект и во всех подгруппах ниже по иерархии.

GetGroupsForDocument(IDocument)

 

Возвращает коллекцию групп, связанных с указанным документом.

ico_formula: GetPropertyValue(First(GetGroupsForDocument(this)), '@Name', '')

 

Вернет наименование первой найденной группы, связанной с указанным документом.

GetLinkedObjects(IPropertyOwner, linkDefinitionEndCode)

 

Возвращает коллекцию связанных объектов, используя полный код (linkDefinitionEndCode) противоположного конца связи.

ico_formula: GetPropertyValue(First(GetLinkedObjects(this, 'ld:MATERIALPARTLINK::lde:MATERIALLINKEND')), '@Name','')

 

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

GetLinkedInstances(IPropertyOwner, linkDefinitionEndCode)

 

Возвращает коллекцию свойств связи связанных объектов, используя полный код (linkDefinitionEndCode) противоположного конца связи.

ico_formula: GetPropertyValue(First(GetLinkedInstances(this, 'ld:ExMatLinkCode::lde:Source')), 'c:DocumentTU::pd:@Designation','')

 

Вернет обозначение документа на ТУ первого найденного свойства связи объекта, связанного с указанным объектом.

GetObjectsForDocument(IDocument)

 

Возвращает коллекцию объектов, связанных с указанным документом.

ico_formula: GetPropertyValue(First(GetObjectsForDocument(this)), '@Name', '')

 

Вернет наименование первого найденного объекта, связанного с указанным документом.

GetOwnerGroup(IPropertyOwner)

 

Возвращает группу-владельца указанного элемента.

ico_formula: GetPropertyValue(GetOwnerGroup(this),'@Name','')

 

Вернет наименование группы, в которой находится указанный объект.

 

ico_formula: GetPropertyValue(GetOwnerGroup(GetOwnerGroup(this)),'@Name','')

 

Вернет наименование группы, в которой находится группа с указанным объектом.

GetPropertyUnit(IPropertyOwner, propertyCode, defaultValue)

 

Возвращает код единицы измерения свойства propertyCode владельца свойства IPropertyOwner. Правила аналогичны функции GetPropertyValue.

ico_formula: GetPropertyUnit(this, '@MACC', '')

 

Вернет код единицы измерения свойства Масса, принадлежащего объекту, к которому применена формула (this).

GetOkeiCodeUnit(okeiCode, defaultValue)

 

Возвращает код единицы измерения по ее коду ОКЕИ.

 

Если код не найден, то возвращает значение по умолчанию (defaultValue).

ico_formula: GetOkeiCodeUnit('362', '')

 

Вернет код единицы измерения для кода по ОКЕИ 362.

GetPropertyValue(IPropertyOwner, propertyCode, defaultValue)

 

Возвращает значение свойства с кодом propertyCode владельца свойства IPropertyOwner.

 

Для свойств понятий задается полный код, для собственных свойств – полный код определения свойства.

 

Простой код определения свойства возвращает первое найденное в понятиях свойство с таким определением.

 

Если свойство не найдено или у него нет значения, то возвращает значение по умолчанию (defaultValue).

 

 

Если свойство с кодом propertyCode типа множество и формула применяется для свойства типа множество – сравнивает выбранные элементы свойства с кодом propertyCode и все элементы свойства, к которому применяется формула. Возвращает только те элементы, которые совпадают.

 

Если свойство с кодом propertyCode типа множество и формула применяется для свойства типа строка, RTF-текст – возвращает выбранные элементы свойства с кодом propertyCode в виде строки через разделитель.

ico_formula: GetPropertyValue(this, 'c:@NameAndDescription::pd:@Name', '')

 

Вернет значение свойства Наименование, принадлежащего объекту, к которому применена формула (this).

 

 

Возможно использование в паре с функциями GetPropertyUnit и GetOkeiCodeUnit через разделитель ;.

 

ico_formula: GetPropertyValue(this, 'density', '');GetPropertyUnit(this, 'density', '')

 

Вернет значение и единицу измерения свойства Плотность, принадлежащего объекту, к которому применена формула (this).

 

Примечание:

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

ico_formula: GetPropertyValue(this, 'density', '');GetOkeiCodeUnit('316', '')

 

Вернет значение свойства Плотность, принадлежащего объекту, к которому применена формула (this) и единицу измерения по коду ОКЕИ 316.

 

 

ico_formula: GetPropertyValue(this, 'source', '')

 

Для свойства c кодом source типа множество с элементами: 1,3,5,7,8

Выбраны элементы свойства source: 1, 5, 7

 

Если формула применяется к свойству типа множество с элементами: 1,2,4,5,7,8

Результат: 1, 5, 7

 

Если формула применяется к свойству типа строка или RTF-текст

Результат: 1, 5, 7

 

 

GetPropertyValues(collection, propertyCode, defaultValue)

 

Возвращает коллекцию значений свойства с кодом propertyCode.

 

Для свойств понятий задается полный код, для собственных свойств – полный код определения свойства.

 

Простой код определения свойства возвращает первое найденное в понятиях свойство с таким определением.

 

Если свойство не найдено или у него нет значения, то возвращает значение по умолчанию (defaultValue).

ico_formula: GetPropertyValues(GetLinkedObjects(this, 'ld:MATERIALPARTLINK::lde:MATERIALLINKEND'), '@Name', '')

 

Вернет коллекцию наименований всех материалов, связанных с объектом, к которому применена формула (this).

GetTablePropertyRows(IPropertyOwner, propertyCode)

 

Возвращает строки табличного свойства с кодом propertyCode владельца свойства IPropertyOwner.

ico_formula: GetPropertyValue(First(GetTablePropertyRows(this, 'sizes')),'diameter','')

 

Вернет значение столбца Диаметр из первой строки таблицы Типоразмеры, принадлежащей объекту, к которому применена формула (this).

GetTablePropertyRowAbs(IPropertyOwner, propertyCode, rowAbsNumber)

 

Возвращает строку табличного свойства с кодом propertyCode владельца свойства IPropertyOwner по ее номеру rowAbsNumber.

ico_formula: GetPropertyValue(GetTablePropertyRowAbs(this, 'sizes', 0), 'diameter', '')

 

Вернет значение столбца Диаметр из первой строки таблицы Типоразмеры, принадлежащей объекту, к которому применена формула (this).

 

Помимо целых чисел, параметр rowAbsNumber может принимать значения first_row – первая строка и last_row – последняя строка.

GetTablePropertyRowRel(IPropertyOwner, rowRelNumber)

 

Возвращает строку табличного свойства, расположенную на заданном расстоянии rowRelNumber от текущей строки this.

ico_formula: GetPropertyValue(GetTablePropertyRowRel(this, -1), 'diameter', '') * 2

 

В ячейке таблицы, на которую назначена формула, будет установлено значение столбца Диаметр из предыдущей строки таблицы, умноженное на 2.

GetTableRowOwner(this)

 

Возвращает объект, содержащий таблицу, к которой применена формула (this).

ico_formula: GetPropertyValue(GetTableRowOwner(this), 'c:@NameAndDescription::c:@ClassificationItem::pd:@Name', '')

 

Вернет в ячейку таблицы, к которой применена формула (this), наименование объекта, содержащего таблицу.

GetUnitCodeOkei(unitCode, defaultValue)

 

Возвращает код по ОКЕИ единицы измерения по ее коду (unitCode).

 

Если единицы измерения с указанным кодом нет, то возвращается значение по умолчанию – defaultValue.

ico_formula: GetUnitCodeOkei(GetPropertyUnit(this, '@MACC', ''), '')

 

Вернет код по ОКЕИ единицы измерения свойства Масса, принадлежащего объекту, к которому применена формула.

GetUnitDesignation(unitCode, defaultValue)

 

Возвращает обозначение единицы измерения по ее коду (unitCode).

 

Если единицы измерения с указанным кодом нет, то возвращается значение по умолчанию – defaultValue.

ico_formula: GetUnitDesignation(GetPropertyUnit(this, '@MACC', ''), '')

 

Вернет обозначение единицы измерения свойства Масса, принадлежащего объекту, к которому применена формула.

GetUnitInternationalDesignationOkei(unitCode, defaultValue)

 

Возвращает международное обозначение по ОКЕИ единицы измерения по ее коду (unitCode).

 

Если единицы измерения с указанным кодом нет, то возвращается значение по умолчанию – defaultValue.

ico_formula: GetUnitInternationalDesignationOkei(GetPropertyUnit(this, '@MACC', ''), '')

 

Вернет международное обозначение по ОКЕИ единицы измерения свойства Масса, принадлежащего объекту, к которому применена формула.

GetUnitInternationalLiteralDesignation(unitCode, defaultValue)

 

Возвращает международное буквенное обозначение единицы измерения по ее коду (unitCode).

 

Если единицы измерения с указанным кодом нет, то возвращается значение по умолчанию – defaultValue.

ico_formula: GetUnitInternationalLiteralDesignation(GetPropertyUnit(this, '@MACC', ''), '')

 

Вернет международное буквенное обозначение единицы измерения свойства Масса, принадлежащего объекту, к которому применена формула.

GetUnitLiteralDesignation(unitCode, defaultValue)

 

Возвращает национальное буквенное обозначение единицы измерения по ее коду (unitCode).

 

Если единицы измерения с указанным кодом нет, то возвращается значение по умолчанию – defaultValue.

ico_formula: GetUnitLiteralDesignation(GetPropertyUnit(this, '@MACC', ''), '')

 

Вернет национальное буквенное обозначение единицы измерения свойства Масса, принадлежащего объекту, к которому применена формула.

GetUnitName(unitCode, defaultValue)

 

Возвращает название единицы измерения по ее коду (unitCode).

 

Если единицы измерения с указанным кодом нет, то возвращается значение по умолчанию – defaultValue.

ico_formula: GetUnitName(GetPropertyUnit(this, '@MACC', ''), '')

 

Вернет название единицы измерения свойства Масса, принадлежащего объекту, к которому применена формула.

GetViewpoints(IPropertyOwner)

 

Возвращает коллекцию представлений для указанного владельца свойств.

ico_formula: GetPropertyValue(First(GetViewpoints(this)),'@Name','')

 

Вернет наименование первого найденного представления, принадлежащего объекту (this), к которому применена формула.

GroupNumber()

 

Возвращает уникальный номер объекта, документа или представления в рамках группы.

ico_formula: GroupNumber(this)

MaxCollection(PropertyValues)

 

Возвращает наибольшее из коллекции значений.

 

Не учитывает null и пустые строки в коллекции.

 

Для чисел с плавающей запятой учитывает тип значения свойства.

Если на вход подается диапазон, то берет максимальное значение диапазона.

Если число с допуском, то берет номинальное значение.

ico_formula: MaxCollection(GetPropertyValues(GetGroupObjects(GetOwnerGroup(this)),'diameter', ''))

 

Вернет наибольшее значение свойства Диаметр для объектов текущей группы.

MinCollection(PropertyValues)

 

Возвращает наименьшее из коллекции значений.

 

Не учитывает null и пустые строки в коллекции.

 

Для чисел с плавающей запятой учитывает тип значения свойства.

Если на вход подается диапазон, то берет минимальное значение диапазона.

Если число с допуском, то берет номинальное значение.

ico_formula: MinCollection(GetPropertyValues(GetGroupObjects(GetOwnerGroup(this)),'diameter', ''))

 

Вернет наименьшее значение свойства Диаметр для объектов текущей группы.

OrderBy(collection, propertyCode)

 

Сортирует элементы коллекции collection в возрастающем порядке по значению свойства с кодом propertyCode.

ico_formula: GetPropertyValue(First(OrderBy(GetDocuments(this), '@Name')), '@Designation', '')

 

Вернет обозначение первого документа из коллекции документов объекта, отсортированной по наименованию в возрастающем порядке.

OrderByDescending(collection, propertyCode)

 

Сортирует элементы коллекции collection в убывающем порядке по значению свойства с кодом propertyCode.

ico_formula: GetPropertyValue(First(OrderByDescending((GetDocuments(this), '@Name')), '@Designation', '')

 

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

ReferenceNumber()

 

Возвращает уникальный номер объекта, документа или представления в рамках справочника.

ico_formula: ReferenceNumber(this)

VaultNumber()

 

Возвращает уникальный номер объекта, документа или представления в рамках хранилища.

ico_formula: VaultNumber(this)

Специальные функции

EvaluateFormula(‘код формулы’)

 

Возвращает значение, вычисленное по формуле с указанным кодом.

ico_formula: EvaluateFormula('box-volume')

 

Вернет значение, рассчитанное по формуле с кодом box-volume.

EvaluateParameter(‘Код формулы’, ‘Имя параметра’)

 

Возвращает значение параметра формулы с указанным кодом.

ico_formula: EvaluateParameter('box-volume', 'length')

 

Вернет значение параметра length из формулы с кодом box-volume.

Примечание

Владельцами свойств являются:

  • элемент классификации,

  • представление,

  • документ,

  • группа.

Поддерживаемые типы свойств

В формулах могут быть использованы следующие типы свойств:

  • строка (string);

  • целое число (integer);

  • число с плавающей запятой (double);

  • дата и время (datetime);

  • логическое (boolean);

  • перечислимое, перечислимое с описанием (enum);

  • множество (set);

  • RTF-текст (rtf);

  • таблица (table).

Специальные символы

  • \ – символ экранирования. Используется в строках для экранирования служебных символов или вставки символа с использованием его кода Unicode;

  • ; – применяется при использовании функции GetPropertyValue в паре с функциями GetPropertyUnit и GetOkeiCodeUnit;

  • '\r\n' – перенос на следующую строку для свойств типа RTF-текст.

Следующие специальные символы могут использоваться в формулах, вычисляющих значение свойства Обозначение в КОМПАС-3D:

  • $d — начало дроби;

  • ; — разделитель между числителем и знаменателем;

  • $ — конец дроби;

  • @/перенос строки.

Вставка значения свойства

В тексте или параметрах формулы могут использоваться конструкции, возвращающие значения свойств ПОЛИНОМ:MDM. Чтобы вставить конструкцию, выполните следующие действия.

  1. Установите курсор в нужное место формулы или в поле Вычисление нужного параметра формулы и вызовите из контекстного меню команду Взять значение свойства. Откроется окно со списком свойств, в верхней части которого находится переключатель Свойство в понятии / Свойство. Содержимое списка зависит от положения переключателя.

    ../../_images/search_switch.png

    Работа переключателя

    Свойство в понятии ico_selector_left Свойство

    Полный перечень понятий с их свойствами

    Свойство в понятии ico_selector_right Свойство

    Полный перечень свойств

  2. Установите переключатель в нужное положение:

    • Свойство в понятии – в этом случае при вычислении будут учитываться только свойства понятий объектов, собственные свойства объектов будут проигнорированы;

    • Свойство – в этом случае потребуется выбрать один из вариантов:

      • Любое свойство – при вычислении будут учитываться все свойства, однако свойство в понятии будет иметь приоритет над собственным свойством;

      • Только собственное свойство – при вычислении будут учитываться только собственные свойства объектов.

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

  4. Нажмите кнопку Выбрать.

    Если конструкция, возвращающая свойство объекта, вставлялась в формулу, то:

    • в формуле появится конструкция;

    • в список параметров будет добавлен новый параметр с конструкцией.

    Если конструкция вставлялась в параметр формулы (в параметр 1), то:

    • в поле Вычисление параметра 1 появится параметр 2;

    • в список параметров будет добавлен параметр 2 с конструкцией.

Взять значение свойства у владельца табличного свойства

Конструкция позволяет передать значение свойства объекта в ячейку его табличного свойства.

Пример

GetPropertyValue(GetTableRowOwner(this), 'c:@NameAndDescription::c:@ClassificationItem::pd:@Name', '')

Вернет в ячейку таблицы, к которой применена формула (this), наименование объекта, содержащего таблицу.

Вставка значения свойства связанного объекта

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

  1. Установите курсор в нужное место формулы или в поле Вычисление нужного параметра формулы и вызовите из контекстного меню команду Взять значение свойства связанного объекта. Откроется окно, в котором перечислены типы связей, определенные в ПОЛИНОМ:MDM.

  2. Раскройте нужную группу связей, выберите тип связей и укажите область выбора объектов (область связи), которой принадлежит объект, значение свойства которого должно быть возвращено.

  3. Нажмите кнопку Далее.

  4. Откроется окно со списком свойств, в верхней части которого находится переключатель Свойство в понятии / Свойство. Содержимое списка зависит от положения переключателя.

    ../../_images/search_switch.png

    Работа переключателя

    Свойство в понятии ico_selector_left Свойство

    Полный перечень понятий с их свойствами

    Свойство в понятии ico_selector_right Свойство

    Полный перечень свойств

  5. Установите переключатель в нужное положение:

    • Свойство в понятии – в этом случае при вычислении будут учитываться только свойства понятий объектов, собственные свойства объектов будут проигнорированы;

      В этом случае будет доступна опция Только свойства понятий выбранной области, которая позволяет отобразить только те понятия, которые были указаны для выбранной области связи при создании типа связи.

    • Свойство – в этом случае потребуется выбрать один из вариантов:

      • Любое свойство – при вычислении будут учитываться все свойства, однако свойство в понятии будет иметь приоритет над собственным свойством;

      • Только собственное свойство – при вычислении будут учитываться только собственные свойства объектов.

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

  7. Нажмите кнопку Выбрать.

    Если конструкция, возвращающая свойство объекта, вставлялась в формулу, то:

    • в формуле появится конструкция;

    • в список параметров будет добавлен новый параметр с конструкцией.

    Если конструкция вставлялась в параметр формулы (в параметр 1), то:

    • в поле Вычисление параметра 1 появится параметр 2;

    • в список параметров будет добавлен параметр 2 с конструкцией.

Взять значение свойства связанного объекта у связанного объекта

Данная конструкция позволяет получить значение свойства объекта, с которым связан связанный объект.

На рисунке выше показан пример, в котором конструкция возвращает значение свойства 3 объекта 3 для вычисления одного из параметров свойства 1 объекта 1. При этом объект 1 связан с объектом 3 через объект 2.

Чтобы вставить конструкцию, выполните следующие действия.

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

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

  3. Выберите область связи, которой принадлежит связанный объект у связанного объекта.

  4. Откроется окно со списком свойств, в верхней части которого находится переключатель Свойство в понятии / Свойство. Содержимое списка зависит от положения переключателя.

    ../../_images/search_switch.png

    Работа переключателя

    Свойство в понятии ico_selector_left Свойство

    Полный перечень понятий с их свойствами

    Свойство в понятии ico_selector_right Свойство

    Полный перечень свойств

  5. Установите переключатель в нужное положение:

    • Свойство в понятии – в этом случае при вычислении будут учитываться только свойства понятий объектов, собственные свойства объектов будут проигнорированы;

      В этом случае будет доступна опция Только свойства понятий выбранной области, которая позволяет отобразить только те понятия, которые были указаны для выбранной области связи при создании типа связи.

    • Свойство – в этом случае потребуется выбрать один из вариантов:

      • Любое свойство – при вычислении будут учитываться все свойства, однако свойство в понятии будет иметь приоритет над собственным свойством;

      • Только собственное свойство – при вычислении будут учитываться только собственные свойства объектов.

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

  7. Нажмите кнопку Выбрать.

    Если конструкция, возвращающая свойство объекта, вставлялась в формулу, то:

    • в формуле появится конструкция;

    • в список параметров будет добавлен новый параметр с конструкцией.

    Если конструкция вставлялась в параметр формулы (в параметр 1), то:

    • в поле Вычисление параметра 1 появится параметр 2;

    • в список параметров будет добавлен параметр 2 с конструкцией.

Вставка значения свойства связи

Данная конструкция возвращает значение свойства связи, установленной между объектами.

Чтобы вставить конструкцию, выполните следующие действия.

  1. Установите курсор в нужное место формулы или в поле Вычисление нужного параметра формулы и вызовите из контекстного меню команду Взять значение свойства связи.

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

  3. Нажмите кнопку Далее.

  4. Откроется окно со списком свойств, в верхней части которого находится переключатель Свойство в понятии / Свойство. Содержимое списка зависит от положения переключателя.

    ../../_images/search_switch.png

    Работа переключателя

    Свойство в понятии ico_selector_left Свойство

    Полный перечень понятий с их свойствами

    Свойство в понятии ico_selector_right Свойство

    Полный перечень свойств

  5. Установите переключатель в нужное положение:

    • Свойство в понятии – в этом случае при вычислении будут учитываться только свойства понятий объектов, собственные свойства объектов будут проигнорированы;

      В этом случае будет доступна опция Только свойства понятий выбранной области, которая позволяет отобразить только те понятия, которые были указаны для выбранной области связи при создании типа связи.

    • Свойство – в этом случае потребуется выбрать один из вариантов:

      • Любое свойство – при вычислении будут учитываться все свойства, однако свойство в понятии будет иметь приоритет над собственным свойством;

      • Только собственное свойство – при вычислении будут учитываться только собственные свойства связи.

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

  7. Нажмите кнопку Выбрать.

    Если конструкция, возвращающая свойство объекта, вставлялась в формулу, то:

    • в формуле появится конструкция;

    • в список параметров будет добавлен новый параметр с конструкцией.

    Если конструкция вставлялась в параметр формулы (в параметр 1), то:

    • в поле Вычисление параметра 1 появится параметр 2;

    • в список параметров будет добавлен параметр 2 с конструкцией.

Вставка значения свойства документа

В тексте или параметрах формулы могут использоваться конструкции, которые возвращают свойство документа, связанного с объектом. Если с объектом связано несколько документов, возвращается свойство первого документа.

Чтобы вставить конструкцию, выполните следующие действия.

  1. Установите курсор в нужное место формулы или в поле Вычисление нужного параметра формулы и вызовите из контекстного меню команду Взять значение свойства документа. Откроется окно со списком свойств, в верхней части которого находится переключатель Свойство в понятии / Свойство. Содержимое списка зависит от положения переключателя.

    ../../_images/search_switch.png

    Работа переключателя

    Свойство в понятии ico_selector_left Свойство

    Полный перечень понятий с их свойствами

    Свойство в понятии ico_selector_right Свойство

    Полный перечень свойств

  2. Установите переключатель в нужное положение:

    • Свойство в понятии – в этом случае при вычислении будут учитываться только свойства понятий документа, собственные свойства будут проигнорированы;

    • Свойство – в этом случае потребуется выбрать один из вариантов:

      • Любое свойство – при вычислении будут учитываться все свойства, однако свойство в понятии будет иметь приоритет над собственным свойством;

      • Только собственное свойство – при вычислении будут учитываться только собственные свойства документа.

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

  4. Нажмите кнопку Выбрать.

    Если конструкция, возвращающая свойство объекта, вставлялась в формулу, то:

    • в формуле появится конструкция;

    • в список параметров будет добавлен новый параметр с конструкцией.

    Если конструкция вставлялась в параметр формулы (в параметр 1), то:

    • в поле Вычисление параметра 1 появится параметр 2;

    • в список параметров будет добавлен параметр 2 с конструкцией.

Вставка значения свойства документа связанного объекта

В тексте или параметрах формулы могут использоваться конструкции, которые возвращают свойство документа, принадлежащего связанному объекту. Чтобы вставить конструкцию, выполните следующие действия.

  1. Установите курсор в нужное место формулы или в поле Вычисление нужного параметра формулы и вызовите из контекстного меню команду Взять значение свойства документа у связанного объекта. Откроется окно, в котором перечислены типы связей, определенные в ПОЛИНОМ:MDM.

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

  3. Нажмите кнопку Далее.

  4. Откроется окно со списком свойств, в верхней части которого находится переключатель Свойство в понятии / Свойство. Содержимое списка зависит от положения переключателя.

    ../../_images/search_switch.png

    Работа переключателя

    Свойство в понятии ico_selector_left Свойство

    Полный перечень понятий с их свойствами

    Свойство в понятии ico_selector_right Свойство

    Полный перечень свойств

  5. Установите переключатель в нужное положение:

    • Свойство в понятии – в этом случае при вычислении будут учитываться только свойства понятий документа, собственные свойства будут проигнорированы;

    • Свойство – в этом случае потребуется выбрать один из вариантов:

      • Любое свойство – при вычислении будут учитываться все свойства, однако свойство в понятии будет иметь приоритет над собственным свойством;

      • Только собственное свойство – при вычислении будут учитываться только собственные свойства документа.

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

  7. Нажмите кнопку Выбрать.

    Если конструкция, возвращающая свойство объекта, вставлялась в формулу, то:

    • в формуле появится конструкция;

    • в список параметров будет добавлен новый параметр с конструкцией.

    Если конструкция вставлялась в параметр формулы (в параметр 1), то:

    • в поле Вычисление параметра 1 появится параметр 2;

    • в список параметров будет добавлен параметр 2 с конструкцией.

Вставка уникального номера объекта

В тексте или параметрах формулы могут использоваться конструкции, которые возвращают уникальный номер объекта. Чтобы вставить конструкцию, выполните следующие действия.

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

  2. Выберите Контекст, из которого будет взят уникальный номер:

    • Хранилище;

    • Справочник;

    • Каталог;

    • Группа.

  3. Выберите тип значения номера.

    • Числовой – уникальный номер объекта будет представлен в виде числа;

    • Строковый – уникальный номер будет представлен в виде строки.

    При выборе варианта Строковый появятся дополнительные поля, в которые введите:

    • в поле Префикс – префикс строки;

    • в поле Кол-во символов – число, которое будет обозначать минимальное количество символов в уникальном номере, записанное в строке; если в номере большее количество символов, он будет записан полностью, если меньшее, то вместо недостающих символов будут подставлены нули;

    • в поле Суффикс – суффикс строки.

    Пример сформированной строки будет показан в нижней части окна. Для обновления примера после ввода значений в какое-либо поле щелкните мышью в соседнем поле.

  4. Нажмите кнопку Вставить. Конструкция, возвращающая уникальный номер объекта, будет вставлена в текст формулы или в поле Вычисление параметра.

    ../../_images/insertnumberobj.png

Вставка кода свойства

В тексте или параметрах формулы могут использоваться коды свойств ПОЛИНОМ:MDM. Чтобы вставить код свойства, выполните следующие действия.

  1. Установите курсор в нужное место формулы или в поле Вычисление нужного параметра формулы и вызовите из контекстного меню команду Вставить код свойства. Откроется окно со списком свойств, в верхней части которого находится переключатель Свойство в понятии / Свойство. Содержимое списка зависит от положения переключателя.

    ../../_images/search_switch.png

    Работа переключателя

    Свойство в понятии ico_selector_left Свойство

    Полный перечень понятий с их свойствами

    Свойство в понятии ico_selector_right Свойство

    Полный перечень свойств

  2. Установите переключатель в нужное положение:

    • Свойство в понятии – в этом случае при вычислении будут учитываться только свойства понятий объектов, собственные свойства объектов будут проигнорированы;

    • Свойство – в этом случае потребуется выбрать один из вариантов:

      • Любое свойство – при вычислении будут учитываться все свойства, однако свойство в понятии будет иметь приоритет над собственным свойством;

      • Только собственное свойство – при вычислении будут учитываться только собственные свойства объектов.

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

  4. Нажмите кнопку Выбрать.

    Если конструкция, возвращающая свойство объекта, вставлялась в формулу, то:

    • в формуле появится конструкция;

    • в список параметров будет добавлен новый параметр с конструкцией.

    Если конструкция вставлялась в параметр формулы (в параметр 1), то:

    • в поле Вычисление параметра 1 появится параметр 2;

    • в список параметров будет добавлен параметр 2 с конструкцией.

Вставка кода области выбора объектов

Если значение свойства зависит от свойств связанных объектов, то в тексте или параметрах формулы могут использоваться коды областей выбора объектов.

Чтобы вставить код области выбора объектов, выполните следующие действия.

  1. Установите курсор в нужное место формулы или в поле Вычисление нужного параметра формулы и вызовите из контекстного меню команду Вставить код области связи. Откроется окно со списком типов связей, определенных в ПОЛИНОМ:MDM. Типы связей сгруппированы по справочникам.

  2. Откройте нужный справочник, найдите тип связи и укажите область выбора объектов, код которой нужно вставить. Для облегчения поиска можно воспользоваться фильтром.

  3. Нажмите кнопку Вставить.

    Если код области выбора объектов вставлялся в формулу, то:

    • в формуле появится параметр с кодом;

    • в список параметров будет добавлен новый параметр с кодом.

    Если код области выбора объектов вставлялся в параметр формулы (в параметр 1), то:

    • в поле Вычисление параметра 1 появится параметр 2;

    • в список параметров будет добавлен параметр 2 с кодом выбранной области выбора объектов.