Алгоритмы расчета предназначены для предварительной обработки записей в полях исходных данных, таблиц связанной базы данных и констант для создания значений, которые загружаются в отображаемые строки файла Microsoft Office Excel.

Чтобы получить доступ к окну редактирования алгоритма, выполните одно из следующих действий в строке с типом "Перед Чтением", "Накопление" и "После Чтения" в форме "Отчет Компоненты".

Поле Тип Выражения

В поле Тип Выражения можно ввести следующие значения.

Тип выражения — «Термин»

В поле Выражение выберите требуемый код термина из списка терминов (форма "Налог. Регистр Термин") раздела, указанного в карточке заголовка отчета. При вычислении значения термина, значение, введенное в отчет, используется как значение Дата фильтр.

Значение, созданное в этой строке, относится к десятичному типу.

Тип выражения — «Ссылка»

В поле Ссылка Регистр Но. выберите требуемый код налогового регистра в разделе, который определен в карточке заголовка отчета. В поле Выражение выберите строку из регистра, содержащего значение.

ПримечаниеПримечание

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

Если в поле Ссылка Регистр Но. значение не выбрано, будет предложено выбрать регистр, а затем выбрать строку этого регистра в поле Выражение.

Будет выбрано значение, которое соответствует значению Дата Конца. Оно совпадает с датой конца периода, введенной в отчет.

Созданное этой строкой значение относится к типу "Десятичное".

Тип выражения — «Норма»

В поле Код Юрисдикции Нормы выберите необходимый код, а затем в поле Выражение выберите требуемый код нормы.

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

Будет выбрано значение, соответствующее значению Дата Действия. Дата действия не превышает дату конца периода, введенную в отчет.

Созданное этой строкой значение относится к типу "Десятичное".

Тип выражения — «Серия»

Этот компонент используется в алгоритме "Перед Чтением" и предназначен для создания последовательных номеров в строках, создаваемых в файле Microsoft Excel.

Начальный номер последовательности указан в поле Выражение. По умолчанию его значением является 1. Каждый раз при получении из этой строки значения компонента строки Excel номер увеличивается на единицу.

Значение, созданное этой строкой, относится к типу Целое.

Тип выражения — «Текст»

В поле Выражение вводится неизменяемый текст (текстовая константа).

Значение, созданное этой строкой, относится к типу TextConst.

Тип выражения — «Поле таблицы»

В поле Ссылка Строка Но. выберите строку кода, определяющую источник данных из формы "Отчет Источники Список" (строки с типом "Таблица" или "Регистр"). В поле Выражение выберите необходимое поле Источник из формы Источник Поле для формы Компонент.

Если в поле Ссылка Строка Но. значение не выбрано, будет предложено выбрать строку с источником данных при выборе значения для поля Выражение.

  • Левая сторона этой формы содержит список строк описания алгоритма расчетов. Правая сторона содержит список полей источника. Кнопки 0, < и < позволяют перемещать поля из правой стороны в левую.

  • Кнопка << позволяет переместить все поля из правой стороны в левую.

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

  • Поля источника, перемещенные на левую сторону, отмечаются лиловым цветом.

  • Кнопка > удаляет принадлежащие источнику поля из выбранных полей с левой стороны.

  • Кнопка >> удаляет с левой стороны все поля, принадлежащие источнику.

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

Тип выражения — FlowField

Выберите поле Выражение и нажмите SHIFT+F2 или кнопку AssistEdit в поле Выражение.

В форме "Отчет FlowField Расчета" поле Таблица Но. FlowField определяет таблицу, из которой берется значение FlowField.

Поле Поле Но. FlowField определяет поле выбранной таблицы, из которого берется значение FlowField.

Если типом CalcFormula является "Сумма", то можно определить поле с классом FlowField и типом "Десятичный".

Если типом формулы расчета является «Выбор», в поле Формула расчета - индекс ключа введите ключ, используемый при выборе записи. Это значение определяется, если выбор выполняется из полей, не принадлежащих к первичному ключу таблицы. Первичный ключ таблицы используется в качестве значения по умолчанию.

