//Добавляем атрибуты и методы attributes: { "UsrDATE1": { //Поле куда будет записываться дата dataValueType: Terrasoft.DataValueType.DATE, //Тип поля в зависимости от типа поля UsrDATE1 dependencies: [ { columns: ["UsrDATE"], //Поле с первоначальной датой methodName: "calculatedate" } ] } }, methods: { calculatedate: function() { var D6 = this.get("UsrDATE"); //Поле с первоначальной датой if (D6) { var D7 = new Date (); D7.setDate(D6.getDate() - 14); //14 количество дней, которые нужно отнять this.set("UsrDATE1", D7); } } },
Пример метода из статьи содержит ошибку, проверяется вводом в первоначальную дату даты одного числа месяца, а затем вводом нового значения увеличенного на любое количество месяцев. Для корректного расчета используйте setTime и getTime для правильного отнимания времени в милисекундах от первоначальной даты. Обновленный сalculatedate метод прилагаю ниже сalculatedate: function() {
var D6 = this.get("AccountClosingDate"); //Поле с первоначальной датой
if (D6) {
var D7 = new Date ();
D7.setTime(D6.getTime() - (24*60*60*1000)); //24*60*60*1000 =1 день- количество дней, которые нужно отнять
this.set("BalanceTransferDate", D7); //Поле где меняем дату от первоначальной
this.save({isSilent: true}); //сохраняем
}
},