---
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

// Возвращает уточненный текст исключения для пользователя и
// категорию для вызова исключения с уточненным текстом.
//
// Параметры:
//  ИнформацияОбОшибке - ИнформацияОбОшибке - исходная информация об ошибке.
//  ЗаголовокОшибки    - Строка - заголовок, уточняющий ошибку для пользователя и администратора.
//                                Если не указан, тогда возвращается текст исключения без уточнения.
//
//  ОшибкаНаКлиенте - Булево - нужно указать Истина, если уточняется ошибка,
//      которая изначально возникла на клиенте, так как для некоторых ошибок,
//      например, ОшибкаДоступаКЛокальномуФайлу, ОшибкаРаботыСПринтером платформа
//      делает разную обработку (доступ к локальному файлу на клиенте дополняется
//      уточнениями, а на сервере не дополняется), соответственно требуется
//      по-разному вызывать исключение с уточнением.
//
// Возвращаемое значение:
//  Структура:
//   * Текст - Строка - текст ошибки с уточнением (без уточнения, если ЗаголовокОшибки пустой).
//   * Категория - КатегорияОшибки - категория для вызова исключения с уточнением.
//               - Неопределено - если категорию нужно оставить неуказанной
//                   при вызове исключения с уточнением.
//
// Пример:
//	Попытка
//		ВыполнитьКоманду(...);
//	Исключение
//		ИнформацияОбОшибке = ИнформацияОбОшибке();
//		ЗаголовокОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
//			НСтр("ru = 'Не удалось выполнить команду %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

// АПК:142-выкл 4 необязательных параметра для совместимости с предыдущими версиями библиотеки.

// Добавляет в список ошибок новую ошибку пользователя для дальнейшей отправки с помощью
// процедуры СообщитьОшибкиПользователю().
// Предназначена для накопления списка ошибок с последующей обработкой этого списка, перед тем как вывести
// пользователю. Полученный список ошибок можно, например, отсортировать по важности, очистить от дублей,
// а также вывести пользователю в ином виде, чем выводит метод СообщитьПользователю, например в табличный документ.
//
// Параметры:
//  Ошибки - Неопределено - создать новый список ошибок.
//         - Структура:
//            * СписокОшибок - Массив из Структура:
//             ** ПолеОшибки - Строка
//             ** ТекстДляОднойОшибки - Строка
//             ** ГруппаОшибок - Произвольный
//             ** НомерСтроки - Число
//             ** ТекстДляНесколькихОшибок - Строка
//            * ГруппыОшибок - Соответствие
//
//  ПолеОшибки - Строка - значение, которое задается в свойстве Поле объекта СообщениеПользователю.
//           Для автоподстановки номера строки должна содержать "%1".
//           Например, "Объект.ИНН" или "Объект.Пользователи[%1].Пользователь".
//  ТекстДляОднойОшибки - Строка - текст ошибки для случая, когда ГруппаОшибок в коллекции только одна,
//           например НСтр("ru = 'Пользователь не выбран.'").
//  ГруппаОшибок - Произвольный - используется для выбора либо текста для одной ошибки,
//           либо текста для нескольких ошибок, например, имя "Объект.Пользователи".
//           Если значение не заполнено, тогда используется текст для одной ошибки.
//  НомерСтроки - Число - значение от 0 ... , определяющее номер строки, который нужно подставить
//           в строку ПолеОшибки и в ТекстДляНесколькихОшибок (подставляется НомерСтроки + 1).
//  ТекстДляНесколькихОшибок - Строка - текст ошибки для случая, когда добавлено несколько ошибок с одинаковым
//           свойством ГруппаОшибок, например, НСтр("ru = 'Пользователь в строке %1 не выбран.'").
//  ИндексСтроки - Неопределено - совпадает со значением параметра НомерСтроки.
//           Число - значение от 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

// АПК: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

