---
title: Выбор объектов УХ
slug: erp-uh/выбор-объектов-ух
---


## НастройкаПроцессаВыбораВладельца
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl
//
// Параметры:
//  ВладелецОбъектовВыбора - ОпределяемыйТип.ВладельцыОбъектовВыбора - объект-владелец выбора.
//  СоздаватьНовуюНастройку - Булево - Истина - создать настройку, если ее нет. Ложь - не создавать.
//
// Возвращаемое значение:
//	СправочникСсылка.НастройкиПроцессаВыбора - настройка процесса выбора.
//	ПустаяСсылка() - если флаг СоздаватьНовуюНастройку == Ложь и настройка не существует.
//
Функция НастройкаПроцессаВыбораВладельца(ВладелецОбъектовВыбора, СоздаватьНовуюНастройку=Ложь) Экспорт
```

Пример вызова
```bsl
Результат = ВыборОбъектовУХ.НастройкаПроцессаВыбораВладельца(ВладелецОбъектовВыбора, СоздаватьНовуюНастройку);
```
</details>

## УдалитьНастройкуПроцесса
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

Процедура УдалитьНастройкуПроцесса(ВладелецОбъектовВыбора) Экспорт
```

Пример вызова
```bsl
ВыборОбъектовУХ.УдалитьНастройкуПроцесса(ВладелецОбъектовВыбора) 
```
</details>

## ПометитьНаУдалениеНастройкуПроцесса
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Помечает только если настройка
// Вызываем при удалении записи регистра НастройкиПроцессаВыбора
Процедура ПометитьНаУдалениеНастройкуПроцесса(ВладелецОбъектовВыбора) Экспорт
```

Пример вызова
```bsl
ВыборОбъектовУХ.ПометитьНаУдалениеНастройкуПроцесса(ВладелецОбъектовВыбора) 
```
</details>

## ЗарегистрироватьОбъектВыбора
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

Процедура ЗарегистрироватьОбъектВыбора(ВладелецОбъектовВыбора, СсылкаОбъектаВыбора) Экспорт
```

Пример вызова
```bsl
ВыборОбъектовУХ.ЗарегистрироватьОбъектВыбора(ВладелецОбъектовВыбора, СсылкаОбъектаВыбора) 
```
</details>

## УстановитьСостояниеПроцессаВыбора
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

Процедура УстановитьСостояниеПроцессаВыбора(ВладелецОбъектовВыбора, ТекущийЭтапВыбора, ПроцессВыбораЗавершен = Ложь, НомерПереторжкиВход = 0) Экспорт
```

Пример вызова
```bsl
ВыборОбъектовУХ.УстановитьСостояниеПроцессаВыбора(ВладелецОбъектовВыбора, ТекущийЭтапВыбора, ПроцессВыбораЗавершен, НомерПереторжкиВход);
```
</details>

## УстановитьСостояниеПроцессаСУчетомПереторжки
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Устанавливает в этапе выбора ЭтапВход для объекта ВладелецОбъектовВыбораВход
// состояние выбора ПроцессВыбораЗавершен. При необходимости записывает номер переторжки.
Процедура УстановитьСостояниеПроцессаСУчетомПереторжки(ВладелецОбъектовВыбораВход, ЭтапВход, ПроцессВыбораЗавершен = Ложь) Экспорт
```

Пример вызова
```bsl
ВыборОбъектовУХ.УстановитьСостояниеПроцессаСУчетомПереторжки(ВладелецОбъектовВыбораВход, ЭтапВход, ПроцессВыбораЗавершен);
```
</details>

## ПолучитьСостояниеПроцессаСУчетомПереторжки
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Возвращает структуру описания состояния для объекта выбора ВладелецОбъектовВыбораВход.
// При необходимости учитывает текущий номер переторжки.
Функция ПолучитьСостояниеПроцессаСУчетомПереторжки(ВладелецОбъектовВыбораВход) Экспорт
```

Пример вызова
```bsl
Результат = ВыборОбъектовУХ.ПолучитьСостояниеПроцессаСУчетомПереторжки(ВладелецОбъектовВыбораВход) 
```
</details>

## ПолучитьСостояниеПроцессаВыбора
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

Функция ПолучитьСостояниеПроцессаВыбора(ВладелецОбъектовВыбора, НомерПереторжкиВход = Неопределено) Экспорт
```

Пример вызова
```bsl
Результат = ВыборОбъектовУХ.ПолучитьСостояниеПроцессаВыбора(ВладелецОбъектовВыбора, НомерПереторжкиВход);
```
</details>

