<commit_before>---
title: Создание собственных функций при использовании LanguageDef
sidebar: flexberry-orm_sidebar
keywords: Flexberry ORM, Public, Ограничения
toc: true
permalink: ru/fo_creation-function-when-using--language-def.html
---
Существуют стандартные "построители" функций для наложения ограничений, SQLWhereLanguageDef и ExternalLangDef. 
Создание собственных функций при использовании LanguageDef (языка задания ограничений) позволяет создавать СУБД-независимые конструкции и использовать из для ограничения через FunctionalLanguage или рукописные скрипты. Использование этого подхода позволяет создавать более лёгкий в сопровождении код, нежели написание дублирующих выражений для каждой СУБД.


{% include important.html content="Будьте внимательны: пользовательские функции должны начинаться с символов "user_"!. "%}

###Пример<commit_msg>Update flexberry-orm<commit_after>---
title: Создание собственных функций при использовании LanguageDef
sidebar: flexberry-orm_sidebar
keywords: Flexberry ORM, Public, Ограничения
toc: true
permalink: ru/fo_creation-function-when-using--language-def.html
---
Существуют стандартные "построители" функций для наложения ограничений, SQLWhereLanguageDef и ExternalLangDef. 
Создание собственных функций при использовании LanguageDef (языка задания ограничений) позволяет создавать СУБД-независимые конструкции и использовать из для ограничения через FunctionalLanguage или рукописные скрипты. Использование этого подхода позволяет создавать более лёгкий в сопровождении код, нежели написание дублирующих выражений для каждой СУБД.


{% include important.html content="Будьте внимательны: пользовательские функции должны начинаться с символов `user_`!. "%}

###Пример
{'fraction_non_alphanumeric': 0.05991855730075625, 'fraction_numerical': 0.0, 'mean_word_length': 6.853881278538813, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5530546', 'n_tokens_mistral': 591, 'n_tokens_neox': 715, 'n_words': 162}