// Возвращает имя значения перечисления типа платформы.
//
// Параметры:
//  ЗначениеТипаПлатформы - Неопределено - вернуть текущее имя типа платформы
//                                         (из объекта СистемнаяИнформация).
//                        - ТипПлатформы - вернуть имя указанного значения типа платформы.
// Возвращаемое значение:
//  Строка - например, Windows_x86_64, Linux_x86_64, MacOS_x86...
//
Функция ИмяТипаПлатформы(Знач ЗначениеТипаПлатформы = Неопределено) Экспорт
```

Пример вызова
```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, 3, 5, 7];
//	//В = [3, 7, 9];
//	Результат = ОбщегоНазначенияКлиентСервер.РазностьМассивов(А, В);
//	//Результат = [1, 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

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

Пример вызова
```bsl
Результат = ОбщегоНазначенияКлиентСервер.СпискиЗначенийИдентичны(Список1, Список2, СравниватьКоличествоЗначений);
```
</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

// Возвращает пустой уникальный идентификатор.
//
// Возвращаемое значение:
//  УникальныйИдентификатор - 00000000-0000-0000-0000-000000000000
//
Функция ПустойУникальныйИдентификатор() Экспорт
```

Пример вызова
```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  - Строка - второй сравниваемый номер версии.
//
// Возвращаемое значение:
//   Число   - больше 0, если СтрокаВерсии1 > СтрокаВерсии2; 0, если версии равны.
//
Функция СравнитьВерсии(Знач СтрокаВерсии1, Знач СтрокаВерсии2) Экспорт
```

Пример вызова
```bsl
Результат = ОбщегоНазначенияКлиентСервер.СравнитьВерсии(СтрокаВерсии1, СтрокаВерсии2) 
```
</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  - Строка - второй сравниваемый номер версии.
//
// Возвращаемое значение:
//   Число   - больше 0, если СтрокаВерсии1 > СтрокаВерсии2; 0, если версии равны.
//
Функция СравнитьВерсииБезНомераСборки(Знач СтрокаВерсии1, Знач СтрокаВерсии2) Экспорт
```

Пример вызова
```bsl
Результат = ОбщегоНазначенияКлиентСервер.СравнитьВерсииБезНомераСборки(СтрокаВерсии1, СтрокаВерсии2) 
```
</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

////////////////////////////////////////////////////////////////////////////////
// Функции для работы с файлами.
//

// Добавляет к переданному пути каталога конечный символ-разделитель, если он отсутствует.
//
// Параметры:
//  ПутьКаталога - Строка - путь к каталогу.
//  УдалитьПлатформа - ТипПлатформы - параметр устарел, больше не используется.
//
// Возвращаемое значение:
//  Строка
//
// Пример:
//  Результат = ДобавитьКонечныйРазделительПути("C:\Мой каталог"); // возвращает "C:\Мой каталог\".
//  Результат = ДобавитьКонечныйРазделительПути("C:\Мой каталог\"); // возвращает "C:\Мой каталог\".
//  Результат = ДобавитьКонечныйРазделительПути("%APPDATA%"); // возвращает "%APPDATA%\".
//
Функция ДобавитьКонечныйРазделительПути(Знач ПутьКаталога, Знач УдалитьПлатформа = Неопределено) Экспорт
```

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

// Раскладывает полное имя файла на составляющие.
//
// Параметры:
//  ПолноеИмяФайла - Строка - полный путь к файлу или каталогу.
//  ЭтоКаталог - Булево - признак того, что передано имя каталога.
//
// Возвращаемое значение:
//   Структура - имя файла, разложенное на составные части (аналогично свойствам объекта Файл):
//     ПолноеИмя - Строка - полный путь к файлу, т.е. полностью соответствует входному параметру ПолноеИмяФайла.
//     Путь -Строка - путь к каталогу, в котором находится файл.
//     Имя - Строка - имя файла с расширением, без пути к файлу.
//     Расширение - Строка - расширение файла с точкой вначале.
//     ИмяБезРасширения - Строка - имя файла без расширения и без пути к файлу.
//
// Пример:
//  ПолноеИмяФайла = "c:\temp\test.txt";
//  ЧастиИмениФайла = РазложитьПолноеИмяФайла(ПолноеИмяФайла);
//
//  В результате структура полей будет заполнена следующим образом:
//    ПолноеИмя: "c:\temp\test.txt",
//    Путь: "c:\temp\",
//    Имя: "test.txt",
//    Расширение: ".txt",
//    ИмяБезРасширения: "test".
//
Функция РазложитьПолноеИмяФайла(Знач ПолноеИмяФайла, ЭтоКаталог = Ложь) Экспорт
```

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