## РегистрацияПриЗаписиОБъектаВыбора
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Регистрирует объект выбора.
// Вызывается из подписки на событие РегистрацияОбъектаСравненияПриЗаписи.
//
Процедура РегистрацияПриЗаписиОБъектаВыбора(Источник, Отказ) Экспорт
```

Пример вызова
```bsl
ВыборОбъектовУХ.РегистрацияПриЗаписиОБъектаВыбора(Источник, Отказ) 
```
</details>

## ОтменитьРегистрациюОбъектаВыбора
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Очищает все регистры по измерениям объекта и владельца выбора.
//
Процедура ОтменитьРегистрациюОбъектаВыбора(ВладелецОбъектовВыбора, ОбъектВыбора) Экспорт
```

Пример вызова
```bsl
ВыборОбъектовУХ.ОтменитьРегистрациюОбъектаВыбора(ВладелецОбъектовВыбора, ОбъектВыбора) 
```
</details>

## ОбновитьРегистрациюОбъектовВыбора
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Параметры:
//	ВладелецОбъектовВыбора - ОпределяемыйТип.ОбъектыВыбора, либо Справочник.НастройкиПроцессаВыбора
//		В первом случае отбор объектов делаем по владельцу.
//		Во втором, по всем владельцам связанным с настройкой (по умолчанию: один владелец - одна настройка).
//
Процедура ОбновитьРегистрациюОбъектовВыбора(ВладелецОбъектовВыбора) Экспорт
```

Пример вызова
```bsl
ВыборОбъектовУХ.ОбновитьРегистрациюОбъектовВыбора(ВладелецОбъектовВыбора) 
```
</details>

## РестартСостояния
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Сбрасывает состояние процесса выбора по объекту ВладелецОбъектовВыбораВход
// на первый этап ЭтапВход.
Процедура РестартСостояния(ВладелецОбъектовВыбораВход, ЭтапВход) Экспорт
```

Пример вызова
```bsl
ВыборОбъектовУХ.РестартСостояния(ВладелецОбъектовВыбораВход, ЭтапВход) 
```
</details>

## РестартПроцессаВыбора
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

Процедура РестартПроцессаВыбора(ВладелецОбъектовВыбора) Экспорт
```

Пример вызова
```bsl
ВыборОбъектовУХ.РестартПроцессаВыбора(ВладелецОбъектовВыбора) 
```
</details>

## СотрудникМожетОцениватьПоВладельцу
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Возвращает:
//	Булево - Истина - сотрудник может оценивать объект.
//		Ложь - сотрудник не может оценивать объект.
//
Функция СотрудникМожетОцениватьПоВладельцу(Сотрудник, ВладелецОбъектовВыбора) Экспорт
```

Пример вызова
```bsl
Результат = ВыборОбъектовУХ.СотрудникМожетОцениватьПоВладельцу(Сотрудник, ВладелецОбъектовВыбора) 
```
</details>

## ПолучитьВладельцевВыбораПоСотруднику
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Возвращает:
//	Массив, элементы - ОпределяемыйТип.ВладельцыОбъектовВыбора, у которых в настройках процесса выбора указан данный сотрудник.
//
Функция ПолучитьВладельцевВыбораПоСотруднику(Сотрудник, ПроверитьВозможностьЗакрыватьЭтапОценки=Ложь, ТолькоАктивные=Ложь) Экспорт
```

Пример вызова
```bsl
Результат = ВыборОбъектовУХ.ПолучитьВладельцевВыбораПоСотруднику(Сотрудник, ПроверитьВозможностьЗакрыватьЭтапОценки, ТолькоАктивные);
```
</details>

## СоответствиеОбъектовВыбораВладельцам
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Возвращает соответствие типов объектов выбора типам их владельцев.
// Ключ - тип владельца объектов выбора.
// Значение - строка с именем типа объекта выбора, как для функции Тип().
//
Функция СоответствиеОбъектовВыбораВладельцам() Экспорт
```

Пример вызова
```bsl
Результат = ВыборОбъектовУХ.СоответствиеОбъектовВыбораВладельцам() 
```
</details>

