---
title: Программное указание серий в Перемещении товаров
slug: типовые-erp-серии-номенклатуры/программное-указание-серий-в-перемещении-товаров
---

Для программного заполнения документа номенклатурой, оприходованной по сериям, нужно в документе `ПеремещениеТоваров` заполнить 2 табличные части - `Товары` и `Серии`.

После заполнения этих табличных частей необходимо их согласовать. Для этого выполняются следующие методы:

```bsl
ПараметрыУказанияСерий  = НоменклатураСервер.ПараметрыУказанияСерий(НовыйДокумент, Документы.ПеремещениеТоваров);
НоменклатураСервер.ЗаполнитьСтатусыУказанияСерий(НовыйДокумент, ПараметрыУказанияСерий);
```
### Пример
```bsl
&НаСервереБезКонтекста
Процедура СоздатьДокументПеремещенияНаСервере(СписаниеТоваров, ДокументПеремещение = Неопределено)
	
    СписаниеОбъект = СписаниеТоваров.ПолучитьОбъект();
	
    НовыйДокумент = Документы.ПеремещениеТоваров.СоздатьДокумент();
    ...
	// Инициализация
    ...
	
    // Заполняем номенклатуру
    Для Каждого Строка Из СписаниеОбъект.СписокНоменклатуры Цикл
		
    	СтрокаТовары = НовыйДокумент.Товары.Добавить();
        СтрокаТовары.Номенклатура = Строка.Номенклатура;
        СтрокаТовары.Количество = Строка.Количество;
        СтрокаТовары.КоличествоУпаковок = Строка.Количество;
	
    КонецЦикла;
	
    // заполняем серии
    Для Каждого Строка Из СписаниеОбъект.СписокНоменклатуры Цикл
        Если ЗначениеЗаполнено(Строка.Серия) Тогда
            ПараметрыОтбора = Новый Структура;
            ПараметрыОтбора.Вставить("Серия", Строка.Серия);
            ПараметрыОтбора.Вставить("Номенклатура", Строка.Номенклатура);
            ПараметрыОтбора.Вставить("Характеристика", Строка.Характеристика);
            ПараметрыОтбора.Вставить("Назначение", Строка.Назначение);
            НайденныеСтроки = НовыйДокумент.Серии.НайтиСтроки(ПараметрыОтбора);
			
            Если НайденныеСтроки.Количество() > 0 Тогда
                СтрокаСерии = НайденныеСтроки.Получить(0);
                СтрокаСерии.Количество = СтрокаСерии.Количество + Строка.Количество;
            Иначе
                СтрокаСерии = НовыйДокумент.Серии.Добавить();
                ЗаполнитьЗначенияСвойств(СтрокаСерии, ПараметрыОтбора);
                СтрокаСерии.НазначениеОтправителя = Строка.Назначение;
                СтрокаСерии.Количество = Строка.Количество;
            КонецЕсли;
			
        КонецЕсли;
    КонецЦикла;
	
    // волшебство
    ПараметрыУказанияСерий  = НоменклатураСервер.ПараметрыУказанияСерий(НовыйДокумент, Документы, ПеремещениеТоваров);
    НоменклатураСервер.ЗаполнитьСтатусыУказанияСерий(НовыйДокумент, ПараметрыУказанияСерий);
	
    НовыйДокумент.Записать(РежимЗаписиДокумента.Проведение);

КонецПроцедуры
```