// Возвращает строку недопустимых символов в имени файла
// согласно HTTP://en.wikipedia.org/wiki/Filename - в разделе "Reserved characters and words".
//
// Возвращаемое значение:
//   Строка
//
Функция ПолучитьНедопустимыеСимволыВИмениФайла() Экспорт
```

Пример вызова
```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 <Адрес1>, Получатель 2 <Адрес2>,...
//
// Возвращаемое значение:
//  Массив из Структура:
//   * Псевдоним      - Строка - представление адресата.
//   * Адрес          - Строка - найденный и соответствующий требованиям почтовый адрес.
//                               Если текст, похожий на адрес найден, но не соответствует требованиям
//                               стандартов, то такой текст записывается в поле "Псевдоним".
//   * ОписаниеОшибки - Строка - текстовое представление ошибки, либо пустая строка, если ошибок нет.
//
Функция АдресаЭлектроннойПочтыИзСтроки(Знач СписокАдресов) Экспорт
```

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

// Проверяет email-адрес на соответствие требованиям стандартов RFC 5321, RFC 5322,
// а также RFC 5335, RFC 5336 и RFC 3696.
// Кроме того, функция ограничивает использование спецсимволов.
//
// Параметры:
//  Адрес - Строка - проверяемый email.
//  РазрешитьЛокальныеАдреса - Булево - не выдавать ошибку в случае отсутствия зоны домена в адресе.
//
// Возвращаемое значение:
//  Булево - Истина, если ошибок нет.
//
Функция АдресЭлектроннойПочтыСоответствуетТребованиям(Знач Адрес, РазрешитьЛокальныеАдреса = Ложь) Экспорт
```

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

// Проверяет, что введенная строка с email-адресами введена правильно.
//
// Формат строки:
//  Z = ИмяПользователя|[Имя Пользователя] [<]пользователь@почтовый_сервер[>], Строка = Z[<разделитель*>Z].
//
//  Прим.: разделитель* - имеется ввиду любой разделитель адресов.
//
// Параметры:
//  Адреса - Строка - правильная строка с почтовыми адресами.
//  ВызыватьИсключение - Булево - передать Ложь, чтобы в случае неуспешного разбора не выдавалось исключение.
//
// Возвращаемое значение:
//  Массив из Структура:
//   * Адрес - Строка - e-mail получателя.
//   * Представление - Строка - имя получателя.
//
Функция РазобратьСтрокуСПочтовымиАдресами(Знач Адреса, ВызыватьИсключение = Истина) Экспорт
```

Пример вызова
```bsl
Результат = ОбщегоНазначенияКлиентСервер.РазобратьСтрокуСПочтовымиАдресами(Адреса, ВызыватьИсключение);
```
</details>

## ИмяCOMСоединителя
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

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

```bsl

////////////////////////////////////////////////////////////////////////////////
// Процедуры и функции для работы с внешним соединением.

