Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

Оглавление

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

Вы можете по аналогии написать собственные правила.

Примеры сформированных тестовых заявок можно посмотреть и скачать в документе I. Подготовительные работы по интеграции c применением API

1 Примеры скриптов правил применимости

Описание правилаПример правила применимости, script

для ИП

(пример синтаксиса действует с версии 1.9.0)

function isAvailableForDealApplicationData(dealApplicationData) {
               var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
               if (clientCompany == null || clientCompany.legalType == null) {
                 return null;
               }
               return clientCompany.legalType.id == 'IP';
}

где для указания значения clientCompany.legalType.id используется справочник Формы предпринимательской деятельности: legal_types

ЮЛ с суммой гарантии больше 10 млн

(пример синтаксиса действует с версии 1.9.0)

function isAvailableForDealApplicationData(dealApplicationData) {
                  var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
                  if (clientCompany == null || clientCompany.legalType == null ||  dealApplicationData.result.productDealState.amount == null) {
                    return null;
                  }
                  return clientCompany.legalType.id == 'ORGANIZATION' && dealApplicationData.result.productDealState.amount > 10000000;
}

ЮЛ с фактической ценой контракта до 100 тысяч

(пример синтаксиса действует с версии 1.9.0)

function isAvailableForDealApplicationData(dealApplicationData) {
               var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
               if (clientCompany == null || clientCompany.legalType == null || dealApplicationData.result.productDealState.actualContractPrice == null) {
                 return null;
               }
               return clientCompany.legalType.id == 'ORGANIZATION' && dealApplicationData.result.productDealState.actualContractPrice < 100000;
}

ЮЛ со сроком гарантии меньше 30 дней

(пример синтаксиса действует с версии 1.9.0)

function isAvailableForDealApplicationData(dealApplicationData) {
               var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
               if (clientCompany == null || clientCompany.legalType == null || dealApplicationData.result.productDealState.termDays == null) {
                 return null;
               }
               return clientCompany.legalType.id == 'ORGANIZATION' && dealApplicationData.result.productDealState.termDays < 30;
}

ЮЛ, финансовая (FIN) или некоммерческая организации (UNCOM)

(пример синтаксиса действует с версии 1.9.0)

function isAvailableForDealApplicationData(dealApplicationData) {
                var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
                var clientOrgTypeId = clientCompany.orgType.id;
                var orgTypes = ['FIN', 'UNCOM'];
                if(clientCompany == null || clientOrgTypeId == null || clientCompany.legalType == null) {
                  return null;
                }
                return orgTypes.indexOf(clientOrgTypeId) !== -1 && clientCompany.legalType.id == 'ORGANIZATION';
}

где orgTypes может быть 'COM' - коммерческая организация, 'UNCOM' - некоммерческая организация, 'FIN' - финансовая организация

ЮЛ, регион заказчика Камчатский край или Чукотский АО

(пример синтаксиса действует с версии 1.9.0)

function isAvailableForDealApplicationData(dealApplicationData) {
               var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
               var customerRegion = dealApplicationData.result.productDealState.customer.region.id;
               var customerRegions = ['Камчатский край', 'Чукотский АО'];
               if (clientCompany == null || clientCompany.legalType == null || customerRegion == null) {
                 return null;
               }
               return clientCompany.legalType.id == 'ORGANIZATION' && customerRegions.indexOf(customerRegion) !== -1;
}

ИП с типом налогообложения УСН, Сельхоз, ЕНВД

(пример синтаксиса действует с версии 1.9.0)

function isAvailableForDealApplicationData(dealApplicationData) {
                var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
                if (clientCompany == null) {
                    return null;
                }
                var taxSystemDto = dealApplicationData.getFetchField('TaxSystemCatalog', clientCompany.taxSystem);
                if (clientCompany.legalType == null || taxSystemDto == null ) {
                    return null;
                }
                var taxSystems = ['USN', 'ENVD', 'ESHN'];
                return taxSystems.indexOf(taxSystemDto.code) !== -1 && clientCompany.legalType.id == 'IP';
}

ЮЛ, дата государственно регистрации после 2003-06-05

(пример синтаксиса действует с версии 1.9.0)


function isAvailableForDealApplicationData(dealApplicationData) {
               var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
               if (clientCompany == null || clientCompany.legalType == null || clientCompany.regDate == null) {
                 return null;
               }
               return clientCompany.legalType.id == 'ORGANIZATION' && clientCompany.regDate > '2003-06-05';
}

