---
title: Управление свойствами
slug: bsp/управление-свойствами
---


## ПриСозданииНаСервере
<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

// Возвращает параметры, требуемые для добавления значения свойства.
//
// Возвращаемое значение:
//  Структура:
//     * Наименование - Строка - обязательно для заполнения.
//     * ПолноеНаименование - Строка
//     * Родитель - СправочникСсылка.ЗначенияСвойствОбъектов
//                - СправочникСсылка.ЗначенияСвойствОбъектовИерархия
//     * ЭтоГруппа - Булево
//
Функция ПараметрыДобавленияЗначенияСвойства() Экспорт
```

Пример вызова
```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

// АПК:142-выкл Проектное решение

// Возвращает значения дополнительных свойств объектов.
//
// Параметры:
//  ОбъектыСоСвойствами  - Массив      - объекты, для которых нужно получить значения дополнительных свойств.
//                                       Допустимо передавать объекты только одного типа.
//                       - ЛюбаяСсылка - ссылка на объект, например, СправочникСсылка.Номенклатура,
//                                       ДокументСсылка.ЗаказПокупателя, ...
//  ПолучатьДопРеквизиты - Булево - в результат включать дополнительные реквизиты. По умолчанию Истина.
//  ПолучатьДопСведения  - Булево - в результат включать дополнительные сведения. По умолчанию Истина.
//  Свойства             - Массив из ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения - значения
//                            которых следует получить.
//                       - Массив из Строка - уникальное имя дополнительного свойства.
//                       - Неопределено - по умолчанию, получить значения всех свойств владельца.
//  КодЯзыка             - Строка - код языка, на котором будет получено представление значения свойства.
//                                  Если не указано - берется текущий язык.
//
// Возвращаемое значение:
//  ТаблицаЗначений:
//    * Свойство    - ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения - свойство владельца.
//    * ИмяСвойства - Строка - уникальное имя свойства владельца.
//    * Значение    - Произвольный - значения любого типа из описания типов свойства объекта метаданных:
//                    "Метаданные.ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.Тип".
//    * Представление   - Строка - представление значения на указанном языке.
//    * ВладелецСвойств - ЛюбаяСсылка - ссылка на объект.
//
Функция ЗначенияСвойств(ОбъектыСоСвойствами, Экспорт
```

Пример вызова
```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

// АПК:142-вкл

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

Пример вызова
```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

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

Пример вызова
```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

// 1. Обновляет наименования предопределенных наборов свойств,
// если они отличаются от текущих представлений соответствующих
// им объектов метаданных со свойствами.
// 2. Обновляет наименования не общих свойств, если у них
// уточнение отличается от наименования их набора.
// 3. Устанавливает пометку удаления у необщих свойств,
// если установлена пометка удаления их наборов.
//
Процедура ОбновитьНаименованияНаборовИСвойств() Экспорт
```

Пример вызова
```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).

---