// Возвращает имя COM-класса для работы с 1С:Предприятием 8 через COM-соединение.
//
// Возвращаемое значение:
//  Строка
//
Функция ИмяCOMСоединителя() Экспорт
```

Пример вызова
```bsl
Результат = ОбщегоНазначенияКлиентСервер.ИмяCOMСоединителя() 
```
</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СПредприятия - Строка - имя сервера (для клиент-серверной ИБ)
//    * ИмяИнформационнойБазыНаСервере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

////////////////////////////////////////////////////////////////////////////////
// Математические процедуры и функции.

// Выполняет пропорциональное распределение суммы в соответствии
// с заданными коэффициентами распределения.
//
// Параметры:
//  РаспределяемаяСумма - Число  - сумма, которую надо распределить, если сумма равна 0 - то возвращается Неопределено;
//                                 Если передана отрицательная - расчет по модулю и после инверсия знаков результата.
//  Коэффициенты        - Массив - коэффициенты распределения, должны быть положительны или отрицательными одновременно
//  Точность            - Число  - точность округления при распределении. Необязателен.
//
// Возвращаемое значение:
//  Массив - массив размерностью равный массиву коэффициентов, содержит
//           суммы в соответствии с весом коэффициента (из массива коэффициентов).
//           В случае, если распределить невозможно (кол-во коэффициентов = 0
//           есть коэффициенты с отрицательным значением или суммарный вес коэффициентов = 0),
//           тогда будет возвращено Неопределено.
//
// Пример:
//
//	Коэффициенты = Новый Массив;
//	Коэффициенты.Добавить(1);
//	Коэффициенты.Добавить(2);
//	Результат = ОбщегоНазначенияКлиентСервер.РаспределитьСуммуПропорциональноКоэффициентам(1, Коэффициенты);
//	// Результат = [0.33, 0.67]
//
Функция РаспределитьСуммуПропорциональноКоэффициентам(Знач РаспределяемаяСумма, Знач Коэффициенты, Знач Точность = 2) Экспорт
```

Пример вызова
```bsl
Результат = ОбщегоНазначенияКлиентСервер.РаспределитьСуммуПропорциональноКоэффициентам(РаспределяемаяСумма, Коэффициенты, Точность);
```
</details>

## ЗаменитьНедопустимыеСимволыXML
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

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

```bsl

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

Пример вызова
```bsl
Результат = ОбщегоНазначенияКлиентСервер.ЗаменитьНедопустимыеСимволыXML(Текст, СимволЗамены);
```
</details>

## УдалитьНедопустимыеСимволыXML
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

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

```bsl

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

Пример вызова
```bsl
Результат = ОбщегоНазначенияКлиентСервер.УдалитьНедопустимыеСимволыXML(Текст) 
```
</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

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

Пример вызова
```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 - РасписаниеРегламентногоЗадания - второе расписание.
//
// Возвращаемое значение:
//  Булево - Истина, если одинаковые.
//
Функция РасписанияОдинаковые(Знач Расписание1, Знач Расписание2) Экспорт
```

Пример вызова
```bsl
Результат = ОбщегоНазначенияКлиентСервер.РасписанияОдинаковые(Расписание1, Расписание2) 
```
</details>

## СтруктураURI
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

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

```bsl

// Разбирает строку URI на составные части и возвращает в виде структуры.
// На основе RFC 3986.
//
// Параметры:
//  СтрокаURI - Строка - ссылка на ресурс в формате:
//                       <схема>://<логин>:<пароль>@<хост>:<порт>/<путь>?<параметры>#<якорь>.
//
// Возвращаемое значение:
//  Структура - составные части URI согласно формату:
//   * Схема         - Строка - схема из URI.
//   * Логин         - Строка - логин из URI.
//   * Пароль        - Строка - пароль из URI.
//   * ИмяСервера    - Строка - часть <хост>:<порт> из URI.
//   * Хост          - Строка - хост из URI.
//   * Порт          - Строка - порт из URI.
//   * ПутьНаСервере - Строка - часть <путь>?<параметры>#<якорь> из URI.
//
Функция СтруктураURI(Знач СтрокаURI) Экспорт
```

Пример вызова
```bsl
Результат = ОбщегоНазначенияКлиентСервер.СтруктураURI(СтрокаURI) 
```
</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