ЮЛ, Сумма БГ до 2 млн.руб. - срок деятельности клиента от 180 дней. Сумма БГ от 2 млн.руб. срок деятельности клиента - от 365 дней.

(пример синтаксиса действует с версии 1.9.0)


function isAvailableForDealApplicationData(dealApplicationData) {
               var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
               if (clientCompany == null || clientCompany.legalType == null || clientCompany.regDate == null || dealApplicationData.result.productDealState.amount == null) {
                 return null;
               }
               now = new Date();
               rD = new Date(clientCompany.regDate);
               termClient = (now - rD)/(60 * 60 * 24 * 1000);
               return clientCompany.legalType.id == 'ORGANIZATION' && ((termClient >= 180 && dealApplicationData.result.productDealState.amount <= 2000000) || (termClient >= 365 && dealApplicationData.result.productDealState.amount > 2000000));
            }

ЮЛ, базовый ОКВЭД 86.23 - Стоматологическая практика или 86.90.9 - Деятельность в области медицины прочая, не включенная в другие группировки

(пример синтаксиса действует с версии 1.9.0)

function isAvailableForDealApplicationData(dealApplicationData) {
               var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
               if (clientCompany == null) {
                    return null;
                }
               var clientBaseOkved = dealApplicationData.getFetchField('OkvedCatalog', clientCompany.baseOkved);
               if (clientCompany.legalType == null || сlientBaseOkved == null) {
                 return null;
               }
               var baseOkveds = ['86.23', '86.90.9'];
               return baseOkveds.indexOf(clientBaseOkved.code) !== -1 && clientCompany.legalType.id == 'ORGANIZATION';
            }

ЮЛ с организационно-правовыми формами АО (код 12200), ПАО (код 12247), НАО (код 12267)

(пример синтаксиса действует с версии 1.9.0)

function isAvailableForDealApplicationData(dealApplicationData) {
                var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
                if (clientCompany == null) {
                    return null;
                }
                var okopfDto = dealApplicationData.getFetchField('OkopfCatalog', clientCompany.okopf);
                if(okopfDto == null || clientCompany.legalType == null) {
                    return null;
                }
                var okopfTypes = ['12200', '12247', '12267'];
                return clientCompany.legalType.id == 'ORGANIZATION' &&  okopfTypes.indexOf(okopfDto.code) !== -1;
}

ЮЛ, 223-ФЗ или 44-ФЗ

(пример синтаксиса действует с версии 1.9.0)

function isAvailableForDealApplicationData(dealApplicationData) {
               var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
               var federalLaw = dealApplicationData.result.productDealState.tender.federalLaw.id;
               if (clientCompany == null || clientCompany.legalType == null || federalLaw == null) {
                    return null;
                }
               var federalLaws = ['223FL', '44FL'];
               return federalLaws.indexOf(federalLaw) !== -1 && clientCompany.legalType.id == 'ORGANIZATION';
            }

где для указания значения federalLaws используется справочник Федеральные законы: federallaw_types

Продукт применим только для головных компаний (ЮЛ), филиалы исключаются

(пример синтаксиса действует с версии 1.9.0)

function isAvailableForDealApplicationData(dealApplicationData) {
              var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
              if(clientCompany == null) {
                return null;
              }
              var okopfDto = dealApplicationData.getFetchField('OkopfCatalog', clientCompany.okopf);
              if(okopfDto == null || clientCompany.legalType == null) {
                  return null;
              }
              var sourceInfo = clientCompany.sourceInfo;
              var okopfTypes = ['30000', '30001', '30002', '30003', '30004', '30005', '30006', '30008'];
              return clientCompany.legalType.id == 'ORGANIZATION' && okopfTypes.indexOf(okopfDto.code) === -1 && sourceInfo.headCompany === true && sourceInfo.hasBranches === false;
            }

ЮЛ, регион фактического местоположения компании Камчатский край или Тульская область

(пример синтаксиса действует с версии 1.14.0)

