Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как делать простые математические действия на языке json?

А.С. Знаток (279), на голосовании 1 год назад
В амосрм используется json, есть два поля числовых, как сделать чтобы в третьем поле выводился именно результат действий? получилось сделать только вывести само действие, для примера умножение, на картинке результат и как это в коде сделано. Пытался искать подробности, нашел только функцию calculated, которая вроде и делает что нужно "Нужно ли попытаться посчитать значение этого кастомного поля по формуле" но видимо что-то не так с типом полей или данных, в программировании ноль, хотя по примеру смогу разобраться. Можно ли вообще решить мою задачу и как будет правильно?
Голосование за лучший ответ
Night Prowler Мудрец (15236) 1 год назад
JSON - не язык, а формат представления данных. То, что некоторые программы закладывают формулы в структуры данных не делает его языком. Так же лекция по математике в формате MPEG4 не делает формат MPEG4 научным
Даниил Хлыбов Знаток (474) 1 год назад
На JSON нет возможности выполнять операции, в том числе, математические. Изменить JSON файл можно с помощью HTTP запросов на JavaScript

`//Получение данных
fetch(' https://jsonplaceholder.typicode.com/posts/1 ')
.then(response => response.json())
.then(json => console.log(json)) //{userId: 1, id: 1, title: "sunt aut facere repellat provident occaecati excepturi optio reprehenderit", body: "quia et suscipit↵suscipit recusandae consequuntur …strum rerum est autem sunt rem eveniet architecto"})
//Замена данных
fetch(' https://jsonplaceholder.typicode.com/posts ', {
method: 'POST',
body: JSON.stringify({
title: 'foo',
body: 'bar',
userId: 1,
}),
headers: {
'Content-type': 'application/json; charset=UTF-8',
},
})
.then((response) => response.json())
.then((json) => console.log(json)); //{title: "foo", body: "bar", userId: 1, id: 101}
//Изменение данных
fetch(' https://jsonplaceholder.typicode.com/posts/1 ', {
method: 'PUT',
body: JSON.stringify({
title: 'foo',
body: 'bar',
userId: 1,
number: 3,
}),
headers: {
'Content-type': 'application/json; charset=UTF-8',
},
})
.then((response) => response.json())
.then((json) => console.log(json)); //{title: "foo", body: "bar", userId: 1, number: 3, id: 1}
`
Dimon petrags Профи (504) 1 год назад
Для того, чтобы вычислить результат действия между двумя числовыми полями и записать его в третье поле, вы можете использовать JavaScript.

Пример кода для умножения двух числовых полей:

var field1 = Number(getField("field1").value);
var field2 = Number(getField("field2").value);
var result = field1 * field2;
this.getField("result").value = result;

В amoCRM вы можете вставить этот код в скрипты, добавленные к форме сделки.
  1. Перейдите в раздел "Настройки" -> "Разработчикам" -> "JS-скрипты".
  2. Нажмите кнопку "Добавить скрипт".
  3. В поле "Код" вставьте указанный выше код JavaScript.
  4. Укажите, на какую форму сделки должен применяться скрипт, например, "Форма добавления сделки".
  5. Сохраните скрипт.

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