---
title: Аналоги материалов
slug: erp-uh/аналоги-материалов
---


## СтруктураПолейТаблицыДляЗаменыНаАналоги
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

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

```bsl

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

Пример вызова
```bsl
Результат = АналогиМатериалов.СтруктураПолейТаблицыДляЗаменыНаАналоги() 
```
</details>

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

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

```bsl

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

Пример вызова
```bsl
Результат = АналогиМатериалов.ПараметрыВыбораАналогов(ТипИсточника) 
```
</details>

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

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

```bsl

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

Пример вызова
```bsl
Результат = АналогиМатериалов.ПоместитьВоВременноеХранилищеРаспределениеЗапасов();
```
</details>

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

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

```bsl

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

Пример вызова
```bsl
Результат = АналогиМатериалов.ДополнительныеПараметры() 
```
</details>

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

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

```bsl

// Формирует данные товаров для отображения, подбора и замены аналогов
//
// Параметры:
// 	Форма                   - ФормаКлиентскогоПриложения -
// 	ИмяОбъекта              - Строка - имя объекта
// 	ИмяТаблицы              - Строка - имя таблицы
//	Режим                   - Число - 0 - показать аналоги
//                                    1 - подобрать аналоги
//                                    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

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

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

// Получает таблицу замены для формирования этапов.
//
// Параметры:
//  Товары  - ТаблицаЗначений - таблица материалов с колонками:
//             * Идентификатор           - Число -
//             * Номенклатура            - СправочникСсылка.Номенклатура -
//             * Характеристика          - СправочникСсылка.ХарактеристикиНоменклатуры -
//             * Подразделение           - СправочникСсылка.СтруктураПредприятия -
//             * НаправлениеДеятельности - СправочникСсылка.НаправленияДеятельности -
//             * ЗаказНаПроизводство     - ДокументСсылка.ЗаказНаПроизводство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

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

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

---
