diff --git a/docs/docs/getting-started/fields.md b/docs/docs/getting-started/fields.md index 3a8d908..ff3e68e 100644 --- a/docs/docs/getting-started/fields.md +++ b/docs/docs/getting-started/fields.md @@ -25,7 +25,7 @@ tags: [Начало] ```bsl ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура") .Выбрать("Наименование КАК НаименованиеНоменклатуры, ЭтоГруппа - |НаименованиеПолное, ЕдиницаИзмерения КАК ЕдИзм") + |НаименованиеПолное, ЕдиницаИзмерения КАК ЕдИзм") .ВТаблицуЗначений(); ``` diff --git a/docs/docs/getting-started/where.md b/docs/docs/getting-started/where.md new file mode 100644 index 0000000..e09fff0 --- /dev/null +++ b/docs/docs/getting-started/where.md @@ -0,0 +1,47 @@ +--- +sidebar_position: 3 +tags: [Начало] +--- + +# Отбор (поиск) данных + +## Предикат + +Все отборы в библиотеке строятся на предикатах. Предикат это утверждение которое возвращает `Истина` или `Ложь`. Предикаты создаются при помощи специальной функции `Предикат`: + +```bsl +Предикат = СЗ_Запрос.Предикат() + .Реквизит("ЭтоГруппа").Равно(Ложь); +``` + +Предикаты соединяются между собой при помощи логической функции `И`. Например: + +```bsl +Предикат = СЗ_Запрос.Предикат() + .Реквизит("ЭтоГруппа").Равно(Ложь) + .Реквизит("Родитель").НеРавно(Родитель); +``` + +будет эквивалентно коду: + +```bsl +... +ГДЕ + Номенклатура.ЭтоГруппа = &Параметр_0 + И Номенклатура.Родитель = &Параметр_1 +... + +Запрос.УстановитьПараметр("Параметр_0", Ложь); +Запрос.УстановитьПараметр("Параметр_1", Родитель); +``` + +## Использование предиката в поиске данных + +Созданный предикат передаётся в функцию `Где`: + +```bsl +ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура") + .Где(СЗ_Запрос.Предикат() + .Реквизит("ЭтоГруппа").Равно(Ложь)) + .ВТаблицуЗначений(); +```