function isAvailableForDealApplicationData(dealApplicationData) {
               var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
               if (clientCompany == null) {
                 return null;
               }
               var factAddressDto = dealApplicationData.getFetchField('CompanyAddress', clientCompany.factAddress);
               if (clientCompany.legalType == null || factAddressDto == null) {
                 return null;
               }
               var companyRegions = ['Камчатский край', 'Тульская область'];
               return companyRegions.indexOf(factAddressDto.region) !== -1  && clientCompany.legalType.id == 'ORGANIZATION';
}
ЮЛ, стоп-регионы по юридическому адресу: Адыгея, Республика Ингушетия, Чеченская республика, Республика Дагестан, республика Крым, Севастополь

(пример синтаксиса действует с версии 1.14.0)
function isAvailableForDealApplicationData(dealApplicationData) {
                var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
                var LegalAddress = dealApplicationData.getFetchField('CompanyAddress', clientCompany.legalAddress);
                if (clientCompany == null || clientCompany.legalType == null || LegalAddress.region == null) {
                    return null;
                }
                var regex = new RegExp('адыгея|ингушет|чечен|дагестан|крым|севастоп', 'i');
                var clientLegalReg = regex.test(LegalAddress.region);
                return !clientLegalReg && clientCompany.legalType.id == 'ORGANIZATION';
            }

ЮЛ, среди собственников есть юр. лица

(пример синтаксиса действует с версии 1.14.0)

function isAvailableForDealApplicationData(dealApplicationData) {
               var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
               if (clientCompany == null || clientCompany.legalType == null) {
                 return null;
               }
               var legalFounders = dealApplicationData.getFetchFieldAsMap('LegalFounder'); 
               var keyArray = legalFounders.keySet().toArray();
               if(keyArray.length == 0) { 
                  return false; 
               }              
               return clientCompany.legalType.id == 'ORGANIZATION';
}

ЮЛ, среди собственников только физ. лица

(пример синтаксиса действует с версии 1.14.0)

function isAvailableForDealApplicationData(dealApplicationData) {
               var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
               if (clientCompany == null || clientCompany.legalType == null) {
                 return null;
               }
               var legalFounders = dealApplicationData.getFetchFieldAsMap('LegalFounder'); 
               var keyArray = legalFounders.keySet().toArray();
               if(keyArray.length !== 0) { 
                  return false; 
               }              
               return clientCompany.legalType.id == 'ORGANIZATION';
}

ЮЛ, запрет тендеров по 275-ФЗ

(пример синтаксиса действует с версии 1.16.0)

function isAvailableForDealApplicationData(dealApplicationData) {
		var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
		var tenderClosedLaw = dealApplicationData.result.productDealState.tender.closedLaw;
		if (clientCompany == null || clientCompany.legalType == null) {
		  return null;
		}
		if (tenderClosedLaw === true) {
		  return false;
		}
		return clientCompany.legalType.id == 'ORGANIZATION';
}
ЮЛ, валюта контракта - рубли

(пример синтаксиса действует с версии 1.9.0)
function isAvailableForDealApplicationData(dealApplicationData) {
		var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
	    var tenderCurrencyType = dealApplicationData.result.productDealState.tender.currencyType;
		var сurrencyTypeDto = dealApplicationData.getFetchField('CurrencyTypeCatalog', tenderCurrencyType);
		if (clientCompany == null || clientCompany.legalType == null) {
		  return null;
		}
		var currencyTypes = ['RUB'];
		return clientCompany.legalType.id == 'ORGANIZATION' && currencyTypes.indexOf(сurrencyTypeDto.code) !== -1;
}

ИП, БГ(У), где сумма БГ на исполнение не превышает 10 млн.

(пример синтаксиса действует с версии 1.16.0)

function isAvailableForDealApplicationData(dealApplicationData) {
                var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
                var isNeedPerformanceBgDeal = dealApplicationData.result.productDealState.isNeedPerformanceBg;
                if (isNeedPerformanceBgDeal === true) {
                  var amountBG = dealApplicationData.result.productDealState.performanceBg.amount;
                  return amountBG <= 10000000;
                }
                if (clientCompany == null || clientCompany.legalType == null ) {
                    return null;
                }
                return clientCompany.legalType.id == 'IP';
            }

Не заполнены фин. показатели.

(пример синтаксиса действует с версии 1.20.0)

Ниже приведен аналог проверки заполнения фин. показателей для версии 1.19.0

function isAvailableForDealApplicationData(dealApplicationData) {
                    return !isFinanceIndicatorFilledForAllPeriods(dealApplicationData, 'FORM_1', '1600') ||
                           !isFinanceIndicatorFilledForAllPeriods(dealApplicationData, 'FORM_1', '1700') ||
                           !isFinanceIndicatorFilledForAllPeriods(dealApplicationData, 'FORM_2', '2110');
                }

