//Case1 //Если выбрано значение "ДРУГОЕ" в доп. поле "1. Вып. список", то правее сделать видимым доп. поле "1. Описание (другое)" script v1.0 { rule { name: '1 +' on { //блок, в котором перечисляется список условий применения: taskEvent: open-create-form //при открытии формы создания заявки taskEvent: open-edit-form //при открытии формы изменения заявки changeField: addfield_68f2c941_vyp_spisokSingleSelect //при изменении доп. поля "1. Вып. список" } action { //блок, в котором перечисляется список условий и действий if(number.bool(task.serviceid.value == 542674)) { //если id сервиса равен 542674 (сервис "case1") if(string.bool(task.addfield_68f2c941_vyp_spisokSingleSelect.value == 'ДРУГОЕ')) { //если значение поля "1. Вып. список" равно 'ДРУГОЕ' setVisibility(show){ //установить для поля "1. Описание (другое)" видимость "показывать" addfield_52c259d1_opisanie__drugoe_String } } else { setVisibility(hide) { //иначе установить для поля "1. Описание (другое)" видимость "не показывать" addfield_52c259d1_opisanie__drugoe_String } } } } } } //Case2.1 //При создании/изменении заявки заполнить телефон Заявителя в доп. поле "2.1. Телефон". Если поле уже заполнено, то не перезаписывать его. script v1.0 { rule { name: '2.1 +' on { //блок, в котором перечисляется список условий применения: taskEvent: open-create-form //при открытии формы создания заявки taskEvent: open-edit-form //при открытии формы изменения заявки } action { if(number.bool(task.serviceid.value == 542676)) { //если id сервиса равен 542676 (сервис "case2.1") if( bool.or //если выполняется хотя бы одно из 2 условий (ИЛИ) [ number.bool(task.statusid.value == 0) //1-ое условие: id статуса равен 0 ("Новая заявка") bool.and //2-ое условие состоит из еще 2 условий, которые должны быть верны (И) [ number.bool(task.statusid.value == 823963) //id статуса равен 823963 ("Открыта") string.bool(task.addfield_65afef421_telefonString.value == '') //поле "2.1. Телефон" не заполнено ] ] ) { user.load(task.initiatoruserid.value as initiatorUserData) //загрузить информацию о пользователе-заявителе в переменную initiatorUserData task.addfield_65afef421_telefonString.setValue(user#initiatorUserData.defaultphone) //записать в поле "2.1. Телефон" значение поля "Телефон" пользователя-заявителя setVisibility(show){ //установить для поля "2.1. Телефон" видимость "показывать" addfield_65afef421_telefonString } } } } } } //Case2.2 //При создании заявки (или изменении Заявителя) заполнить телефон Заявителя в доп. поле заявки "2.1. Телефон". script v1.0 { rule { name: '2.2 +' on { //блок, в котором перечисляется список условий применения: taskEvent: open-create-form //при открытии формы создания заявки changeField: initiator //при изменении поля "Заявитель" } action { if(number.bool(task.serviceid.value == 542677)) { //если id сервиса равен 542677 (сервис "case2.2") user.load(task.initiatoruserid.value as initiatorUserData) //загрузить информацию о пользователе-заявителе в переменную initiatorUserData task.addfield_65afef421_telefonString.setValue(user#initiatorUserData.defaultphone) //записать в поле "2.1. Телефон" значение поля "Телефон" пользователя-заявителя setVisibility(show){ //установить для поля "2.1. Телефон" видимость "показывать" addfield_65afef421_telefonString } } } } } //Case2.3 //При создании заявки (или изменении Заявителя) заполнить в доп. поле заявки "2.3. Сегмент" значение доп. поле клиента "Сегмент" script v1.0 { rule { name: '2.3 +' on { //блок, в котором перечисляется список условий применения: taskEvent: open-create-form //при открытии формы создания заявки changeField: initiator //при изменении поля "Заявитель" } action { if(number.bool(task.serviceid.value == 542678)) { //если id сервиса равен 542678 (сервис "case2.3") usergroup.load(task.initiatorgroupid.value as initiatorGroup) //загрузить информацию о клиенте-заявителе в переменную initiatorGroup task.addfield_3ed52b123_segmentSingleSelect.setValue(usergroup#initiatorGroup.addfield_92161a5segmentSingleSelect) //записать в поле "2.3. Сегмент" значение поля "Сегмент" с карточки клиента-заявителя } } } } //Case2.4 //Зависимость приоритета от значения выпадающего списка. //При выборе в доп. поле "2.4. Условие для приоритета" значения "Да" выставить приоритет "Критический", значения "Нет" - "Низкий", значения "Не знаю" - "Средний". script v1.0 { rule { name: '2.4 +' on { //блок, в котором перечисляется список условий применения: changeField: addfield_8f3b6df24_uslovie_dlia_priorietaSingleSelect //при изменении поля "2.4. Условие для приориета" } action { if(number.bool(task.serviceid.value == 542679)) { //если id сервиса равен 542679 (сервис "case2.4") if( bool.or //если выполняется хотя бы одно из 2 условий (ИЛИ) [ number.bool(task.statusid.value == 0) //1-ое условие: id статуса равен 0 ("Новая заявка") number.bool(task.statusid.value == 513725) //2-ое условие: id статуса равен 513725 ("Открыта") ] ) { if(string.bool(task.addfield_8f3b6df24_uslovie_dlia_priorietaSingleSelect.value == 'Да')) { //если в поле "2.4. Условие для приориета" выбрано "Да" task.priorityid.setValue(109660) //выставить значение приоритета id=109660 (Критический) } if(string.bool(task.addfield_8f3b6df24_uslovie_dlia_priorietaSingleSelect.value == 'Нет')) { //если в поле "2.4. Условие для приориета" выбрано "Нет" task.priorityid.setValue(513726) //выставить значение приоритета id=513726 (Низкий) } if(string.bool(task.addfield_8f3b6df24_uslovie_dlia_priorietaSingleSelect.value == 'Не знаю')) { //если в поле "2.4. Условие для приориета" выбрано "Не знаю" task.priorityid.setValue(513727) //выставить значение приоритета id=513727 (Средний) } } } } } } //Case2.5 //Назначение исполнителей от значения выпадающего списка доп. поля. //При выборе в поле "2.5. Условие для исполнителей" значения "Только исп" выставить исполнителя "ФамИсп11", значения "Только группа" - "ГруппаИсп1", значения "Исп + группа" - "ФамИсп11 + ГруппаИсп1". script v1.0 { rule { name: '2.5 +' on { //блок, в котором перечисляется список условий применения: changeField: addfield_3379de725_uslovie_dlia_ispolnitelejSingleSelect //при изменении поля "2.5. Условие для исполнителей" } action { if(number.bool(task.serviceid.value == 542680)) { //если id сервиса равен 542680 (сервис "case2.5") if( bool.or //если выполняется хотя бы одно из 2 условий (ИЛИ) [ number.bool(task.statusid.value == 0) //1-ое условие: id статуса равен 0 ("Новая заявка") number.bool(task.statusid.value == 823963) //2-ое условие: id статуса равен 823963 ("Открыта") ] ) { if(string.bool(task.addfield_3379de725_uslovie_dlia_ispolnitelejSingleSelect.value == 'Только исп')) { //если в поле "2.5. Условие для исполнителей" выбрано "Только исп" task.executoruserid.setValue(3520388) //установить исполнителя id=801580 (ФамИсп11) } if(string.bool(task.addfield_3379de725_uslovie_dlia_ispolnitelejSingleSelect.value == 'Только группа')) { //если в поле "2.5. Условие для исполнителей" выбрано "Только группа" task.executorgroupid.setValue(1664955) //установить исполнителя id=245184 (ГруппаИсп1) } if(string.bool(task.addfield_3379de725_uslovie_dlia_ispolnitelejSingleSelect.value == 'Исп + группа')) { //если в поле "2.5. Условие для исполнителей" выбрано "Исп + группа" task.executoruserid.setValue(3520388) //установить исполнителя id=801580 (ФамИсп11) task.executorgroupid.setValue(1664955) //установить исполнителя id=245184 (ГруппаИсп1) } } } } } } //Case3 //При выставлении в доп. поле "3. Выбор да/нет" значения "Да" - отобразить доп. поле "3. Вып. список". script v1.0 { rule { name: '3 +' on { //блок, в котором перечисляется список условий применения: taskEvent: open-create-form //при открытии формы создания заявки taskEvent: open-edit-form //при открытии формы изменения заявки changeField: addfield_ab464bc3_vybor_da_netBoolean //при изменении доп. поля "3. Вып. список" } action { if(number.bool(task.serviceid.value == 542681)) { //если id сервиса равен 542681 (сервис "case3") if(bool.true(task.addfield_ab464bc3_vybor_da_netBoolean.value)) { //при значение поля "3. Выбор да/нет" = "Да" setVisibility(show) { //установить для поля "3. Вып. список" видимость "показывать" addfield_4acc10d3_vyp_spisokSingleSelect } } else { //иначе setVisibility(hide) { //установить для поля "3. Вып. список" видимость "не показывать" addfield_4acc10d3_vyp_spisokSingleSelect } } } } } } //Case5 //Если выбрали в доп. поле "5. Вып. список" значение "Карандаши" и указали в доп. поле "5. Число" значение больше 10, то при сохранении вывести сообщение об ошибке. script v1.0 { rule { name: '5 +' on { //блок, в котором перечисляется список условий применения: taskEvent: save //при сохранении заявки } action { if(number.bool(task.serviceid.value == 542683)) { //если id сервиса равен 542683 (сервис "case5") if( bool.and //если выполняются оба условия ниже (по "И") [ number.bool(task.addfield_ce310765_chisloNumber.value > 10) //если в поле "5. Число" указано число больше 10 string.bool(task.addfield_507ee6b5_vyp_spisokSingleSelect.value == 'Карандаши') //если в поле "5. Вып. список" выбрано 'Карандаши' ] ) { throw 'Нельзя заказать больше 10 карандашей' //вывести плашку с текстом "Нельзя заказать больше 10 карандашей" } } } } } //Case6.1 //При сохранении заявки проверять, что в поле "Активы" заполнен 1 актив. Если условие не соблюдается, то вывести сообщение об ошибке. script v1.0 { rule { name: '6.1 +' on { //блок, в котором перечисляется список условий применения: taskEvent: save //при сохранении заявки } action { if(number.bool(task.serviceid.value == 542685)) { //если id сервиса равен 542685 (сервис "case6.1") if(number.bool(task.assets.length != 1)) { //если количество активов не равно 1 throw 'Нужно выбрать только один актив!' //вывести плашку с текстом "Нужно выбрать только один актив!" } } } } } //Case6.2 //При сохранении заявки проверять, что если поле "Теги" было заполнено, то там может быть выбран только 1 тег. При этом поле "Теги" может быть и не заполнено. Если условие не соблюдается, то вывести сообщение об ошибке. script v1.0 { rule { name: '6.2 +' on { //блок, в котором перечисляется список условий применения: taskEvent: save //при сохранении заявки } action { if(number.bool(task.serviceid.value == 542686)) { //если id сервиса равен 542686 (сервис "case6.2") if(number.bool(task.tags.length > 1)) { //если количество тегов больше 1 throw 'Можно выбрать не больше одного тега!' //вывести плашку с текстом "Можно выбрать не больше одного тега!" } } } } } //Case6.3 //При сохранении заявки проверять, что в поле "Активы" заполнено от 1 до 3 активов. Если условие не соблюдается, то вывести сообщение об ошибке. script v1.0 { rule { name: '6.3 +' on { //блок, в котором перечисляется список условий применения: taskEvent: save //при сохранении заявки } action { if(number.bool(task.serviceid.value == 542687)) { //если id сервиса равен 542687 (сервис "case6.3") if( bool.or //если выполняются оба условия ниже (по "И") [ number.bool(task.assets.length < 1) //если количество активов меньше 1 number.bool(task.assets.length > 3) //если количество активов больше 3 ] ) { throw 'Можно выбрать от одного до трех активов!' //вывести плашку с текстом "Можно выбрать от одного до трех активов!" } } } } } //Case9 //Если на заявке назначена исполнителем "ГруппаИсп2", то по умолчанию выставлять комментарий в положение "внутренний" (для кейса, когда для группы второй линии поддержки допустимо оставлять только внутренние комментарии, чтобы их не видел клиент) script v1.0 { rule { name: '9 +' on { //блок, в котором перечисляется список условий применения: taskEvent: open-edit-form //при открытии формы изменения заявки } action { if(number.bool(task.serviceid.value == 542688)) { //если id сервиса равен 542688 (сервис "case9") if(number.bool(task.executorgroupid.value == 1664957)) { //если id группы исполнителей равен 1664957 ("ГруппаИсп2") setCommentMode: private //выставить поле комментарий в положение "внутренний" } } } } }