diff --git a/_data/sidebars/flexberry-ember-2_sidebar.yml b/_data/sidebars/flexberry-ember-2_sidebar.yml
index 8956add8b..a18789414 100644
--- a/_data/sidebars/flexberry-ember-2_sidebar.yml
+++ b/_data/sidebars/flexberry-ember-2_sidebar.yml
@@ -160,9 +160,9 @@ entries:
url: /efd2_enum.html
output: web, pdf
- - title: Model validation
- title_ru: Валидация модели
- url: /efd2_model-validation.html
+ - title: Data validation
+ title_ru: Валидация данных
+ url: /efd3_validations.html
output: web, pdf
- title: Date and time validation
diff --git a/_data/sidebars/flexberry-ember-3_sidebar.yml b/_data/sidebars/flexberry-ember-3_sidebar.yml
index 35345a87f..4ccb7ff50 100644
--- a/_data/sidebars/flexberry-ember-3_sidebar.yml
+++ b/_data/sidebars/flexberry-ember-3_sidebar.yml
@@ -51,9 +51,9 @@ entries:
url: /efd3_query-language.html
output: web, pdf
- - title: Model validation
- title_ru: Валидация моделей
- url: /efd3_model-validation.html
+ - title: Data validation
+ title_ru: Валидация данных
+ url: /efd3_validations.html
output: web, pdf
- title: Components
diff --git a/pages/products/flexberry-ember/2.x/work-with-data/efd2_model-validation.en.md b/pages/products/flexberry-ember/2.x/work-with-data/efd2_model-validation.en.md
deleted file mode 100644
index f3f25a8b6..000000000
--- a/pages/products/flexberry-ember/2.x/work-with-data/efd2_model-validation.en.md
+++ /dev/null
@@ -1,94 +0,0 @@
----
-title: validation of the model
-sidebar: flexberry-ember-2_sidebar
-keywords: Flexberry Ember
-toc: true
-permalink: en/efd2_model-validation.html
-folder: products/ember-flexberry-data/models-and-projections/
-lang: en
-autotranslated: true
-hash: f06cc56f55bd72bc15d30ca679b8e40b944bf27e0aa5e8cb32ee2dee9c139ae4
-summary: Describes the basic steps for configuring validation
----
-
-## Description
-
-Client validation is configured in the application based on addon [Ember Validations](https://github.com/dockyard/ember-validations) (the documentation for this addon more than the capacity to define rules).
-
-The validation set of the model (other manipulation of configuration are sewn in technology Flexberry ASP.NET Ember):
-
-```javascript
-var Model = BaseModel.extend({
- номерПроекта: DS.attr('string'),
- краткоеСодержание: DS.attr('string'),
- визирование: DS.attr('boolean', {defaultValue: false}),
- примечание: DS.attr('string'),
-
- // Validation rules.
- validations: {
- номерПроекта: { presence: true },
- краткоеСодержание: { presence: true, length: { maximum: 255 } },
- визирование: { presence: true },
- примечание: { length: { maximum: 255 } },
- }
-});
-```
-
-To display the validation on the edit form in the corresponding template you must write about the following (styles and position of elements may be different):
-
-```html
-
-```
-
-{% include note.html content="Since validation initially, it is believed that fields of type Boolean the value `null`, to not show the message validation, you can specify [default value](http://guides.emberjs.com/v2.4.0/models/defining-models/) (as is done in the example above)." %}
-
-## Types of validators
-
-There are standard validators provided by the addon Ember Validations and custom validators provided with the addon [ember-flexberry](https://github.com/Flexberry/ember-flexberry).
-
-### Standard validators
-
-Addon Ember Validations include the following validators:
-
-* `absence` - verifying that validated the property must be empty. [Read more](https://github.com/dockyard/ember-validations#absence).
-* `acceptance` - verifying that validated the property is a valid value (set in the validator). [Read more](https://github.com/dockyard/ember-validations#acceptance).
-* `confirmation` - check that the value of the validated property is the value of the property propertyConfirmation, where property is the name you want to validate properties. [Read more](https://github.com/dockyard/ember-validations#confirmation).
-* `exclusion` - check that the value of validated properties are not included in the list of invalid values. [Read more](https://github.com/dockyard/ember-validations#exclusion).
-* `format` - check that the value you want to validate the property match the given regular expression. [Read more](https://github.com/dockyard/ember-validations#format).
-* `inclusion` - check that the value you want to validate the properties included in the list of valid values. [Read more](https://github.com/dockyard/ember-validations#inclusion).
-* `length` - check that the value of validated properties is the specified length. [Read more](https://github.com/dockyard/ember-validations#length).
-* `numericality` - check that the value of the validated property is numeric. [Read more](https://github.com/dockyard/ember-validations#numericality).
-* `presence` - verifying that validated the property must not be empty. [Read more](https://github.com/dockyard/ember-validations#presence).
-
-### Custom validators
-
-In the framework of the addon ember-flexberry implemented the following validators:
-
-* `datetime` - validation of date input/date / time. [Read more](efd2_date-time-validator.html).
-
-### Conditional validators
-
-All validators can work in the mode of conditional validation - their operation will depend either on an additional logical function, or Boolean property of an object. [Read more](https://github.com/dockyard/ember-validations#conditional-validators).
-
-## Development of custom validators
-
-Application developers can also create their own custom validators if the validator is not enough to implement the application logic.
-There are 2 ways to implement custom validators:
-
-* Implement your own validator, which can be reused for different entities
-* Implement inline validator that checks the correctness of the data model for one specific entity
-
-Read more about the process of creating custom validators can be viewed [here](https://github.com/dockyard/ember-validations#custom-validators).
-
-In addition, you can view the source code of validators in the [repository addon Ember Validations on GitHub](https://github.com/dockyard/ember-validations/tree/master/addon/validators).
-
-
-
diff --git a/pages/products/flexberry-ember/2.x/work-with-data/efd2_model-validation.ru.md b/pages/products/flexberry-ember/2.x/work-with-data/efd2_model-validation.ru.md
deleted file mode 100644
index f3f4caebe..000000000
--- a/pages/products/flexberry-ember/2.x/work-with-data/efd2_model-validation.ru.md
+++ /dev/null
@@ -1,89 +0,0 @@
----
-title: Валидация модели
-sidebar: flexberry-ember-2_sidebar
-keywords: Flexberry Ember
-toc: true
-permalink: ru/efd2_model-validation.html
-folder: products/ember-flexberry-data/models-and-projections/
-lang: ru
-summary: Описаны основные шаги по настройке валидации
----
-
-## Описание
-
-Клиентская валидация настраивается в приложении на базе аддона [Ember Validations](https://github.com/dockyard/ember-validations) (в документации к данному аддону указано больше возможностей по заданию правил).
-
-Валидация задаётся на уровне модели (остальные манипуляции с настройкой компонента зашиты в технологию Flexberry ASP.NET Ember):
-
-```javascript
-var Model = BaseModel.extend({
- номерПроекта: DS.attr('string'),
- краткоеСодержание: DS.attr('string'),
- визирование: DS.attr('boolean', {defaultValue: false}),
- примечание: DS.attr('string'),
-
- // Validation rules.
- validations: {
- номерПроекта: { presence: true },
- краткоеСодержание: { presence: true, length: { maximum: 255 } },
- визирование: { presence: true },
- примечание: { length: { maximum: 255 } },
- }
-});
-```
-
-Для отображения валидации на форме редактирования в соответствующем шаблоне необходимо написать примерно следующее (стили и расположение элементов может отличаться):
-
-```html
-
-```
-
-{% include note.html content="Поскольку при валидации изначально считается, что у полей логического типа значение `null`, то, чтобы не отображались сообщения валидации, можно задать [значение по умолчанию](http://guides.emberjs.com/v2.4.0/models/defining-models/) (как это сделано в примере выше)." %}
-
-## Типы валидаторов
-
-Существуют "стандартные" валидаторы, предоставляемые аддоном Ember Validations, а также кастомные валидаторы, предоставляемые вместе с аддоном [ember-flexberry](https://github.com/Flexberry/ember-flexberry).
-
-### "Стандартные" валидаторы
-
-Аддоном Ember Validations предоставляются следующие валидаторы:
-
-* `absence` - проверка того, что валидируемое свойство должно быть пустым. [Подробнее](https://github.com/dockyard/ember-validations#absence).
-* `acceptance` - проверка того, что в валидируемое свойство введено допустимое значение (задается в валидаторе). [Подробнее](https://github.com/dockyard/ember-validations#acceptance).
-* `confirmation` - проверка того, что значение валидируемого свойства совпадает со значением свойства propertyConfirmation, где property-имя валидируемого свойства. [Подробнее](https://github.com/dockyard/ember-validations#confirmation).
-* `exclusion` - проверка того, что значение валидируемого свойства не входит в перечень недопустимых значений. [Подробнее](https://github.com/dockyard/ember-validations#exclusion).
-* `format` - проверка того, что значение валидируемого свойства соответствует заданному регулярному выражению. [Подробнее](https://github.com/dockyard/ember-validations#format).
-* `inclusion` - проверка того, что значение валидируемого свойства входит в перечень допустимых значений. [Подробнее](https://github.com/dockyard/ember-validations#inclusion).
-* `length` - проверка того, что значение валидируемого свойства имеет заданную длину. [Подробнее](https://github.com/dockyard/ember-validations#length).
-* `numericality` - проверка того, что значение валидируемого свойства является числовым. [Подробнее](https://github.com/dockyard/ember-validations#numericality).
-* `presence` - проверка того, что валидируемое свойство должно быть не пустым. [Подробнее](https://github.com/dockyard/ember-validations#presence).
-
-### Кастомные валидаторы
-
-В рамках аддона ember-flexberry реализованы следующие валидаторы:
-
-* `datetime` - проверка корректности ввода даты/даты-времени. [Подробнее](efd2_date-time-validator.html).
-
-### Условные валидаторы
-
-Все валидаторы могут работать также в режиме условной валидации - их срабатывание будет зависеть либо от дополнительной логической функции, либо от логического свойства объекта. [Подробнее](https://github.com/dockyard/ember-validations#conditional-validators).
-
-## Разработка кастомных валидаторов
-
-Прикладные разработчики также могут создавать свои кастомные валидаторы, если имеющихся валидаторов не достаточно для реализации прикладной логики.
-Существует 2 способа реализовать кастомные валидаторы:
-
-* Реализовать отдельный валидатор, который будет возможно переиспользовать для моделей разных сущностей
-* Реализовать inline-валидатор, который будет проверять корректность данных для модели одной конкретной сущности
-
-Подробнее о процессе создания кастомных валидаторов можно посмотреть [здесь](https://github.com/dockyard/ember-validations#custom-validators).
-
-Кроме этого, можно посмотреть исходный код валидаторов в [репозитории аддона Ember Validations на GitHub](https://github.com/dockyard/ember-validations/tree/master/addon/validators).
diff --git a/pages/products/flexberry-ember/3.x/work-with-data/efd3_model-validation.ru.md b/pages/products/flexberry-ember/3.x/work-with-data/efd3_model-validation.ru.md
deleted file mode 100644
index a61062368..000000000
--- a/pages/products/flexberry-ember/3.x/work-with-data/efd3_model-validation.ru.md
+++ /dev/null
@@ -1,147 +0,0 @@
----
-title: Валидация моделей
-sidebar: flexberry-ember-3_sidebar
-keywords: Flexberry Ember
-toc: true
-permalink: ru/efd3_model-validation.html
-folder: products/ember-flexberry-data/models-and-projections/
-lang: ru
-summary: Описаны основные шаги по настройке валидации в приложении
----
-
-## Описание
-
-Клиентская валидация настраивается в приложении с использовнием аддона [ember-cp-validations](https://github.com/offirgolan/ember-cp-validations) (в документации к данному аддону можно более подробно познакомиться со всеми его возможностями).
-
-По умолчанию валидация задаётся на уровне модели в объекте `ValidationRules`, при этом определеный набор валидаторов генерируется в автогенерируемый миксин модели на основании заданных настроек на уровне модели предметной области во Flexberry Designer.
-
-## Типы валидаторов
-
-Аддон `ember-cp-validations` предоставляет следующие валидаторы (более подробную информацию можно посмотреть в [документации аддона](https://rawgit.com/offirgolan/ember-cp-validations/c4123c983e54f24dd790ffa1bad66cfdf2f47ec6/docs/modules/Validators.html)):
-
-* `alias` - связывает текущий атрибут с каким-нибудь другим в качестве псевдонима, позволяет получить все его сообщения валидации и ошибки.
-* `belongs-to` - позволяет указать, что атрибут является `belongs-to` связью, и позволяет получить все сообщения валидации связанной модели.
-* `collection` - проверяет, что значение атрибута является массивом (или не является, в зависимости от параметров валидатора).
-* `confirmation` - позволяет проверить, что значение атрибута совпадает со значением другого указанного в параметрах атрибута.
-* `date` - проверяет, что значение атрибута является датой, также содержит дополнительные проверки в зависимости от переданных параметров.
-* `dependent` - позволяет указать, что атрибут будет являться валидным, если валидными являются другие связанные атрибуты.
-* `ds-error` - позволяет получить ошибки из [DS.Errors](https://api.emberjs.com/ember-data/3.1/classes/DS.Errors) аддона [ember-data](https://api.emberjs.com/ember-data/3.1).
-* `exclusion` - проверяет, что значение атрибута не содержится в заданном списке.
-* `format` - проверяет значение атрибута на соответствие регулярному выражению.
-* `has-many` - позволяет указать, что атрибут является `has-many` связью, и позволяет получить все сообщения валидации связанных моделей.
-* `inclusion` - проверяет, что значение атрибута содержится в заданном списке.
-* `length` - проверяет длину значения атрибута на равенство числу, либо на вхождение в интервал.
-* `number` - проверяет, что значение атрибута является числом, также содержит дополнительные проверки в зависимости от переданных параметров.
-* `presence` - проверяет, что значение атрибута не явяется пустым (но можно проверить и то, что значение - пустое).
-
-## Генерируемые валидаторы
-
-Валидаторы, которые создаются автоматически при генерации приложения из Flexberry Designer, находятся в автогенерируемом миксине модели (`mixins/regenerated/models`):
-
-```javascript
-export let ValidationRules = {
- propName: {
- descriptionKey: 'localization_path',
- validators: [
- validator('presence', true),
- validator('length', { is: 15 }),
- ...
- ],
- },
- ...
-};
-```
-
-Где `propName` - имя валидируемого свойста, `localization_path` - путь в locales до сообщения валидатора.
-
-В рассмотренном выше примере используются слудующие валидаторы:
-
-* `validator('presence', true)` - проверка того, что значение свойства не пустое.
-* `validator('length', { is: 15 })` - проверка того, что длина значения свойства равна 15.
-
-Автоматически из Flexberry Designer генрируются следующие валидаторы:
-
-* Для всех типов полей: `validator('ds-error')` и `validator('presence', true)` (если для соответствующего атрибута на уровне модели предметной области во Flexberry Designer указано, что он не может иметь пустое значение).
-* Для полей с типом дата: `validator('date')`.
-* Для числовых типов: `validator('number', { allowString: true, allowBlank: true, integer: true })`. Значения параметров зависят от свойств атрибута в модели Flexberry Designer: `allowString` - может ли число быть задано в виде строки; `allowBlank` - может ли значение быть пустым; `integer` - если `true`, то допускаются только целые числа.
-* Для `hasMany` связи: `validator('has-many')`.
-
-### Дополнительные валидаторы
-
-Для добавления собственных правил валидации, которые не генерируются автоматически из Flexberry Designer, нужно в модели (в папке `models`) добавить их в объект `ValidationRules`.
-Все собственные валидаторы нужно добавлять до строки с определением `const Validations = buildValidations(...)`.
-
-Например:
-
-```javascript
-ValidationRules.name = {
- descriptionKey: 'models.testModel.validations.name.__caption__',
- validators: [
- validator('length', { min: 5 })
- ],
-};
-```
-
-В этом примере для поля `name` добавляется валидатор для проверки минимальной длины строки - не менее 5 символов. В `descriptionKey` при этом указывается путь в locales до сообщения валидатора.
-
-## Компоненты для валидации
-
-Для отображения сообщений валидации в аддоне `ember-flexberry` есть два компонента - `flexberry-validationmessage` и `flexberry-validationsummary`.
-
-### Компонент flexberry-validationmessage
-
-Компонент `flexberry-validationmessage` предназначен для отображения сообщений валидации у определенного свойства модели. В шаблоне роута этот компонент объявляется следующим образом:
-
-```hbs
-{% raw %}
-{{flexberry-validationmessage error=(v-get validationObject "propertyName" "messages")}}
-{% endraw %}
-```
-
-Где `validationObject` - валидируемая модель, `propertyName` - имя свойства модели, сообщения валидаторов которого отображаются в данном компоненте. `messages` - имя свойства с сообщениями валидации (по умолчанию все сообщения хранятся в свойстве `messages`, также в `message` можно получить наиболее приоритетное сообщение, тогда будет отображаться только 1 сообщение валидации, которое будет меняться по мере выполнения условий валидаторов). `v-get` - хелпер из аддона валидации, который позволяет получить значение указанного свойства некоторого объекта (в документации аддона `ember-cp-validations`, ссылка на которую указана выше, можно найти о нем дополнительную информацию).
-
-{% include note.html content="Важно! Имя свойства не должно быть многоуровневым, т.е. если нужно отображать валидацию для поля мастера, то нельзя использовать в качестве имени свойства \"master.propertyName\", в этом случае необходимо в качестве модели брать именно модель мастера:" %}
-
-```hbs
-{% raw %}
-{{flexberry-validationmessage error=(v-get validationObject.master "propertyName" "messages")}}
-{% endraw %}
-```
-
-### Компонент flexberry-validationsummary
-
-Компонент `flexberry-validationsummary` предназначен для отображения списка сообщений валидации. По умолчанию он используется на формах редактирования для отображения всех сообщений валидации редактируемой модели. Например:
-
-```hbs
-{% raw %}
-{{flexberry-validationsummary errors=(v-get validationObject "messages")}}
-{% endraw %}
-```
-
-### Валидация на формах редактирования
-
-Для валидации на формах редактирования используются описанные выше компоненты, которые генерируются автоматически в шаблонах форм редактирования:
-
-* `flexberry-validationmessage` в шаблоне формы располагается после каждого компонента для редактирования атрибута модели.
-* `flexberry-validationsummary` - по умолчанию в шаблоне формы располагается перед всеми полями на форме (компонентами для редактирования атрибутов модели).
-
-Компоненты для редактирования атрибутов модели из аддона `ember-flexberry` меняют свой цвет, если валидация соответствующего атрибута модели не является успешной (по умолчанию используется красный цвет). Для этого компоненту при ошибках валидации устанавливается класс `error`. Например:
-
-```hbs
-{% raw %}
-{{flexberry-field
- ...
- class=(if (v-get validationObject "propertyName" "isInvalid") "error")
-}}
-{% endraw %}
-```
-
-Где `validationObject` - валидируемая модель, `propertyName` - имя свойства, а `isInvalid` - флаг, определяющий, что хотя бы один валидатор у данного свойства не выполнился успешно.
-
-## Кастомные валидаторы
-
-Аддон [ember-cp-validations](https://github.com/offirgolan/ember-cp-validations) позволяет создавать собственные валидаторы. Для этого необходимо в консоли в папке с приложением выполнить команду `ember g validator validator-name`, где `validator-name` - имя создаваемого валидатора.
-
-Данная команда генерирует файл `app/validators/validator-name.js`, а также тест для него. В сгенерированном валидаторе необходимо доработать логику валидации в методе `validate` - он должен возвращать либо `true`, если валидатор выполняется успешно, либо сообщение валидации в виде строки. Также можно возвращать `Promise`, который разрешается в `true`, или в сообщение валидации.
-
-Более подробную информации о кастомных валидаторах можно получить в [документации аддона](https://rawgit.com/offirgolan/ember-cp-validations/c4123c983e54f24dd790ffa1bad66cfdf2f47ec6/docs/classes/Custom.html).
\ No newline at end of file
diff --git a/pages/products/flexberry-ember/3.x/work-with-data/efd3_validations.ru.md b/pages/products/flexberry-ember/3.x/work-with-data/efd3_validations.ru.md
new file mode 100644
index 000000000..f8e916e2b
--- /dev/null
+++ b/pages/products/flexberry-ember/3.x/work-with-data/efd3_validations.ru.md
@@ -0,0 +1,205 @@
+---
+title: Валидация данных
+sidebar: flexberry-ember-3_sidebar
+keywords: Flexberry Ember Validations
+toc: true
+permalink: ru/efd3_validations.html
+folder: products/flexberry-ember/3.x/work-with-data/
+lang: ru
+summary: Описание валидации и её настройки в приложениях ember-flexberry
+---
+
+Практически неотъемлемой частью любого приложения, работающего с пользовательским вводом данных, является валидация этих данных. Валидация служит не только для предотвращения ошибок в приложении, но и для облегчения работы пользователя с приложением, предоставляя ему подсказки по ожидаемым форматам и ограничениям вводимых данных.
+
+Валидация данных в приложениях на основе `Flexberry Ember` дополняет серверную валидацию, обычно реализуемую с помощью [бизнес-сервера объектов данных Flexberry ORM](fo_business-server.html).
+
+По умолчанию, валидация данных осуществляется на уровне модели, поскольку модель является основной единицой пользовательского ввода. Валидация модели описывается в виде набора правил для свойств модели, которые должны соблюдатся, чтобы объект модели считался валидным. В контроллере формы редактирования, перед сохранением объекта модели, проверяется валидность этого объекта, по описанным правилам.
+
+## Описание правил валидации
+
+Способ описания правил валидации зависит от используемого в приложении аддона для валидации, это может быть [`ember-cp-validations`](#ember-cp-validations) или [`ember-validations`](#ember-validations). При генерации модели по её метаданным, также генерируется набор правил для её валидации, который зависит от различных параметров, указанных для атрибутов модели.
+
+### ember-cp-validations
+
+Аддон [`ember-cp-validations`](https://github.com/offirgolan/ember-cp-validations) имеет большой набор встроенных валидаторов гибко настраиваемых с помощью параметров, что позволяет описывать сложные правила валидации модели.
+
+Чтобы реализвать валидацию модели с использованием аддона `ember-cp-validations`, необходимо использовать функцию `buildValidations`, предоставляемую этим аддоном, функция создаёт миксин, который нужно добавить к классу модели.
+
+Если в приложении установлен аддон `ember-cp-validations`, вместе с миксином модели, будет сгенерирован объект `ValidationRules`, содержащий валидаторы для свойств модели. На основе объекта `ValidationRules` будет создан миксин, и добавлен к классу модели. По умолчанию генерируются следующие правила валидации:
+
+* [`presence`](http://offirgolan.github.io/ember-cp-validations/docs/classes/Presence.html) - для свойств с типами `string` и `boolean` и установленным атрибутом `NotNull`, а так же обязательных связей один к одному
+* [`number`](http://offirgolan.github.io/ember-cp-validations/docs/classes/Number.html) - для свойств с типами `number` и `decimal`
+* [`date`](http://offirgolan.github.io/ember-cp-validations/docs/classes/Date.html) - для свойств с типом `date`
+* [`has-many`](http://offirgolan.github.io/ember-cp-validations/docs/classes/Has%20Many.html) - для множественных связей
+* [`ds-error`](http://offirgolan.github.io/ember-cp-validations/docs/classes/DS%20Error.html) - для всех свойств модели
+
+Чтобы изменить правила валидации для модели, можно расширить объект `ValidationRules`, или описать новый объект с нужными правилами, например:
+
+```js
+// app/models/user.js
+import DS from 'ember-data';
+import { buildValidations, validator } from 'ember-cp-validations';
+import BaseModel from 'ember-flexberry-data/models/model-without-validation';
+
+import {
+ ValidationRules,
+ Model as UserMixin
+} from '../mixins/regenerated/models/user';
+
+const Validations = buildValidations({
+ ...ValidationRules,
+ firstName: null, // Убрать сгенерированные правила
+ lastName: {
+ descriptionKey: 'models.user.lastName-caption', // Путь для локализации имени свойства
+ validators: [
+ validator('ds-error'),
+ validator('presence', true),
+ validator('length', { min: 2, max: 50 }),
+ ],
+ },
+});
+
+const Model = BaseModel.extend(UserMixin, Validations, {
+});
+
+export default Model;
+```
+
+Полный список доступных валидаторов [смотрите в документации аддона `ember-cp-validations`](http://offirgolan.github.io/ember-cp-validations/docs/modules/Validators.html).
+
+Для отображения ошибок валидации пользователю, используются компоненты `{% raw %}{{flexberry/validation-summary}}{% endraw %}` и `{% raw %}{{flexberry-validationmessage}}{% endraw %}`. Компонент `{% raw %}{{flexberry/validation-summary}}{% endraw %}` используется для отображания списока всех ошибок валидации, а компонент `{% raw %}{{flexberry-validationmessage}}{% endraw %}` для отображения ошибки валидации одного свойства. Пример использования этих компонентов в шаблоне формы редактирования:
+
+```hbs
+{% raw %}{{!-- app/templates/user-edit.hbs --}}{% endraw %}
+
+```
+
+Обратите внимание что для отображения ошибок валидации одного свойства, в компоненте `{% raw %}{{flexberry-validationmessage}}{% endraw %}`, по умолчанию используется выражение `(v-get validationModel "lastName" "message")`. Таким образом будет отображена ошибка валидации только об одном не выполненном правиле валидации для этого свойства. Если необходимо выводить сразу все ошибки, можно использовать выражение `(v-get validationModel "lastName" "messages")`.
+
+### ember-validations
+
+Аддон [`ember-validations`](https://github.com/DavyJonesLocker/ember-validations) ранее использовался по умолчанию, при генерации приложения с использованием аддона `ember-flexberry`. Сейчас аддон `ember-validations` не поддерживается, и не рекомендуется к использованию.
+
+Чтобы реализвать валидацию модели с использованием аддона `ember-validations`, необходимо добавить к классу модели миксин `EmberValidations`, предоставляемый этим аддоном, и описать правила валидации в свойстве `validations` класса модели.
+
+При генерации модели, в качестве базового класса используется модель из аддона `ember-flexberry-data`, в которой уже добавлен миксин из аддона `ember-validations`, поэтому можно сразу описать правила валидации в свойстве `validations` класса модели, например:
+
+```js
+// app/models/user.js
+import DS from 'ember-data';
+import BaseModel from 'ember-flexberry-data/models/model';
+
+import { Model as UserMixin } from '../mixins/regenerated/models/user';
+
+const Model = BaseModel.extend(UserMixin, {
+ validations: {
+ lastName: {
+ presence: true,
+ length: { minimum: 2, maximum: 50 },
+ },
+ },
+});
+
+export default Model;
+```
+
+Полный список доступных валидаторов [смотрите в документации аддона `ember-validations`](https://github.com/DavyJonesLocker/ember-validations#validators).
+
+Для отображения ошибок валидации пользователю, используются компоненты `{% raw %}{{flexberry-validationsummary}}{% endraw %}` и `{% raw %}{{flexberry-validationmessage}}{% endraw %}`. Компонент `{% raw %}{{flexberry-validationsummary}}{% endraw %}` используется для отображания списока всех ошибок валидации, а компонент `{% raw %}{{flexberry-validationmessage}}{% endraw %}` для отображения ошибки валидации одного свойства. Пример использования этих компонентов в шаблоне формы редактирования:
+
+```hbs
+{% raw %}{{!-- app/templates/user-edit.hbs --}}{% endraw %}
+
+```
+
+## Валидация на уровне контроллера
+
+При наличии нескольких форм редактрования для одной модели, например, если разные пользователи приложения должны заполнять разные части одной модели, может быть трудно описать все правила валидации в модели. В таких случаях можно перенести валидацию на уровень контроллера, и описать правила валидации для каждой формы отдельно.
+
+Чтобы перенести валидацию на уровень контроллера, необходимо в контроллере формы редактирования изменить значение свойства `validationModel`. Для этого можно использовать вычислимое свойство, которое возвращает ссылку на сам контроллер. По умолчанию, свойство `validationModel` является алиасом для совойства `model`. После того как свойство `validationModel` стало ссылатся на контроллер, миксин с правилами валидации можно добавлять к контроллеру.
+
+Для более гибкой настройки поведения валидации, можно переопределить метод контроллера `validateModel`, например:
+
+```js
+// app/controllers/user-edit.js
+import { computed } from '@ember/object';
+import { resolve } from 'rsvp';
+import { buildValidations, validator } from 'ember-cp-validations';
+
+import EditFormController from 'ember-flexberry/controllers/edit-form';
+
+const Validations = buildValidations({
+ 'model.lastName': { // Правило для свойства модели относительно контроллера
+ descriptionKey: 'models.user.lastName-caption',
+ validators: [
+ validator('ds-error'),
+ validator('presence', true),
+ validator('length', { min: 2, max: 50 }),
+ ],
+ },
+});
+
+export default EditFormController.extend(Validations, {
+ validationModel: computed(function () {
+ return this;
+ }),
+
+ validateModel() {
+ // Игнорировать ошибки валидации для новых моделей
+ if (this.get('model.isNew')) {
+ return resolve();
+ }
+
+ // Выполнять валидацию в остальных случаях
+ return this._super(...arguments);
+ },
+});
+```
+
+Чтобы отключить валидацию в какой либо форме, необходимо установить `null` в значение свойства `validationModel` контроллера этой формы.
+
+## Одновременное использование ember-cp-validations и ember-validations
+
+При необходимости можно установить в приложении оба аддона для валидации, и `ember-cp-validations`, и `ember-validations`, генерация моделей при этом будет выполнятся для аддона `ember-cp-validations`.
+
+Если в приложении стауновен аддон `ember-validations`, и вы хотите дополнительно установить `ember-cp-validations`, выполните команду:
+
+```cmd
+ember generate use-ember-cp-validations
+```
+
+При выполнении этой команды, в приложение будет установлен аддон `ember-cp-validations`, и добавлен сервис `validations` для совместимости аддонов.
+
+Если в приложении стауновен аддон `ember-cp-validations`, и вы хотите дополнительно установить `ember-validations`, выполните команду:
+
+```cmd
+ember generate use-ember-validations
+```
+
+При выполнении этой команды, в приложение будет установлен аддон `ember-validations`, и добавлен сервис `validations` для совместимости аддонов.