Сумма БГ меньше 1млн И не заполнены фин. показатели.

(пример синтаксиса действует с версии 1.19.0)

function isAvailableForDealApplicationData(dealApplicationData) {
        if (dealApplicationData.result.productDealState.amount > 1000000) {
            return false;
        }
        if (dealApplicationData.getFetchFieldAsMap('FinanceIndicator') == null) {
            return true;
        }
        var allIndicators = dealApplicationData.getFetchFieldAsMap('FinanceIndicator').values();
        var idOf1600 = allIndicators.stream()
            .filter(function(e) {
                return '1600' == e.code
            })
            .findFirst()
            .map(function(e){ return e.id})
            .orElse(null);
        var idOf1700 = allIndicators.stream()
                .filter(function(e) {
                    return '1700' == e.code
                })
                .findFirst()
                .map(function(e){ return e.id})
                .orElse(null);
        var idOf2110 = allIndicators.stream()
                .filter(function(e) {
                    return '2110' == e.code
                })
                .findFirst()
                .map(function(e){ return e.id})
                .orElse(null);
        if (idOf1600 == null || idOf1700 == null || idOf2110 == null) {
            return true;
        }
        var form1Values = dealApplicationData.result.financeForms.stream()
            .filter(function(e) {
                return '1b010932-3e5b-4992-861e-b3648f83a03d' == e.formId
            })
            .findFirst()
            .get();
        var form2Values = dealApplicationData.result.financeForms.stream()
            .filter(function(e) {
                return 'a48142d6-ded8-41c2-bfbf-57035a4fc773' == e.formId
            })
            .findFirst()
            .get();
        if (form1Values == null || form2Values == null) {
            return true;
        }
        for (var j = 0; j < form1Values.periods.size(); j++) {
            if (form1Values.values[form1Values.getIndicators().indexOf(idOf1600)][j] == null ||
                form1Values.values[form1Values.getIndicators().indexOf(idOf1700)][j] == null) {
                return true;
            }
        }
        for (var j = 0; j < form2Values.periods.size(); j++) {
            if (form2Values.values[form2Values.getIndicators().indexOf(idOf2110)][j] == null) {
              return true;
            }
        }
        return false;
      }

ЮЛ, если все физ. лица компании с документом "Паспорт гражданина РФ"

(пример синтаксиса действует с версии 1.19.0)

function isAvailableForDealApplicationData(dealApplicationData) { 
	var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
	var allPersonsHasPassport = true;
	var personsMap = dealApplicationData.getFetchFieldAsMap('Person');
	if (personsMap !== null) {
  		var persons = personsMap.values();
  		allPersonsHasPassport = persons.stream().allMatch(function(person) {
                      return person.docType != null && person.docType.id == 'PASSPORT';
		});
	}
	return clientCompany.legalType.id == 'ORGANIZATION' && allPersonsHasPassport;
}

ЮЛ, если прикреплены документы: "Бухгалтерская (финансовая) отчетность на последнюю календарную квартальную дату" И "Годовая бухгалтерская (финансовая) отчетность"

(пример синтаксиса действует с версии 1.19.0)

function isAvailableForDealApplicationData(dealApplicationData) {
    var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
    if (clientCompany == null) {
        return null;
    }	
	// Для проверки каждого документа требуются:
	// 1. переменная, хранящая признак прикрепления документа 
	//----------------------------------------
    var financeReportExists = false;
	//---------------------------------------- 
    var analyticalBalanceExists = false;
    var documentsMap = dealApplicationData.getFetchFieldAsMap('ApplicationDocument');
    if (documentsMap !== null) {
        var documents = documentsMap.values();
	 	// 2. осуществить поиск прикрепленного документа (не архивного) нужного типа; записать результат (true/false) в переменную
		//----------------------------------------
        financeReportExists = documents.stream().anyMatch(function(doc) {
          return doc.docType != null && doc.docType.id == 'FINANCE_REPORT_LAST_QUARTER' && doc.docState != null && doc.docState.id == 'ACTUAL';
        });
		//----------------------------------------
        analyticalBalanceExists = documents.stream().anyMatch(function(doc) {
          return doc.docType != null && doc.docType.id == 'ANALYTICAL_BALANCE_LAST_REPORTING_YEAR' && doc.docState != null && doc.docState.id == 'ACTUAL';
        });
    }
	// 3. Если требуются все документы, то в return указать "! (признак_прикрепления_документа_1 && ... && признак_прикрепления_документа_N)"
	// Если требуется прикрепить один из документов, то в return указать "! (признак_прикрепления_документа_1 || ... || признак_прикрепления_документа_N)"
	//----------------------------------------
    return clientCompany.legalType.id == 'ORGANIZATION' && !(financeReportExists && analyticalBalanceExists);
	//----------------------------------------
}