## ИмяТипаОбъектаВыбораПоВладельцу
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// По типу владельца получаем имя типа объекта выбора.
// Параметры:
//	ТипВладельца - Строка - типа владельца из множества ОперделяемыйТип.ВладельцыОбъектовВыбора. Если строка, то как для функции Тип().
//	ТипРезультата - Число. Определяет тип возвращаемого результата:
//		0 - Строка, имя типа, как для функции Тип();
//		1 - Тип;
//		2 - ОбъектМетаданных по типу.
//
// Возвращает:
//	Строка, Тип, ОбъектМетаданных - описание типа объекта выбора (из множества типов ОпределяемыйТип.ОбъектыВыбора).
//
Функция ИмяТипаОбъектаВыбораПоВладельцу(ТипВладельца, ТипРезультата=0) Экспорт
```

Пример вызова
```bsl
Результат = ВыборОбъектовУХ.ИмяТипаОбъектаВыбораПоВладельцу(ТипВладельца, ТипРезультата);
```
</details>

## ИнтегральнаяОценкаОбъекта
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Получить интегральную оценку объекта.
Функция ИнтегральнаяОценкаОбъекта(ВладелецОбъектовВыбора, ОбъектОценки, ЭтапОценки=Неопределено, ТолькоВыбранныйЭтап=Ложь) Экспорт
```

Пример вызова
```bsl
Результат = ВыборОбъектовУХ.ИнтегральнаяОценкаОбъекта(ВладелецОбъектовВыбора, ОбъектОценки, ЭтапОценки, ТолькоВыбранныйЭтап);
```
</details>

## ПолучитьБалльноеЗначениеКритерия
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Рассчитываем нормальное значение критерия.
// Параметры:
//	ВладелецОбъектовВыбора - ОпределяемыйТип.ВладельцыОбъектовВыбора, определяет настройки критерия.
//	Критерий - СправочникСсылка.КритерииВыбора.
//	Значение - Число, значение критерия, которое ввел пользователь.
// Возвращает: Число - нормальное значение, умноженное на вес критерия, а также,
//	либо отнесенное к баллу 0-5 (и поделенное на 5, для приведения к диапазону 0..1),
//	либо приводим к дипазону 0-1 по отношению к минимальному и максимальному значению критерия.
//
Функция ПолучитьБалльноеЗначениеКритерия(ВладелецОбъектовВыбора, Критерий, Знач Значение) Экспорт
```

Пример вызова
```bsl
Результат = ВыборОбъектовУХ.ПолучитьБалльноеЗначениеКритерия(ВладелецОбъектовВыбора, Критерий, Значение) 
```
</details>

## БаллПоЗначению
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Получить балл по "сырому" значению критерия. Проверяем вхождение переменной Значение в один из диапазонов [От0,До0), [От1,До1), ... [От5,До5].
// Если такой интервал найден, то возвращаем его номер 0..5. Если не найдено, то возвращаем 0.
// Параметры:
//	Значение - Число, проверяемое значение.
//	ОписаниеБаллов - Структура:
//		От0..5 - Число, значение нижней границы для проверки вхождения значения в диапазон 0..5.
//		До0..5 - Число, значение верхней границы для проверки вхождения значения в диапазон 0..5.
// Возвращаем Число, номер диапазона от 0 до 5.
//
Функция БаллПоЗначению(Значение, ОписаниеБаллов) Экспорт
```

Пример вызова
```bsl
Результат = ВыборОбъектовУХ.БаллПоЗначению(Значение, ОписаниеБаллов) 
```
</details>

## НормальноеЗначениеКритерия
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Рассчитываем нормальное значение критерия.
// Параметры:
//	ВладелецОбъектовВыбора - ОпределяемыйТип.ВладельцыОбъектовВыбора, определяет настройки критерия.
//	Критерий - СправочникСсылка.КритерииВыбора.
//	Значение - Число, значение критерия, которое ввел пользователь.
// Возвращает: Число - нормальное значение, умноженное на вес критерия, а также,
//	либо отнесенное к баллу 0-5 (и поделенное на 5, для приведения к диапазону 0..1),
//	либо приводим к дипазону 0-1 по отношению к минимальному и максимальному значению критерия.
//
Функция НормальноеЗначениеКритерия(ВладелецОбъектовВыбора, Критерий, Значение) Экспорт
```

Пример вызова
```bsl
Результат = ВыборОбъектовУХ.НормальноеЗначениеКритерия(ВладелецОбъектовВыбора, Критерий, Значение) 
```
</details>

## РассчитатьНормальноеЗначениеПоЗначению
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

Функция РассчитатьНормальноеЗначениеПоЗначению(Значение, ПараметрыРасчета) Экспорт
```

Пример вызова
```bsl
Результат = ВыборОбъектовУХ.РассчитатьНормальноеЗначениеПоЗначению(Значение, ПараметрыРасчета));
```
</details>