Строки в нижней части таблицы предназначены для указания фильтров выбора и расчета значений.

Значение Поле должно содержать ссылку на поле в таблице FlowField.

Значение поля Тип Фильтра FlowField определяет тип источника значения применяемого фильтра согласно нижеприведенному списку.

  • Поле - значение фильтра выбирается из записи источника данных отчетов.

  • Фильтр - значение фильтра выбирается в этой строке.

  • Переменная - значение фильтра выбирается из строки алгоритма расчетов.

Значение, определяемое строками FlowField в алгоритмах расчетов, имеет тип поля, выбранный в поле Поле Но. CalcFormula.

Тип фильтра для формулы расчета — «Поле»

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

Тип фильтра для формулы расчета — «Фильтр»

Доступные варианты значения этого фильтра определяются типом фильтра, указанным в значении Поле.

  • Параметр: значение можно создать напрямую в поле Вид, нажав клавишу F6 для выбора необходимой комбинации значений. Текстовое значение созданного фильтра отображается в поле Представление параметра. Кнопка DrillDown в этом поле позволяет просматривать значения, к которым можно применить этот фильтр.

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

  • В других случаях значение фильтра в поле Option Фильтр вводится вручную.

Тип фильтра для формулы расчета — «Переменная»

Чтобы определить значение этого типа фильтра, нажмите клавишу F6 для выбора алгоритма расчетов в поле Компонент Строка ID, а затем выберите строку алгоритма расчетов в поле Переменная Строка ID для выбора значения.

Если Тип FlowField = Выбор после настройки фильтров, операцию можно просмотреть, а затем выбрать необходимое значение поля.

Если Тип FlowField = Сумма после настройки фильтров, организуется цикл выбора для всех операций, удовлетворяющих критериям фильтра. Значения полей в найденных операциях вычисляются (CALCFIELDS) и суммируются. Полученная сумма является результатом выражения FlowField.

Тип выражения — «Итог»

Этот компонент предназначен для выполнения операций со значениями, определенными в строках с типом "Итог" и другими типами выражений.

В поле Выражение можно ввести одно из следующих выражений.

  • Арифметические выражения с использованием знаков операций +, -, /, *, <>, ()

  • Логические выражения с использованием знаков операций |=OR, &=AND, ^=XOR, !=NOT, ()

  • Линейные выражения с использованием знаков операций +=конкатенация

  • Значения, указанные в поле ID Строка, используются как операнды выражений

Значения, определяемые строками "Итог", имеют следующие типы выражений:

  • Decimal, если выражение является арифметическим.

  • Boolean, если выражение является логическим.

  • Text, если выражение является текстовым.

Тип выражения — «Функция»

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

Функция Описание

COMPANYNAME()

Возвращает используемое в настоящее время имя компании.

Это значение отображается в строке текстового типа.

CURRENTDATETIME()

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

Значение, отображаемое строкой, относится к типу "DateTime".

TIME()

Возвращает текущее время, установленное в операционной системе.

Значение, определяемое этой строкой, относится к типу "Time".

TODAY()

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

Значение, определяемое этой строкой, относится к типу "Date".

USERID()

Функция USERID возвращает имя активного пользователя Microsoft Dynamics NAV.

Значение, определяемое этой строкой, относится к типу "Code".

SERIALNUMBER()

Возвращает серийный номер лицензии, используемой активным пользователем Microsoft Dynamics NAV.

Значение, определяемое этой строкой, относится к типу "Text".

COUNT()

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

Значение, определяемое этой строкой, относится к типу "Integer".

GETFILTERS()

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

Значение, определяемое этой строкой, относится к типу "Text".

GETFILTER(Field)

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

Значение, определяемое этой строкой, относится к типу определенных полей.

GETRANGEMAX(Field)

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

Значение, определяемое этой строкой, относится к типу определенных полей.

GETRANGEMIN(Field)

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

Значение, определяемое этой строкой, относится к типу определенных полей.

TABLECAPTION(Rec)

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

Значение, определяемое этой строкой, относится к типу "Text".

TABLENAME(Rec)

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

Значение, определяемое этой строкой, относится к типу "Text".