ЮЛ, стоп по ИНН заказчика: 1660049283,  1653014843.

(пример синтаксиса действует с версии 1.6.0)

function isAvailableForDealApplicationData(dealApplicationData) {
    var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
    var customerInn = dealApplicationData.result.productDealState.customer.inn;
    if (clientCompany == null || clientCompany.legalType == null) {
                 return null;
    }
    var stopCustomerInn = ['1660049283', '1653014843'];
    return clientCompany.legalType.id == 'ORGANIZATION' && stopCustomerInn.indexOf(customerInn) == -1;
}

ЮЛ, стоп по ОКПД

(пример синтаксиса действует с версии 1.19.0)

function isAvailableForDealApplicationData(dealApplicationData) {
                var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
                var okpdMap = dealApplicationData.getFetchFieldAsMap('OkpdCatalog');
                var okpdIsValid = true;
                if (okpdMap !== null) {
                  var okpds = okpdMap.values();
                  okpdIsValid = okpds.stream().allMatch(function(okpd) {
                    return okpd.code !== null && okpd.code !== '42.11.20.000';
                  });
                }
                return clientCompany.legalType.id == 'ORGANIZATION' && okpdIsValid;                
}

ИП, стоп по группам ОКПД

(пример синтаксиса действует с версии 1.19.0)

function isAvailableForDealApplicationData(dealApplicationData) {
            var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
            var okpdMap = dealApplicationData.getFetchFieldAsMap('OkpdCatalog');
            var okpdIsValid = true;
            var regexOkpd = new RegExp('^(06|19|41.2|42|43.99|64|65|66|68|99)', 'i');
            if (okpdMap !== null) {
              var okpds = okpdMap.values();
              okpdIsValid = okpds.stream().allMatch(function(okpd){
                var legalOkpd = regexOkpd.test(okpd.code);
                return okpd.code !== null && !legalOkpd;
              });
            }
            return clientCompany.legalType.id == 'IP' && okpdIsValid; 
}

СТОП-Регионы по юридическому адресу принципала с исключениями отдельных населённых пунктов из регионов:

• Республика Адыгея (за исключением г. Майкоп, станица Ханская (административно подчинена Майкопу), п. Яблоновский, г. Энем, станица Гиагинская, г. Адыгейск и село Красногвардейское)

• Республика Алтай

• Чукотский АО

• Республика Калмыкия

• Ненецкий АО

• Республика Тува

• Чеченская республика

• Республика Дагестан

• Республика Ингушетия

• Карачаево-Черкесская Республика

• Кабардино-Балкарская республика (за исключением г. Нальчик, г. Прохладный)

• Республика Северная Осетия-Алания (за исключением г. Владикавказ, г. Беслан)

(пример синтаксиса действует с версии 1.25.16)


function isAvailableForDealApplicationData(dealApplicationData) 
{             
			var LegalAddress = dealApplicationData.getFetchField('CompanyAddress', clientCompany.legalAddress);             
		 	if (LegalAddress == null || LegalAddress.region == null) {
                    return null; 
			}
		 	var regex1 = new RegExp('осетия|алания', 'i');
            var regex1_1 = new RegExp('владикавказ|беслан', 'i');
                
            var regex2 = new RegExp('кабарди', 'i');
            var regex2_1 = new RegExp('нальчик|прохладный', 'i');
                
            var regex3 = new RegExp('адыгея', 'i');
            var regex3_1 = new RegExp('майкоп|яблоновский|энем|адыгейск|красногвардейское|гиагинская|ханская', 'i'); 
                
            var alwaysDenyRegionsRegex = new RegExp('карачае|ингушет|чечен|дагестан|алтай|чукотск|калмык|ненецкий|тыва|тува', 'i');
            if (alwaysDenyRegionsRegex.test(LegalAddress.region)) 
			{
                return false;
            }
            var reg1check = regex1.test(LegalAddress.region) && !regex1_1.test(LegalAddress.city);
            var reg2check = regex2.test(LegalAddress.region) && !regex2_1.test(LegalAddress.city);
            var reg3check = regex3.test(LegalAddress.region) && !regex3_1.test(LegalAddress.city);
            if (reg1check || reg2check || reg3check) {
               return false;
			}
}