## РассчитатьЗначенияКритериев
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Рассчитываем значения критериев по владельцу выбора (настройке выбора) для всех этапов процесса выбора
// Параметры:
//	ВладелецОбъектовВыборка - ОпределяемыйТип.ВладельцыОбъектовВыбора.
//
Процедура РассчитатьЗначенияКритериев(ВладелецОбъектовВыбора) Экспорт
```

Пример вызова
```bsl
ВыборОбъектовУХ.РассчитатьЗначенияКритериев(ВладелецОбъектовВыбора) 
```
</details>

## КоличествоЧленовКомиссииЭтапа
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

Функция КоличествоЧленовКомиссииЭтапа(НастройкаПроцессаВыбора, ЭтапВыбора) Экспорт
```

Пример вызова
```bsl
Результат = ВыборОбъектовУХ.КоличествоЧленовКомиссииЭтапа(НастройкаПроцессаВыбора, ЭтапВыбора) 
```
</details>

## ОбновитьЭкспертовЭтапов
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

Процедура ОбновитьЭкспертовЭтапов(НастройкаПроцессаВыбора) Экспорт
```

Пример вызова
```bsl
ВыборОбъектовУХ.ОбновитьЭкспертовЭтапов(НастройкаПроцессаВыбора) 
```
</details>

## ОбновитьНастройкиПроцессаВыбораПоСотрудникам
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

Процедура ОбновитьНастройкиПроцессаВыбораПоСотрудникам(мСотрудников) Экспорт
```

Пример вызова
```bsl
ВыборОбъектовУХ.ОбновитьНастройкиПроцессаВыбораПоСотрудникам(мСотрудников) 
```
</details>

## ОбновитьНастройкиПроцессаВыбораПоКритерию
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

Процедура ОбновитьНастройкиПроцессаВыбораПоКритерию(КритерийОценки) Экспорт
```

Пример вызова
```bsl
ВыборОбъектовУХ.ОбновитьНастройкиПроцессаВыбораПоКритерию(КритерийОценки) 
```
</details>

## ПолучитьКритерииЭтапаДляФункциональногоНаправления
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Возвращает массив структур с описанием критериев для указанного этапа и функционального направления.
// Параметры:
//	НастройкаПроцессаВыбора - СправочникСсылка.НастройкиПроцессаВыбора - обязательный, настройка выбора по которой читаем данные.
//	ЭтапОценки - СправочникСсылка.ЭтапыОценки - необязательный, если не указан, то возвращает критерии по всем этапам.
//		Иначе используется как фильтр для отбора критериев.
//	ФункциональноеНаправление - СправочникСсылка.ФункциональныеНаправления - необязательный, если передано значение, то
//		возвращаются критерии без функционального направления ИС указанным функциональным направлением.
//		Если значение не указано, то возвращаются только критерии без функционального направления.
//
Функция ПолучитьКритерииЭтапаДляФункциональногоНаправления(НастройкаПроцессаВыбора, ЭтапОценки, ФункциональноеНаправление) Экспорт
```

Пример вызова
```bsl
Результат = ВыборОбъектовУХ.ПолучитьКритерииЭтапаДляФункциональногоНаправления(НастройкаПроцессаВыбора, ЭтапОценки, ФункциональноеНаправление) 
```
</details>

## ПолучитьТипыОбъектовВыбораДоступныеПользователю
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Получить массив типов владельцев объектов выбора достуных пользователю
// Параметры:
//	Пользователь - СправочникСсылка.Пользователи - пользователь для которого проверяем доступность типов
//
// Возвращает:
//	Массив, элементы - Тип как подмножество определяемого типа "ВладельцыОбъектовВыбора"
Функция ПолучитьТипыОбъектовВыбораДоступныеПользователю(Пользователь) Экспорт
```

Пример вызова
```bsl
Результат = ВыборОбъектовУХ.ПолучитьТипыОбъектовВыбораДоступныеПользователю(Пользователь) 
```
</details>

## ЗаполнитьСписокВыбораИмяТипаОбъекта
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Производит заполнение списка выбора СписокВыбораВход для реквизита
// ИмяТипаОбъекта на форме.
Процедура ЗаполнитьСписокВыбораИмяТипаОбъекта(СписокВыбораВход) Экспорт
```

Пример вызова
```bsl
ВыборОбъектовУХ.ЗаполнитьСписокВыбораИмяТипаОбъекта(СписокВыбораВход) 
```
</details>

---

© 2024, **ООО 1С-Софт**  
Все права защищены. Эта программа и сопроводительные материалы предоставляются  
в соответствии с условиями лицензии [Attribution 4.0 International (CC BY 4.0)](https://creativecommons.org/licenses/by/4.0/legalcode).

---