FIELDCAPTION(Field)

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

Значение, определяемое этой строкой, относится к типу "Text".

FIELDNAME(Field)

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

Значение, определяемое этой строкой, относится к типу "Text".

CALCDATE(DateFormula,Date|DateTime)

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

Значение, определяемое этой строкой, относится к типу "Date".

FORMAT(FormatString,VARIANT)

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

Значение, определяемое этой строкой, относится к типу "Text".

WRITEINFULLDATE(Date|DateTime)

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

Значение, определяемое этой строкой, относится к типу "Text".

WRITEINFULLAMOUNT(Currency,Amount)

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

Значение, определяемое этой строкой, относится к типу "Text".

MAX(VARIANT,VARIANT)

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

Значение, определяемое этой строкой, относится к типу "Выбираемое".

MIN(VARIANT,VARIANT)

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

Значение, определяемое этой строкой, относится к типу "Выбираемое".

EQU(VARIANT,VARIANT)

Возвращается результат сравнения значений.

Если значения одинаковые, возвращается результат TRUE ("ИСТИНА").

Параметры функции должны содержать ссылки на строки текущего алгоритма вычисления.

Значение, определяемое этой строкой, относится к типу "Boolean".

NOTEQU(VARIANT,VARIANT)

Возвращается результат сравнения значений.

Если значения не одинаковые, возвращается результат TRUE ("ИСТИНА").

Параметры функции должны содержать ссылки на строки текущего алгоритма вычисления.

Значение, определяемое этой строкой, относится к типу "Boolean".

LESSTHAN(VARIANT,VARIANT)

Возвращается результат сравнения значений.

Эта функция возвращает результат TRUE ("ИСТИНА"), если значение первого параметра меньше значения второго параметра.

Параметры функции должны содержать ссылки на строки текущего алгоритма вычисления.

Значение, определяемое этой строкой, имеет тип "Boolean".

NOTLESSTHAN(VARIANT,VARIANT)

Возвращается результат сравнения значений.

Эта функция возвращает результат TRUE ("ИСТИНА"), если значение второго параметра больше или равно значению первого параметра.

Параметры функции должны содержать ссылки на строки текущего алгоритма вычисления.

Значение, определяемое этой строкой, имеет тип "Boolean".

GREATERTHAN(VARIANT,VARIANT)

Возвращается результат сравнения значений.

Эта функция возвращает результат TRUE ("ИСТИНА"), если значение первого параметра больше значения второго параметра.

Параметры функции должны содержать ссылки на строки текущего алгоритма расчетов.

Значение, определяемое этой строкой, имеет тип "Boolean".

NOTGREATERTHAN(VARIANT,VARIANT)

Возвращается результат сравнения значений.

Эта функция возвращает результат TRUE ("ИСТИНА"), если значение второго параметра меньше или равно значению первого параметра.

Параметры функции должны содержать ссылки на строки текущего алгоритма вычисления.

Значение, определяемое этой строкой, относится к типу "Boolean".

SKIP(Boolean)

Если значение параметра SKIP — TRUE ("ИСТИНА"), текущая запись источника данных не используется для создания данных.

Эта функция должна использоваться только в алгоритмах расчетов, относящихся к типу "Накопление". В алгоритмах расчетов с типом "Перед Чтением" или "После Чтения" данная функция игнорируется.

В этой строке не отображается значение.

BREAK(Boolean)

Если значение параметра BREAK — TRUE ("ИСТИНА"), обработка данных текущего источника данных принудительно завершается.

Эта функция должна использоваться только в алгоритмах расчетов, относящихся к типу "Накопление" и "Перед Чтением". В алгоритмах расчетов с типом "Перед Чтением" данная функция игнорируется.

В этой строке не отображается значение.

QUIT(Boolean)

Если значение параметра QUIT — TRUE ("ИСТИНА"), создание отчета принудительно завершается.

В этой строке не отображается значение.

ERROR(Boolean,Text)

Если значение ERROR первого параметра — TRUE ("ИСТИНА"), создание отчета завершается и отображается сообщение об ошибке, которое содержит текст второго параметра.

В этой строке не отображается значение.

См. также