# Пользовательские поля

Управляет получением и установкой пользовательских полей. Имеются два зарезервированных поля - `type` и `colors`, соответствующих типа и цветности нанесения. Данные методы доступны только при использовании JavaScript API метода интеграции.

Пример:

```javascript
var o3d = new O3d(config);
o3d.on('start', function () {
    o3d.on('changeField', function (data) {
        console.log('Order fields:', o3d.getFieldsOrder());
    });

});
```

## Методы

### `getFieldsOrder([name])`

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

* `@return` *{Object|string}* - значение, если `name` указан, объект key-value если нет

### `setFieldsOrder(values[, callback])`

Задаёт значения пользовательских полей независящих от мест нанесения.

* `values` *{Object}* - ключ-значение
* `callback` *{*`function ()`*}* - функция обратного вызова

### `getFieldsArea([areaId, name])`

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

* `areaId` *{string}* - ID места нанесения
* `name` *{string}* - имя поля
* `@return` *{Object|string}*
  * если указан `areaId`, `name` - значение
  * если только `areaId` - объект key-value
  * если аргументы не указаны - объект id места => объект key-value

### `setFieldsArea(areaId[, values, callback])`

Задаёт значения пользовательских полей зависящих от мест нанесения.

* `areaId` *{string|Object}* - ID места нанесения или объект id места => объект key-value
* `values` *{Object}* - объект key-value
* `callback` *{*`function ()`*}* - функция обратного вызова

## События

### `changeField` *{Object}*

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

* `name` *{string}* - имя поля
* `value` *{string}* - новое значение поля
* `areaId` *{string}* - ID места нанесения (если поле зависит от области)

### `clickButton` *{Object}*

Генерируется при нажатии на пользовательсткую кнопку.

* `name` *{string}* - имя поля
* `value` *{string}* - новое значение поля
* `areaId` *{string}* - ID места нанесения (если поле зависит от области)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://oasiscatalog.gitbook.io/o3d/dokumentaciya/polzovatelskie-polya.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
