# Доступ к текущему объекту

## Массив "entity"

Используя [Liquid](https://knopki-docs.nirguna.ru/ispolzovanie-prilozheniya/deistviya/liquid) вы можете получить доступ к текущему объекту (например, к заказу покупателя, если вы делаете кнопку в "Заказах покупателей"), используя массив `{{ entity }}`. С английского **entity** переводится как "**объект"** или "**сущность"**.&#x20;

![Иллюстрация того, чем является entity в МоёмСкладе](https://1887460377-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MQpb1yKZHVTuEYrUbAG%2F-M_eZjsr08XFzJlNgURC%2F-M_eiSVanTY8ausEqTu_%2F2.png?alt=media\&token=76f95e79-3f14-4cc4-96cb-246d34623899)

В МоёмСкладе **entity** - это какой-то объект в целом. Например, на скриншоте выше объектом является документ "Заказ покупателя". Объект всегда состоит из каких-то отдельных частей. Например, в документе "Заказ покупателя" есть его название/номер, дата, организация, контрагент и др. поля. И Liquid хранит это всё в одноименном массиве `{{ entity }}`.&#x20;

### Доступ к определенным полям

Как было сказано выше, **entity** - это объект в целом. Но для рабочих процессов нужны значения из определенных полей. И чтобы получить к ним доступ в Liquid используется специальная форма записи: **{{ массив.значение }}**. Например, чтобы получить **название** документа, требуется написать:

```
{{ entity.name }}
```

![](https://1887460377-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MQpb1yKZHVTuEYrUbAG%2F-M_eZjsr08XFzJlNgURC%2F-M_esAP-8lDc5CqQuz-D%2F3.png?alt=media\&token=6c76cbf1-67af-4176-a7fa-4e396208446d)

### Работа с данными из полей

Но мало получить данные из какого-то поля, как правило с ними требуется сделать какие-то действия, и потом показать в МоёмСкладе. Для этого используются переменные. Например запишем название документа в `var1`

```
{% capture var1 %}{{ entity.name }}{% endcapture %}
```

{% hint style="warning" %}
Для передачи данных требуется использовать переменные, описанные в разделе "[Работа с переменными](https://knopki-docs.nirguna.ru/ispolzovanie-prilozheniya/rabota-s-peremennymi)"
{% endhint %}

И просто выведем его как сообщение сотруднику

![Создаем кнопку для вывода номера заказа](https://1887460377-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MQpb1yKZHVTuEYrUbAG%2F-M_eZjsr08XFzJlNgURC%2F-M_f5mBJK18Txshldyvf%2F4.png?alt=media\&token=5505f42b-7d26-461f-8612-a4d052cdffac)

В интерфейсе это будет выглядеть так:

![Пример работы только что созданной кнопки](https://1887460377-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MQpb1yKZHVTuEYrUbAG%2F-M_eZjsr08XFzJlNgURC%2F-M_fG9lCwAwVCc5m25kA%2F8.png?alt=media\&token=2102e190-c0f2-4838-a103-d58e780a60df)

{% hint style="danger" %}
Обратите внимание, что пример ниже не сработает! Поскольку к`{{ entity.name }}` можно обратиться только в окне для ввода Liquid кода! Поэтому требуется использовать переменные, как описано в примере выше.
{% endhint %}

![Пример неправильного создания кнопки!](https://1887460377-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MQpb1yKZHVTuEYrUbAG%2F-M_eZjsr08XFzJlNgURC%2F-M_fBxnFFWjHneyGZu4v%2F5.png?alt=media\&token=f30206e0-eacc-476c-9312-da979a7a1040)

### Состав массива "entity"

Выше мы рассматривали только один объект - заказ покупателя, и только одно его значение - **name**. Но таких объектов в МоёмСкладе много, и у каждого из них свой набор значений. Какие-то могут повторяться (значение **name**, например, есть у всех объектов), а какие-то могут быть только лишь у одного объекта.&#x20;

Примеры значений:

* name - наименование
* description - описание/комментарий
* code - код (товара/контрагента)
* sum - сумма
* created - момент создания сущности
* updated - момент последнего обновления сущности
* article - артикул
* email - адрес электронной почты
* phone - номер телефона
* attributes - массив доп. полей
* firstName - имя
* middleName - отчество
* lastName - фамилия

Полную структуру объектов и их значений можно узнать в [МойСклад API 1.2](https://dev.moysklad.ru/doc/api/remap/1.2/dictionaries/#suschnosti).

### Дополнительные поля

В МоёмСкладе есть встроенные поля (как на первом скриншоте, например, "**организация**", "**контрагент**" и т.д.), а так же есть возможность добавить собственные. Например, в заказах покупателей создадим доп. поле "**накладная СДЭК**", куда будем писать трек-номер. Как же к нему теперь обратиться через Liquid?

Все доп. поля в МоёмСкладе называются **attribute**, и хранятся в соответствующем массиве **attributes** (который, в свою очередь, хранится в массиве **entity**). И у каждого доп. поля есть 2 свойства: **name** (название) и **value** (значение). Вот именно по ним и происходит идентификация. Код будет выглядеть вот так:&#x20;

```
{% for attribute in entity.attributes %}
 {% if attribute.name == "накладная СДЭК" %}
   {% capture var1 %}{{ attribute.value }}{% endcapture %}
 {% endif %}
{% endfor %}
```

Да, чтобы просто узнать значение из доп. поля, требуется написать такую большую конструкцию. Рассмотрим как всё работает:

* Перебираем все доп. поля в объекте &#x20;

```
{% for attribute in entity.attributes %}
    ...
{% endfor %}
```

* Если при переборе доп. полей встречаем такое, название которого совпадает с "накладная СДЭК"

```
 ...
   {% if attribute.name == "накладная СДЭК" %}
     ...
   {% endif %}
 ... 
```

* То значение этого доп. поля помещаем в переменную `var1`

```
...
  ...
    {% capture var1 %}{{ attribute.value }}{% endcapture %}
  ...
...
```

Если требуется получить не только значение доп. поля, но и его название, то просто воспользуемся уже 2-мя переменными

```
...
    {% capture var1 %}{{ attribute.name }}{% endcapture %}
    {% capture var2 %}{{ attribute.value }}{% endcapture %}
...
```

Далее просто выведем их сотруднику

![Создание кнопки](https://1887460377-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MQpb1yKZHVTuEYrUbAG%2F-M_xa3tvWlhkUkjCifiu%2F-M_xu3dO9Mn7ZUMXfyKK%2F11.png?alt=media\&token=a1bfbfce-7f8d-4a6b-ae37-3196e42fa38d)

![Результат выполнения](https://1887460377-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MQpb1yKZHVTuEYrUbAG%2F-M_xa3tvWlhkUkjCifiu%2F-M_xucYdomJLvY7e-2P0%2F12.png?alt=media\&token=19668383-7cb9-490a-84f7-6ba55a49165f)
