Разработаны новые функции :

  1. Формула recalc является простой оберткой, сама по себе никаких действий не выполняет. Однако, внутри нее можно указать любую другую формулу, она, в свою очередь, выполнится.
    Recalc помечает свой объект: если изменится один из его потомков, то при сохранении этого потомка, пересохранится и текущий объект.
  2. Формула comment позволяет создавать дочерние объекты, если в текущем объекте заполнено отслеживаемое поле.
  3. Формула sumwhere Используется для вычисления суммы по определенному полю у детей текущего объекта по условию.
  4. Формула autoincriment([Поле]) - устанавливает автоинкримент по каждому значению указанного поля.
  5. Выражение ifchange2 копирует значение в поле только если производились изменения с объектом.

 

Разработаны новые функции :

1) Формула recalc является простой оберткой, сама по себе никаких действий не выполняет. Однако, внутри нее можно указать любую другую формулу, она, в свою очередь, выполнится.
Recalc помечает свой объект: если изменится один из его потомков, то при сохранении этого потомка, пересохранится и текущий объект.
Пример:
В контрагенте есть поля Сумма приходСумма расходБаланс со следующими формулами.

Сумма приход - сумма всех приходов по движениям денег этого контрагента

Сумма расход - сумма всех расходов по движениям денег этого контрагента

Баланс - разница Сумма приход - Сумма расход

Формула recalc([Сумма приход]-[Сумма расход]) на поле Баланс позволит при любом изменении движения денег пересчитать баланс контрагента. 

2) Формула comment позволяет создавать дочерние объекты, если в текущем объекте заполнено отслеживаемое поле.
Например: В задачах создается поле «Комментарий в действие». На него формула comment(…). Теперь при сохранении задачи, если в поле «Комментарий в действие» есть какое-то значение, то в эту задачу будет создано действие с текстом из поля «Комментарий в действие».
Синтаксис: comment(Link;BrwSettingId;FieldA1 = [FieldB1]; FieldA2 = [FieldB2]…)

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

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

FieldA - поле дочерней таблицы, в которое запишется значение. В примере выше это было бы поле «Что сделано» в действиях.

FieldB - поля в родительской таблице.

Пример использования: В задачах на поле «Комментарий в действие» создана формула comment(WorkTask;2261327734000;WorkDescription = [Kommentarij_v_dejstvie2261290127000]; Duration = 0,2). На форме задач создана кнопка, которая открывает простое окно задачи для оценки


В текстовое поле действия «Что сделано» (WorkDescription ) запишется комментарий(который на скрине в поле «Комментарий»(Kommentarij_v_dejstvie2261290127000)), в числовое поле «Затрачено, час»(Duration) - время 0,2 часа. В настройке с идентификатором 2261327734000 указаны все необходимые к заполнению поля для действий(Автор, Дата и т.д.).
Результатом будет действие с комментарием в оцениваемой задаче.

3) Формула sumwhere Используется для вычисления суммы по определенному полю у детей текущего объекта по условию. Например,в задачи из таблицы Действия взять значение поля Часы, только если Автор = Петров.


Синтаксис:
sumwhere ([Имя линка на таблицу потомка];[Поле в таблице потомке];Фильтруемое поле = OId)

4) Формула autoincriment([Поле]) - устанавливает автоинкримент по каждому значению указанного поля

autoincriment([Nasha_kompanija4166195000])- Автономер внутри каждой Нашей компании

5) Выражение ifchange2 копирует значение в поле только если производились изменения с объектом.
Синтаксис: ifchange2([Поле со значением], Наблюдаемое поле 1, Наблюдаемое поле 2, Наблюдаемое поле 3…)
Поле со значением - именно из этого поля будет копироваться значение, если изменилось значение хотя бы одного из наблюдаемых полей - Наблюдаемое поле 1Наблюдаемое поле 2Наблюдаемое поле 3.
Количество наблюдаемых полей может быть 1 или больше. 

ifchange2(format({0} {1}/{2:yyyy} {3});([Наша компания].[Шифр],[Автономер НК],[Дата документа],[Тип документа].[Шифр]),[Автономер НК])

format({0} {1}/{2:yyyy} {3});([Наша компания].[Шифр],[Автономер НК],[Дата документа],[Тип документа].[Шифр])- поле значение
[Автономер НК]) – наблюдаемое поле