// Создает объект описания защищенного соединения OpenSSL или КриптоПро.
// В веб-клиенте безопасность соединения OpenSSL не обеспечивается, соединение КриптоПро не поддерживается.
// См. также описание объектов ЗащищенноеСоединениеOpenSSL и ЗащищенноеСоединениеКриптоПро в синтаксис-помощнике.
//
// Параметры:
//  СертификатКлиента - СертификатКлиентаФайл
//                    - СертификатКлиентаWindows
//                    - Неопределено - клиентский сертификат OpenSSL.
//  СертификатыУдостоверяющихЦентров - СертификатыУдостоверяющихЦентровФайл
//                                   - СертификатыУдостоверяющихЦентровWindows
//                                   - СертификатыУдостоверяющихЦентровLinux
//                                   - СертификатыУдостоверяющихЦентровОС
//                                   - Неопределено - сертификаты удостоверяющих центров OpenSSL.
//  ВидСоединения - Строка, Неопределено - "OpenSSL" (по умолчанию), "КриптоПро"
//
// Возвращаемое значение:
//  ЗащищенноеСоединениеOpenSSL,
//  ЗащищенноеСоединениеКриптоПро
//
Функция НовоеЗащищенноеСоединение(Знач СертификатКлиента = Неопределено, Знач СертификатыУдостоверяющихЦентров = Неопределено, Знач ВидСоединения = Неопределено) Экспорт
```

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

// Возвращает параметры экрана используемого устройства.
//
// Возвращаемое значение:
//   Структура:
//     * Ширина  - Число - ширина экрана в пикселях.
//     * Высота  - Число - высота экрана в пикселях.
//     * DPI     - Число - плотность пикселей экрана.
//     * Портрет - Булево - если экран в портретной ориентации, тогда Истина, иначе - Ложь.
//
Функция ПараметрыЭкранаУстройства() Экспорт
```

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

## ДатаHTTP
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

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

```bsl

// Преобразует универсальную дату в дату формата rfc1123-date.
// См. https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html, п. 3.3.1.
//
// Параметры:
//  Дата - Дата
//
// Возвращаемое значение:
//  Строка
//
// Пример:
//  ДатаHTTP(Дата(2021,12,9,9,14,58)) = "Thu, 09 Dec 2021 09:14:58 GMT".
//
Функция ДатаHTTP(Знач Дата) Экспорт
```

Пример вызова
```bsl
Результат = ОбщегоНазначенияКлиентСервер.ДатаHTTP(Дата) 
```
</details>

## ДатаRFC1123
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

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

```bsl

// Возвращает дату, преобразованную из формата rfc1123-date в тип Дата.
// См. https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html, п. 3.3.1.
//
// Параметры:
//  ДатаСтрокойHTTP - Строка
//
// Возвращаемое значение:
//  Дата
//
// Пример:
//  ДатаRFC1123("Thu, 09 Dec 2021 09:14:58 GMT") = Дата(2021,12,9,9,14,58).
//
Функция ДатаRFC1123(ДатаСтрокойHTTP) Экспорт
```

Пример вызова
```bsl
Результат = ОбщегоНазначенияКлиентСервер.ДатаRFC1123(ДатаСтрокойHTTP) 
```
</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

// АПК:547-выкл устаревший программный интерфейс может вызывать устаревшие процедуры и функции.