Исключения в ar regex1 = new RegExp('осетия|алания', 'i');

var regex1_1 = new RegExp('владикавказ|беслан', 'i'); 

_____________________________________________________________

Исключения в var regex2 = new RegExp('кабарди', 'i');

var regex2_1 = new RegExp('нальчик|прохладный', 'i');

_____________________________________________________________

Исключения в var regex3 = new RegExp('адыгея', 'i');

var regex3_1 = new RegExp('майкоп|яблоновский|энем|адыгейск|красногвардейское|гиагинская|ханская', 'i'); 

_____________________________________________________________

Регионы без исключений var alwaysDenyRegionsRegex = new RegExp('карачае|ингушет|чечен|дагестан|алтай|чукотск|калмык|ненецкий|тыва|тува', 'i');
if (alwaysDenyRegionsRegex.test(LegalAddress.region)) 

44-ФЗ, 223-ФЗ - без ограничений по ИНН заказчика.

185-ФЗ/615ПП - с ограничением по ИНН заказчика, для указанных ИНН заказчиков доступна отправка заявки в сервис:

(пример синтаксиса действует с версии 1.25.16)

function isAvailableForDealApplicationData(dealApplicationData) 
{
var AvailableFederalLaws = ['223FL', '44FL'];                
var federalLaw = dealApplicationData.result.productDealState.tender.federalLaw.id;
var commercialCustomerInn = ['1644003838','1651044095','1651000041','1644040195','5009053687','1644057262','1631050005', '1644024517','1651031650','1651024807','1651049488','7606040300','1651000027','1651049262','1651061372','1655428783','7703476220'];

return
((federalLaw == 'COMMERCIAL_BIDDING' && commercialCustomerInn.indexOf(customerInn) !== -1) || AvailableFederalLaws.indexOf(federalLaw) !== -1)
}

РКО, проверка по городам

(пример синтаксиса действует с версии 1.25.16)

function isAvailableForDealApplicationData(dealApplicationData) {
                var clientCity = dealApplicationData.result.productDealState.city;
                var allowedCity = ['Абакан', 'Арзамас', 'Астрахань', 'Барнаул', 'Белгород', 'Благовещенск', 'Бор', 'Брянск', 'Великий Новгород', 'Владивосток', 'Владимир', 'Волгоград', 'Волжский', 'Вологда', 'Воронеж', 'Гуково', 'Гусь-Хрустальный', 'Дзержинск', 'Димитровград', 'Екатеринбург', 'Енисейск', 'Иваново', 'Ижевск', 'Иркутск', 'Калининград', 'Калуга', 'Каменск-Шахтинский', 'Кемерово', 'Кинешма', 'Кириши', 'Киров', 'Ковров', 'Кострома', 'Краснодар', 'Красноярск', 'Курск', 'Липецк', 'Майкоп', 'Минусинск', 'Михайловка', 'Москва', 'Мурманск', 'Муром', 'Набережные Челны', 'Находка', 'Нижний Новгород', 'Нижний Тагил', 'Новокузнецк', 'Новороссийск', 'Новосибирск', 'Новочебоксарск', 'Новочеркасск', 'Новый Уренгой', 'Одинцово', 'Омск', 'Оренбург', 'Орск', 'Пенза', 'Пермь', 'Подольск', 'Псков', 'Пятигорск', 'Рыбинск', 'Рязань', 'Самара', 'Санкт-Петербург', 'Саратов', 'Смоленск', 'Ставрополь', 'Сургут', 'Сызрань', 'Сыктывкар', 'Таганрог', 'Тамбов', 'Тверь', 'Тольятти', 'Томск', 'Тула', 'Тюмень', 'Улан-Удэ', 'Уссурийск', 'Уфа', 'Хабаровск', 'Чебоксары', 'Челябинск', 'Чита', 'Шахты', 'Ярославль'];
                return allowedCity.indexOf(clientCity) !== -1;
            }

