6.6. Формулы
Last updated
Last updated
В настоящем разделе приведена информация об инструментах, с помощью которых в JetCalc создаются, модифицируются и отлаживаются формулы. Описание синтаксиса формул приведено в разделе 4.1.
В JetCalc по цели назначения формулы можно разделить на следующие группы, использующие один и тот же синтаксис:
Для расчета значений ячеек для формульных строк или колонок.
Для расчета агрегатных значений на уровне суммовых строк или сводных отчетов по нескольким объектам учета.
Для предварительного расчета в форме ввода значений первичных ячеек с последующим сохранением полученных значений в базе данных для их использования в отчетах без необходимости вычисления значений этих ячеек при каждом открытии или обновлении отчета (так называемая автопрокачка).
При создании формул необходимо учитывать следующие особенности расчетной системы JetCalc:
Формулы строк вне зависимости от цели их назначения, используются расчетной системой вне зависимости от контекста вычисления формул (документ, объект учета, год, период).
Динамические формулы колонок настраиваются пользователем JetCalc и применяются расчетной системой вне зависимости от контекста вычисления формул (документ, объект учета, год, период). Поэтому при изменении динамической формулы колонки в одном документе одновременно изменятся формулы этой колонки и во всех других документах.
Формулы колонок для расчета агрегатов и формулы автопрокачки определяются пользователем JetCalc и применяются расчетной системой в контексте каждого отдельного документа. Поэтому изменения формул агрегатов и формул автопрокачки в одном документе не затрагивают соответствующие формулы в других документах.
Формулы объектов учета определяются на уровне объектов учета и используются расчетной системой вне зависимости от контекста вычисления формул (документ, объект учета, год, период).
Практически любая формула может быть определена или изменена в настройках документа в разделе Формула на вкладках Настройка строк или Настройка колонок. Возможность редактирования документа определяется привилегией Настройка документа.
Внешний вид панели настройки формул строк представлен на следующем рисунке:
Внешний вид панели настройки формул колонок представлен на следующем рисунке:
Как видно из представленных выше рисунков, обе панели очень похожи и имеют набор общих элементов:
Колонку Теги, в которой определяются теги строк.
Колонки с различными видами формул.
Переключатель активности формул, с помощью которого можно временно отключить ту или иную формулу.
Признак Вместо формулы агрегации указывает расчетчику, что при вычислении сводных показателей по нескольким объектам учета применять формулу строки вместо используемой по умолчанию функции суммирования.
Кроме того, панель настройки формул строк имеет следующие специфические элементы:
Колонки Формула с года и Формула до года, которые определяют отчетные годы, в которых вместо ввода первичных значений применяются динамические формулы.
Признак Виртуальная колонка определят признак виртуальной колонки (в будущих версиях настройка этого атрибута будет доступна только из административной панели).
По двойному щелчку по ячейке в колонке, предназначенной для ввода или редактирования формулы, открывается редактор формул, внешний вид которого представлен на следующем рисунке:
В центральной части редактора расположено поле ввода и редактирования формул. В правой части расположены атрибуты контекста вычисления ячейки (строка, колонка, период, год, объект учета, документ, валюта). В нижней части расположена информационная панель, в которой вводится сообщение об ошибке или Ok в случае правильности введенной формулы.
Примечание: формулы колонок также могут быть определены в панели администратора в разделе Колонки - Колонки. Кроме того, формулы объектов учета могут быть определены только в панели администратора в разделе Объекты учета - Объекты учета.
Настройка тегов, с помощью которых можно изменять логику вычисления формул и определять контекстные параметры объектов учета, выполняется в диалоговом окне, вызываемом по двойному щелчку по полю Теги для нужной строки или колонки.
Внешний вид диалогового окна настройки тегов представлен на следующем рисунке
Для каждой строки или колонки можно установить один или несколько тегов. Теги опционально могут содержать строковые или числовые значения. При нажатии на Добавить ссылку в диалоговом окне в существующий список добавляется новая запись, в которой из выпадающего списка необходимо выбрать нужный тег и установить для него значение.
Список доступных тегов устанавливается в административной панели в разделе Справочники - Теги. В этом справочнике для каждого тега помимо кода и наименования также устанавливается контекст использования тега. Теги могут определяться в следующих контекстах:
в строках
в колонках
в объектах учета
в типах объектов учета
в группах объектов учета, используемых для фильтрации
После настройки формул в контексте текущего документа доступны следующие инструменты для анализа формул:
Строка формул, расположенная над заголовком документа и видимая всегда
Отладчик формул, вызываемый по щелчку правой кнопки мыши выбора из контекстного меню пункта Отладка.
Внешний вид строки формул представлен на следующем рисунке:
В приведенном примере строк формул содержит следующую информацию:
FRM $m1202210@OTKLPLAN.P12.Y2017#202? : @VAL?-@PLANMES? = -30, где
FRM
- тип ячейки
$m1202210@OTKLPLAN.P12.Y2017#202?
- полный синтаксис кода ячейки
@VAL?-@PLANMES?
- исходная формула (в данном примере колонки)
-30
- рассчитанное по формуле значение
В строке формул идентифицируются следующие типы ячеек:
PRM - первичная ячейка со значением из базы данных
FRM - динамическая формула
AF - форумла автопрокачки
SUM - ячейка с формулой расчета суммы до дочерним строкам
HRD - не вычисляемая ячейка
Для более подробного анализа алгоритма вычисления значения ячейки используется отладчик ячеек, внешний вид которого представлен на следующем рисунке:
На представленном рисунке помимо описанного выше редактора формул справа содержится дополнительная информация о контексте выполнения ячеек, а внизу - разложенная до первичных значений формула, содержащаяся в редакторе формул.
Помимо собственного вывода значений отладчик позволяет динамически изменять контекст расчета формулы и вычислять значение по формуле в новом контексте при нажатии на кнопку с зеленым треугольником.
При большой длине разложенной формулы отладчик ячеек позволят срывать лишние значения, оставляя только рассчитанные промежуточные результаты. В этом случае вместо зеленого цвета прямоугольник с кодом закрашивается синим цветом.
Следует обратить внимание, что в развернутом представлении формул приводятся усеченные представления кодов ячеек, содержащие только те элементы, значения которых отличаются от контекста ячейки.
В связи с большой распространенностью операции суммирования в экономических расчетах для них разработан специальный интерфейс, ускоряющий настройку дерева строк документа и обеспечивающие автоматическую пересборку формул суммирования при добавлении или удалении строк в документе. В этом интерфейсе процесс написания длинных формул суммирования заменен на установку крыжей и суммовых меток в определенных местах, на основании которых расчетная система JetCalc самостоятельно генерирует формулы строк.
Панель для настройки формул суммирования расположена в разделе Суммирование на вкладке Настройка строк, внешний вид которой представлен на следующем рисунке:
На представленном рисунке видны следующие атрибуты, которые можно установить для каждой строки в дереве срок документа:
Сумма - признак расчета суммы для текущей строки по всем дочерним строкам;
Суммовые метки - поле для определения у текущей строки одной или несколько суммовых меток;
Исключить из суммы - признак исключения текущей строки из суммы родительской строки;
Минус - признак включения текущей строки в сумму родительской строки со знаком минус;
Кроме вышеперечисленных на текущей вкладке присутствуют следующие атрибуты, которые в будущих версиях системы будут перенесены в другое место.
Приоритет колонки - отмена приоритета расчета формулы строки, установленного на уровне колонки;
Использовать группы продукции (экспериментальный функционал).
В JetCalc помимо очевидного механизма суммирования значений по дочерним строкам реализован расширенный механизм суммирования с использованием суммовых меток по строкам всех документов.
У каждой строки может быть установлена одна или несколько суммовых меток, как это видно на следующем рисунке:
Установка для строк суммовых меток выполняется аналогично установке тегов, за исключением того, что у суммовой метки не может быть значения. Справочник суммовых меток настраивается в административной панели в разделе Справочники - Суммовые метки.
Суммовые метки могут устанавливаться только у строк, которые не имеют дочерних строк. В зависимости от наличия атрибута Сумма строки с суммовыми метками могут выступать в одной из двух ролей:
Без метки Сумма - строки, содержащие исходные данные.
С меткой Сумма - суммовые строки, в которых вычисляется сумма по всем первичным строкам всех документов, у которых одна или несколько суммовых меток совпадает с одной из суммовых меток, устнановленных для суммовой строки.
Расчетная система JetCalc прокачку значений по настроенным формулам автопрокачки выполняет в следующей последовательности:
В первую очередь прокачиваются значения текущего документа в текущем отчетном периоде. Если документ имеет детализацию по дочерним объектам учета, то прокачиваются все дочерние объекты учета в произвольном порядке. Не требует дополнительной настройки.
Во вторую очередь прокачиваются значения связанных документов в текущем отчетном периоде. Требует дополнительной настройки.
В третью очередь после прокачки каждого связанного документа запускается прокачка данных по связанным периодам. Требует дополнительной настройки.
Последовательность прокачки связанных документов настраивается в административной панели в разделе Транзакции > Связи документов. Внешний вид панели представлен на следующем рисунке:
Для настройки автоматической прокачки по связанным документам необходимо указать следующие обязательные параметры:
Документ-источник - документ, который выступает инициатором вызова прокачки значений в связанном документе;
Документ-назначение - документ, в котором выполняется прокачка при изменении значений в документе-источнике в одной или нескольких колонках-источниках;
Прокачка значений - признак, включающий прокачку значений по настроенной связи между документами;
Колонка-источник - колонка в документе-источнике, при изменении значений в которой выполняется автоматическая прокачка в документе-назначении.
Следующие параметры позволяют ограничить область применения связей между документами:
Группа-источник - документы-источники могут выступать инициаторами прокачки только для объектов учета,входящих в группу-источник;
Группа-назначение - документы-назначения прокачиваются только для объектов учета, которые входят в группу-назначение;
Группа периодов - прокачка выполнять только для отчетных периодов, которые входят в группу периодов.
Следующие атрибуты применяются только к бизтран-документам, описание которых приведено в разделе Прокачка данных в бизтран-документах:
Настройка структуры документа - автоматическая генерация структуры связанного бизтран-документа
Внешняя связь - наличие в структуре бизтран-документов контрагентов, не входящих в группу компаний;
Зеркалировать контрагентов - при автоматической генерации структуры связанного бизтран-документа менять местами объект учета и контрагента;
Включить формулы автопрококачки - эспериментальная функция;
Формула автопрокачки - эспериментальная функция;
Колонка-назначение - эспериментальная функция.
Последовательность прокачки данных текущего документа по связанным периодам настраивается в административной панели в разделе Периоды > Автопрокачка периодов. Внешний вид панели представлен на следующем рисунке:
Для настройки автоматической прокачки по связанным периодам необходимо добавить период, при изменении значений в котором выполняются прокачки в других связанных с ним периодах, установив для него перечень периодов, в которых будет выполняться автопрокачка, с указанием последовательности таких вызовов (индексов).