// Устарела. Следует использовать ОбщегоНазначенияКлиент.СообщитьПользователю или ОбщегоНазначения.СообщитьПользователю
// Формирует и выводит сообщение, которое может быть связано с элементом
// управления формы.
//
// Параметры:
//  ТекстСообщенияПользователю - Строка - текст сообщения.
//  КлючДанных                 - ЛюбаяСсылка - объект или ключ записи информационной базы, к которому это сообщение относится.
//  Поле                       - Строка - наименование реквизита формы.
//  ПутьКДанным                - Строка - путь к данным (путь к реквизиту формы).
//  Отказ                      - Булево - выходной параметр, всегда устанавливается в значение Истина.
//
// Пример:
//
//  1. Для вывода сообщения у поля управляемой формы, связанного с реквизитом объекта:
//  ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
//   НСтр("ru = 'Сообщение об ошибке.'"), ,
//   "ПолеВРеквизитеФормыОбъект",
//   "Объект");
//
//  Альтернативный вариант использования в форме объекта:
//  ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
//   НСтр("ru = 'Сообщение об ошибке.'"), ,
//   "Объект.ПолеВРеквизитеФормыОбъект");
//
//  2. Для вывода сообщения рядом с полем управляемой формы, связанным с реквизитом формы:
//  ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
//   НСтр("ru = 'Сообщение об ошибке.'"), ,
//   "ИмяРеквизитаФормы");
//
//  3. Для вывода сообщения связанного с объектом информационной базы:
//  ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
//   НСтр("ru = 'Сообщение об ошибке.'"), ОбъектИнформационнойБазы, "Ответственный",,Отказ);
//
//  4. Для вывода сообщения по ссылке на объект информационной базы:
//  ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
//   НСтр("ru = 'Сообщение об ошибке.'"), Ссылка, , , Отказ);
//
//  Случаи некорректного использования:
//   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>

## УстановитьВнешнееСоединение
<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 -
//                                                            клиент-серверный;
//    * КаталогИнформационнойБазы                   - Строка - каталог информационной базы для файлового режима работы;
//    * ИмяСервера1СПредприятия                     - Строка - имя сервера1С:Предприятия;
//    * ИмяИнформационнойБазыНаСервере1СПредприятия - Строка - имя информационной базы на сервере1С:Предприятия;
//    * АутентификацияОперационнойСистемы           - Булево - признак аутентификации операционной системы при создании
//                                                             внешнего подключения к информационной базе;
//    * ИмяПользователя                             - Строка - имя пользователя информационной базы;
//    * ПарольПользователя                          - Строка - пароль пользователя информационной базы.
//
//  СтрокаСообщенияОбОшибке - Строка - если в процессе установки внешнего соединения возникает ошибка,
//                                     то подробное описание ошибки помещается в этот параметр.
//  ОшибкаПодключенияКомпоненты - Булево - (возвращаемый параметр) устанавливается Истина, если была ошибка при подключении.
//
// Возвращаемое значение:
//  COMОбъект, Неопределено - в случае успешной установки внешнего соединения возвращается указатель на COM-объект соединения;
//    в случае ошибки возвращается Неопределенно.
//
Функция УстановитьВнешнееСоединение(Параметры, СтрокаСообщенияОбОшибке = "", ОшибкаПодключенияКомпоненты = Ложь) Экспорт
```

Пример вызова
```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 -
//                                                            клиент-серверный;
//   * КаталогИнформационнойБазы                   - Строка - каталог информационной базы для файлового режима работы;
//   * ИмяСервера1СПредприятия                     - Строка - имя сервера1С:Предприятия;
//   * ИмяИнформационнойБазыНаСервере1СПредприятия - Строка - имя информационной базы на сервере1С:Предприятия;
//   * АутентификацияОперационнойСистемы           - Булево - признак аутентификации операционной системы при создании
//                                                            внешнего подключения к информационной базе;
//   * ИмяПользователя                             - Строка - имя пользователя информационной базы;
//   * ПарольПользователя                          - Строка - пароль пользователя информационной базы.
//
// Возвращаемое значение:
//  Структура:
//    * Соединение                  - COMОбъект
//                                  - Неопределено - указатель на COM-объект соединения или Неопределено в
//                                    случае ошибки;
//    * КраткоеОписаниеОшибки       - Строка - краткое описание ошибки;
//    * ПодробноеОписаниеОшибки     - Строка - подробное описание ошибки;
//    * ОшибкаПодключенияКомпоненты - Булево - флаг ошибки подключения COM.
//
Функция УстановитьВнешнееСоединениеСБазой(Параметры) Экспорт
```

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

## ЭтоWindowsКлиент
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

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

```bsl

