Кнопки
  • Главная страница
  • Установка приложения
    • Оплата
  • Использование приложения
    • Создание, назначение и редактирование кнопок
    • Удаление кнопок
    • Условия
    • Работа с переменными
    • Элементы формы
      • Особенности
      • Примеры использования
    • Действия
      • Выполнить Liquid
        • Общие понятия
        • Доступ к текущему объекту
        • Примеры использования
      • Отправить письмо SMTP
      • Отправить СМС Bytehand
      • Вызвать Webhook
        • Примеры использования
  • Готовые шаблоны
    • Создание входящего платежа и приходного ордера
    • Кнопка WhatsApp
    • Яндекс.Почта переписка с клиентом
    • Яндекс.Почта написать письмо
    • Создать перемещение из приемки
  • Использование символов
    • Подборка символов ☎️ ⏰ ⌚️
Powered by GitBook
On this page
  • Массив "entity"
  • Доступ к определенным полям
  • Работа с данными из полей
  • Состав массива "entity"
  • Дополнительные поля

Was this helpful?

  1. Использование приложения
  2. Действия
  3. Выполнить Liquid

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

PreviousОбщие понятияNextПримеры использования

Last updated 4 years ago

Was this helpful?

Массив "entity"

Используя вы можете получить доступ к текущему объекту (например, к заказу покупателя, если вы делаете кнопку в "Заказах покупателей"), используя массив {{ entity }}. С английского entity переводится как "объект" или "сущность".

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

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

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

{{ entity.name }}

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

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

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

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

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

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

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

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

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

  • name - наименование

  • description - описание/комментарий

  • code - код (товара/контрагента)

  • sum - сумма

  • created - момент создания сущности

  • updated - момент последнего обновления сущности

  • article - артикул

  • email - адрес электронной почты

  • phone - номер телефона

  • attributes - массив доп. полей

  • firstName - имя

  • middleName - отчество

  • lastName - фамилия

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

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

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

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

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

  • Перебираем все доп. поля в объекте

{% 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 %}
...

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

Для передачи данных требуется использовать переменные, описанные в разделе ""

Полную структуру объектов и их значений можно узнать в .

Работа с переменными
МойСклад API 1.2
Liquid
Иллюстрация того, чем является entity в МоёмСкладе
Создаем кнопку для вывода номера заказа
Пример работы только что созданной кнопки
Пример неправильного создания кнопки!
Создание кнопки
Результат выполнения