Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

ru:start:template_features [2016/07/01 16:26] (текущий)
admin создано
Строка 1: Строка 1:
 +===== Работа с переменными =====
 +{{ :​textfield.jpg?​nolink|}}
 +Почти все Задачи имеют поля, в которые можно вставить переменные. \\ Все текстовые поля, которые выглядят как картинка справа,​ поддерживают эту функцию.
  
 +Текстовое поле с зеленой иконкой предназначено для ввода [[ru:​выражения на языке PHP|выражения на языке PHP]]. Выражение должно возвращать результат с помощью return. \\
 +Эти выражения нужны для вычисления самых сложных значений. Если вы хотите просто подставить значение одного из полей, пожалуйста,​ используйте текстовые поля с голубой иконкой! \\
 +Простой текст приведет к ошибкам. Если вы не знаете,​ что писать,​ то не используйте это поле! \\
 +{{ :​expressionfield.png?​nolink|}}
 +
 +====== 1. Обычные переменные ======
 +
 +  $fieldname
 +
 +Этот способ использования переменных доступен для полей и с синей, и с зеленой иконкой. Вместо переменных будут подставлены значения соответствующих полей Записи,​ для которой запущен Бизнес-Процесс. Например,​ для Обращений есть $company, $lastname, $firstname, $modifiedby,​ … . Полный список возможных переменных доступен по щелчку на синей или зеленой иконке. Учтите,​ что переменные доступны только для чтения.
 +<WRAP center info 100%>
 +Внутри зеленых пользовательских функций можно создавать временные переменные,​ используя синтаксис PHP. Пользовательские переменные будут уничтожены после выполнения функции. ​
 +</​WRAP>​
 +
 +====== 2. Поля связанных записей ======
 +
 +  Поля с синей иконкой Textfields: $(contact_id:​ (Contacts) leadsource)
 +  Поля с зеленой иконкой (PHP) Textfields: $account_id->​Accounts->​tickersymbol
 + 
 +Таким образом можно получить значения полей связанных записей. Например,​ для записи из модуля Контакты можно использовать значения полей из связанного Контрагента. \\
 +Это работает только если к данному модулю привязан только один объект связанного модуля (связь 1:N). Например из Контрагента нельзя получить данные Контакта,​ так как с одним Контрагентом может быть связано несколько Контактов.
 +Все доступные поля, в том числе и поля связанных записей,​ доступны с помощью голубой/​зеленой иконки. Вам не нужно писать эти выражения самому!
 +
 +====== 3. Простые функции ======
 +
 +В синих текстовых полях доступны несколько функций для простых вычислений. \\
 +
 +Основные функции:​ \\
 +
 +**$[Now]** – вставляет текущую дату в формате (YYYY-MM-DD). В базе данных дата хранится именно в этом формате. \\
 +**$[Now,​-x]** – вставляет текущую дату -X дней в формате (YYYY-MM-DD) \\
 +**$[Now,​+x]** – вставляет текущую дату +X дней в формате (YYYY-MM-DD) \\
 +**$[Now,​0,'​d.m.Y'​]** – вставляет текущую дату в формате (DD.MM.YYYYY) [[http://​php.net/​manual/​de/​function.date.php|Подробнее]] \\
 +**$[Now,​0,'​H:​i:​s'​]** – вставляет текущее время в формате (HH:​MM:​SS)[[http://​php.net/​manual/​de/​function.date.php|Подробнее]] \\
 +**В данный момент эта возможность не позволяет изменять дату в поле! Возможна лишь текущая дата.**
 +
 +**$[entityname,​$id]** – заменяет ID записи ее названием (Название Контрагента,​ Имя и Фамилия Контакта и т.п.) \\
 +**$[dateformat,​$date,​“d.m.Y”]** – меняет формат вывода переменной типа datetime на DD.MM.YYYYY [[http://​php.net/​manual/​de/​function.date.php|Подробнее]] \\
 +**$[utctz,​$time]** - используйте эту функцию,​ когда создаете Событие и в качестве времени начала нужно использовать значение одного из полей. Это нужно, чтобы очистить время от сдвига UTC \\
 +**$[link,​$crmid]** - вставляет HTML-ссылку на Запись. В качестве текста ссылки (anchor) используются Название Записи\\
 +**$[round,​$number,​$decimals]** - округлить число $number до $decimals десятичных знаков после запятой \\
 +
 +<WRAP center info 100%>
 +Следующий абзац будет вам полезен,​ только если у вас есть базовые навыки программирования,​ так как описывает использование пользовательских функций (Зеленое текстовое поле).</​WRAP>​
 +
 +====== 4. Вставка пользовательских функций в шаблон обычных полей ======
 +
 +Вы можете использовать функции PHP даже в простых текстовых полях (синяя иконка). ​
 +
 +Вам лишь нужно вставить следующее:​
 +
 +  ${ ... custom function ... return "​result";​ }}>
 +  ​
 +Оператор return является обязательным условием,​ потому что полный блок (от “${” до “}}>​” ) будет заменен тем значением,​ которое возвращается с его помощью. Например,​ это позволяет вставлять округленные общие суммы:
 +
 +  ${ return round($hdnGrandTotal,​ 2); }}>
 +  ​
 +Можно вычислять выражения на основе дат из полей Записи:​
 +
 +  ${ $date = strtotime($fieldname);​ $new_date = strtotime($date,​ "+1 day"); return date("​Y-m-D",​ $new_date); }}>
 +  ​
 +//​Пожалуйста,​ обратите внимание,​ внутри пользовательских функций вы должны использовать ссылки на поля из связанных модулей в стиле PHP %%($field->​module->​field)%%//​
 +
 +
 +Остальные примеры я упомяну в отдельной статье о [[ru:​start:​custom_functions|Пользовательских Функциях]]
 +
 +====== 5. Использование локальных переменных (Только зеленые текстовые поля и пользовательские функции) ======
 +
 +Локальные переменные могут быть использованы чтобы передавать значение из одной Задачи в другую. Они не будут очищены после того, как выполнена Задача,​ в которой они инициализированы и доступны до окончания выполнения всего Бизнес-Процесса.
 +
 +
 +Для доступа к локальным переменным используется массив **$env**. Чтобы задать значение локальной переменной variableame,​ вам необходимо использовать конструкцию:​ **$env[“variableame”] = “значение переменной”;​**. Для чтения значения:​ … **$env[“variablename”]** …