// Устарела. Следует использовать ОбщегоНазначенияКлиент.ЭтоWindowsКлиент или ОбщегоНазначения.ЭтоWindowsКлиент
// Возвращает Истина, если клиентское приложение запущено под управлением ОС Windows.
//
// Возвращаемое значение:
//  Булево - если нет клиентского приложения, возвращается Ложь.
//
Функция ЭтоWindowsКлиент() Экспорт
```

Пример вызова
```bsl
Результат = ОбщегоНазначенияКлиентСервер.ЭтоWindowsКлиент() 
```
</details>

## ЭтоOSXКлиент
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

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

```bsl

// Устарела. Следует использовать ОбщегоНазначенияКлиент.ЭтоMacOSКлиент или ОбщегоНазначения.ЭтоMacOSКлиент
// Возвращает Истина, если клиентское приложение запущено под управлением ОС X.
//
// Возвращаемое значение:
//  Булево - если нет клиентского приложения, возвращается Ложь.
//
Функция ЭтоOSXКлиент() Экспорт
```

Пример вызова
```bsl
Результат = ОбщегоНазначенияКлиентСервер.ЭтоOSXКлиент() 
```
</details>

## ЭтоLinuxКлиент
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

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

```bsl

// Устарела. Следует использовать ОбщегоНазначенияКлиент.ЭтоLinuxКлиент или ОбщегоНазначения.ЭтоLinuxКлиент
// Возвращает Истина, если клиентское приложение запущено под управлением ОС Linux.
//
// Возвращаемое значение:
//  Булево - если нет клиентского приложения, возвращается Ложь.
//
Функция ЭтоLinuxКлиент() Экспорт
```

Пример вызова
```bsl
Результат = ОбщегоНазначенияКлиентСервер.ЭтоLinuxКлиент() 
```
</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>

## ЭтоВебКлиентПодMacOS
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

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

```bsl

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

Пример вызова
```bsl
Результат = ОбщегоНазначенияКлиентСервер.ЭтоВебКлиентПодMacOS() 
```
</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

// Устарела. Следует использовать ОбщегоНазначенияКлиент.КодОсновногоЯзыка или ОбщегоНазначения.КодОсновногоЯзыка
// Возвращает код основного языка конфигурации, например "ru".
//
// Возвращаемое значение:
//  Строка - код языка.
//
Функция КодОсновногоЯзыка() Экспорт
```

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

// Устарела. Следует использовать ОбщегоНазначенияКлиент.ПредставлениеЛокальнойДатыСоСмещением
//  или ОбщегоНазначения.ПредставлениеЛокальнойДатыСоСмещением
// Преобразует локальную дату к формату "YYYY-MM-DDThh:mm:ssTZD" согласно ISO 8601.
//
// Параметры:
//  ЛокальнаяДата - Дата - дата в часовом поясе сеанса.
//
// Возвращаемое значение:
//   Строка - представление даты.
//
Функция ПредставлениеЛокальнойДатыСоСмещением(ЛокальнаяДата) Экспорт
```

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

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

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