Проверка и исключение определенного ответственного по заявке

(пример синтаксиса действует с версии 1.25.16)

"function isAvailableForDealApplicationData(dealApplicationData) {
              var responsible = dealApplicationData.getFetchField('CompanyContactParticipant', dealApplicationData.result.responsible.id);               
			  if (!!responsible && responsible.id == 'c6e4804d-90e3-4cf0-879b-00eeedc3e396') {
                return false;
              }
	}

2 Примеры получения значений полей по данным заявки для использования в правилах применимости 

Поле согласно структуре заявки с учетом вложенностиОписаниеКак объявить и получить значение в java
result.clientОбъект компания клиента/ИП
var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
result.Company.legalTypeКатегория клиента (организация, ИП, физ. лицо)
var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
var companyLegalType = clientCompany.legalType.id;
result.productDealState.amountСумма продукта
var amountProductDealState = dealApplicationData.result.productDealState.amount;
result.productDealState.actualContractPriceСумма ФЦК продукта
var priceProductDealState = dealApplicationData.result.productDealState.actualContractPrice;
result.productDealState.termDaysСрок гарантии
var termDaysProductDealState = dealApplicationData.result.productDealState.termDays;
result.Company.orgTypeТип организации
var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
var clientOrgTypeId = clientCompany.orgType.id;
result.productDealState.customer.regionМестонахождения (регион) заказчика
var customerRegion = dealApplicationData.result.productDealState.customer.region.id;
result.Company.taxSystemСистема налогообложения
var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
var taxSystemDto = dealApplicationData.getFetchField('TaxSystemCatalog', clientCompany.taxSystem);
result.Company.regDateДата государственной регистрации
var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
var companyRegDate = clientCompany.regDate;
result.Company.baseOkvedБазовый ОКВЭД
var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
var сlientBaseOkved = dealApplicationData.getFetchField('OkvedCatalog', clientCompany.baseOkved);
result.Company.okopfОрганизационно-правовая форма
var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
var okopfDto = dealApplicationData.getFetchField('OkopfCatalog', clientCompany.okopf);
result.productDealState.tender.federalLawФедеральный закон
var federalLaw = dealApplicationData.result.productDealState.tender.federalLaw.id;
fetchFields.CompanySourceInfoГоловная компания
var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
var sourceInfo = clientCompany.sourceInfo;
fetchFields.CompanyAddress.regionРегион фактического местоположения компании
var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
var factAddressDto = dealApplicationData.getFetchField('CompanyAddress', clientCompany.factAddress);
fetchFields.CompanyAddress.regionРегион юридического адреса компании
var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
var LegalAddress = dealApplicationData.getFetchField('CompanyAddress', clientCompany.legalAddress);
fetchFields.LegalFounderСобственники (юр лицо)
var legalFounders = dealApplicationData.getFetchFieldAsMap('LegalFounder'); 
var keyArray = legalFounders.keySet().toArray();
result.Company.regDateСрок деятельности клиента
var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
now = new Date();
rD = new Date(clientCompany.regDate);
termClient = (now - rD)/(60 * 60 * 24 * 1000);
result.productDealState.tender.closedLawТендер по 275-ФЗ
var tenderClosedLaw = dealApplicationData.result.productDealState.tender.closedLaw;
result.productDealState.tender.currencyTypeВалюта контракта
var tenderCurrencyType = dealApplicationData.result.productDealState.tender.currencyType;
var сurrencyTypeDto = dealApplicationData.getFetchField('CurrencyTypeCatalog', tenderCurrencyType);
result.productDealState.performanceBg.amountСумма БГ на исполнение вне типа продукта БГ(И)
var amountBG = dealApplicationData.result.productDealState.performanceBg.amount;
result.productDealState.isNeedPerformanceBgПотребуется БГ на исполнение контракта?
var isNeedPerformanceBgDeal = dealApplicationData.result.productDealState.isNeedPerformanceBg;
result.productDealState.customer.innИНН заказчика
var customerInn = dealApplicationData.result.productDealState.customer.inn;

result.productDealState.city

Город клиента
var clientCity = dealApplicationData.result.productDealState.city;

result.responsible.id

Проверка ответственного по заявке
var responsible = dealApplicationData.getFetchField('CompanyContactParticipant', dealApplicationData.result.responsible.id);