---
title: Коллекции сумм
slug: erp-uh/коллекции-сумм
---


## НовыйОписаниеКоллекцииСумм
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

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

```bsl

// Конструктор описания коллекции
//
// Пример:
//  Описание = НовыйОписаниеКоллекцииСумм();
//  ДобавитьНаборСумм(Описание, "БухгалтерскийНалоговыйУчет", "Сумма,СуммаНУ");
//  ДобавитьНаборСумм(Описание, "ЭлементыЗатрат");
//
Функция НовыйОписаниеКоллекцииСумм() Экспорт
```

Пример вызова
```bsl
Результат = КоллекцииСумм.НовыйОписаниеКоллекцииСумм() 
```
</details>

## ДобавитьНаборСумм
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

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

```bsl

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

Пример вызова
```bsl
КоллекцииСумм.ДобавитьНаборСумм(ОписаниеКоллекции, ИмяНабора, СоставНабора);
```
</details>

## ЕстьНаборСумм
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

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

```bsl

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

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

## ИменаСвойствСтрокой
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

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

```bsl

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

Пример вызова
```bsl
Результат = КоллекцииСумм.ИменаСвойствСтрокой(ОписаниеКоллекции) 
```
</details>

## ИменаСвойств
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

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

```bsl

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

Пример вызова
```bsl
Результат = КоллекцииСумм.ИменаСвойств(ОписаниеСумм) 
```
</details>

## НовыйКоллекцияСумм
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

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

```bsl

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

Пример вызова
```bsl
Результат = КоллекцииСумм.НовыйКоллекцияСумм(ОписаниеКоллекции, ДляЗаполнения);
```
</details>

## Заполнить
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

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

```bsl

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

Пример вызова
```bsl
КоллекцииСумм.Заполнить(Коллекция, Основание, ОписаниеКоллекций, СоответствиеИмен);
```
</details>

## ДополнитьТаблицуЗначенийКолонкамиСумм
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

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

```bsl

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

Пример вызова
```bsl
КоллекцииСумм.ДополнитьТаблицуЗначенийКолонкамиСумм(Результат, ОписаниеКоллекции) 
```
</details>

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

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

```bsl

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

Пример вызова
```bsl
Результат = КоллекцииСумм.НовыйПеременныйНаборСумм());
```
</details>

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

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

```bsl

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

Пример вызова
```bsl
Результат = КоллекцииСумм.ИнициализироватьПеременныйНаборСумм(Коллекция, ИмяНабора) 
```
</details>

## ТипСумма
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

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

```bsl

Функция ТипСумма() Экспорт
```

Пример вызова
```bsl
Результат = КоллекцииСумм.ТипСумма());
```
</details>

## ТипИдентификатораВершины
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

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

```bsl

Функция ТипИдентификатораВершины() Экспорт
```

Пример вызова
```bsl
Результат = КоллекцииСумм.ТипИдентификатораВершины());
```
</details>

## Сложить
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

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

```bsl

// Прибавляет к каждой из сумм, входящей в коллекцию А, соответствующую сумму, входящую в коллекцию Б.
//
// Параметры:
//  КоллекцияА        - первое слагаемое, модифицируемая коллекция, должна соответствовать ОписаниеКоллекций.
//
//  КоллекцияБ        - второе слагаемое, не изменяется, должна соответствовать ОписаниеКоллекций.
//
//  ОписаниеКоллекций - описание, сконструированное функцией НовыйОписаниеКоллекцииСумм().
//
Процедура Сложить(КоллекцияА, КоллекцияБ, ОписаниеКоллекций) Экспорт
```

Пример вызова
```bsl
КоллекцииСумм.Сложить(КоллекцияА, КоллекцияБ, ОписаниеКоллекций) 
```
</details>

## Вычесть
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

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

```bsl

// Вычитает из каждой из сумм, входящей в коллекцию А, соответствующую сумму, входящую в коллекцию Б.
//
// Параметры:
//  КоллекцияА        - уменьшаемое, модифицируемая коллекция, должна соответствовать ОписаниеКоллекций.
//
//  КоллекцияБ        - вычитаемое, не изменяется, должна соответствовать ОписаниеКоллекций.
//
//  ОписаниеКоллекций - описание, сконструированное функцией НовыйОписаниеКоллекцииСумм().
//
Процедура Вычесть(КоллекцияА, КоллекцияБ, ОписаниеКоллекций) Экспорт
```

Пример вызова
```bsl
КоллекцииСумм.Вычесть(КоллекцияА, КоллекцияБ, ОписаниеКоллекций) 
```
</details>

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

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

```bsl

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

Пример вызова
```bsl
Результат = КоллекцииСумм.Пустая(Коллекция, ОписаниеКоллекции) 
```
</details>

## Ограничить
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

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

```bsl

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

Пример вызова
```bsl
КоллекцииСумм.Ограничить(Суммы, Ограничения, ОписаниеКоллекций) 
```
</details>

## Доля
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

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

```bsl

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

Пример вызова
```bsl
Результат = КоллекцииСумм.Доля(Коллекция, ОписаниеКоллекции, Числитель, Знаменатель) 
```
</details>

## ДоляСуммы
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

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

```bsl

Функция ДоляСуммы(Знач Сумма, Знач Числитель, Знач Знаменатель) Экспорт
```

Пример вызова
```bsl
Результат = КоллекцииСумм.ДоляСуммы(Сумма, Числитель, Знаменатель) 
```
</details>

## ЭлементПеременногоНабораСумм
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

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

```bsl

Функция ЭлементПеременногоНабораСумм(Коллекция, ИмяНабора, Индекс) Экспорт
```

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

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

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

```bsl

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

Пример вызова
```bsl
Результат = КоллекцииСумм.ДобавитьВПеременныйНаборСумм(НаборСумм, Индекс, Сумма) 
```
</details>

## ИтогПеременногоНабораСумм
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

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

```bsl

Функция ИтогПеременногоНабораСумм(Коллекция, ИмяНабора) Экспорт
```

Пример вызова
```bsl
Результат = КоллекцииСумм.ИтогПеременногоНабораСумм(Коллекция, ИмяНабора) 
```
</details>

---

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

---