// Устарела. Следует использовать ФайловаяСистемаКлиент.ПараметрыЗапускаПрограммы
// или ФайловаяСистема.ПараметрыЗапускаПрограммы.
// Возвращает структуру параметров для процедуры ЗапуститьПрограмму.
//
// Возвращаемое значение:
//  Структура:
//   * ТекущийКаталог              - Строка - задает текущий каталог запускаемого приложения.
//   * ДождатьсяЗавершения         - Булево - дожидаться завершения запущенного приложения перед продолжением работы.
//   * ПолучитьПотокВывода         - Булево - результат, направленный в поток stdout,
//                                            если не указан ДождатьсяЗавершения - игнорируется.
//   * ПолучитьПотокОшибок         - Булево - ошибки, направленные в поток stderr,
//                                            если не указан ДождатьсяЗавершения - игнорируется.
//   * ВыполнитьСНаивысшимиПравами - Булево - требуется запустить программу с повышением привилегий системы:
//                                            подтверждение UAC для Windows;
//                                            или интерактивный запрос c GUI sudo и перенаправление
//                                            $DISPLAY и $XAUTHORITY текущего пользователя для Linux;
//                                            Не совместим с параметром ДождатьсяЗавершения. В MacOS игнорируется.
//   * Кодировка                   - Строка - код кодировки, устанавливаемый до выполнения пакетной операции.
//                                            В Linux и macOS игнорируется.
//
Функция ПараметрыЗапускаПрограммы() Экспорт
```

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

// Устарела. Следует использовать ФайловаяСистемаКлиент.ЗапуститьПрограмму или ФайловаяСистема.ЗапуститьПрограмму
// Запускает внешнюю программу в соответствии с параметрами запуска.
// Не доступно в веб-клиенте.
//
// Параметры:
//  КомандаЗапуска - Строка
//                 - Массив - командная строка для запуска программы.
//      Если Массив, то: первый элемент массива - путь к исполняемому приложению, остальные - передаваемые параметры,
//      массив соответствует тому, который получит вызываемая программа в argv.
//  ПараметрыЗапускаПрограммы - см. ПараметрыЗапускаПрограммы
//
// Возвращаемое значение:
//  Структура - результат работы программы:
//      КодВозврата - Число  - код возврата программы.
//      ПотокВывода - Строка - результат работы программы, направленный в поток stdout.
//      ПотокОшибок - Строка - ошибки исполнения программы, направленные в поток stderr.
//
// Пример:
//	ОбщегоНазначенияКлиентСервер.ЗапуститьПрограмму("calc");
//
//	ПараметрыЗапускаПрограммы = ОбщегоНазначенияКлиентСервер.ПараметрыЗапускаПрограммы();
//	ПараметрыЗапускаПрограммы.ВыполнитьСНаивысшимиПравами = Истина;
//	ОбщегоНазначенияКлиентСервер.ЗапуститьПрограмму("C:\Program Files\1cv8\common\1cestart.exe",
//		ПараметрыЗапускаПрограммы);
//
//	ПараметрыЗапускаПрограммы = ОбщегоНазначенияКлиентСервер.ПараметрыЗапускаПрограммы();
//	ПараметрыЗапускаПрограммы.ДождатьсяЗавершения = Истина;
//	Результат = ОбщегоНазначенияКлиентСервер.ЗапуститьПрограмму("ping 127.0.0.1 -n 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

// Устарела. Следует использовать ПолучениеФайловИзИнтернета.ДиагностикаСоединения
// Запускает диагностику сетевого ресурса.
// Не доступно в веб-клиенте.
// В модели сервиса функциональность ограничена получением описания ошибки.
//
// Параметры:
//  URL - Строка - адрес URL ресурса, диагностику которого надо выполнить.
//
// Возвращаемое значение:
//  Структура - результат работы программы:
//      ОписаниеОшибки    - Строка - краткое описание ошибки.
//      ЖурналДиагностики - Строка - подробный журнал диагностики с техническими подробностями.
//
// Пример:
//	// Диагностика веб-сервиса адресного классификатора.
//	Результат = ОбщегоНазначенияКлиентСервер.ДиагностикаСоединения("https://api.orgaddress.1c.com/orgaddress/v1?wsdl");
//
//	ОписаниеОшибки    = Результат.ОписаниеОшибки;
//	ЖурналДиагностики = Результат.ЖурналДиагностики;
//
Функция ДиагностикаСоединения(URL) Экспорт
```

Пример вызова
```bsl
Результат = ОбщегоНазначенияКлиентСервер.ДиагностикаСоединения(URL) 
```
</details>

---

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

---
