V82.ОбщиеМодули.ПроцедурыКонтроляОстатков.ТоварыНаСкладахКонтрольОстатков_ПеремещениеТоваров C# (CSharp) Method

ТоварыНаСкладахКонтрольОстатков_ПеремещениеТоваров() public method

        public void ТоварыНаСкладахКонтрольОстатков_ПеремещениеТоваров(/*СтруктураШапкиДокумента, СтруктураПараметров, МетаданныеТабЧасти, Заголовок, Отказ*/)
        {
            //ЕстьСерия           = МетаданныеТабЧасти.Реквизиты.Найти("СерияНоменклатуры")            <> Неопределено;
            //ЕстьХарактеристика  = МетаданныеТабЧасти.Реквизиты.Найти("ХарактеристикаНоменклатуры")	 <> Неопределено;
            //ЕстьКоэффициент     = МетаданныеТабЧасти.Реквизиты.Найти("Коэффициент")                  <> Неопределено;
            //ЕстьКачество        = МетаданныеТабЧасти.Реквизиты.Найти("Качество")                  	 <> Неопределено;
            /*// ПОЛУЧИМ УСЛОВИЯ ДЛЯ ВИРТУАЛЬНЫХ ТАБЛИЦ ОСТАТКОВ
            */
            /*ПараметрыУсловий = Новый Структура(
            "ЕстьХарактеристика,ЕстьКачество",
            ЕстьХарактеристика,
            ЕстьКачество);*/
            //ПараметрыУсловий.Вставить("ИспользоватьСерииНоменклатуры", СтруктураПараметров.ИспользоватьСерииНоменклатуры);
            //ПараметрыУсловий.Вставить("ИспользоватьХарактеристикиНоменклатуры", СтруктураПараметров.ИспользоватьХарактеристикиНоменклатуры);
            /*УсловияТаблицыОстатков = ПолучитьСтруктуруУсловийТаблицыОстатков(
            СтруктураПараметров.ИмяДокумента,
            СтруктураПараметров.ИмяТаблицы,
            Новый Структура("Полное,БезКачества"),
            ПараметрыУсловий);*/
            //Запрос = Новый Запрос;
            /*// Установим параметры запроса
            */
            //ТоварыНаСкладахЗаполнитьОбщиеПараметрыЗапроса(Запрос,СтруктураШапкиДокумента);
            //Запрос.УстановитьПараметр("Склад",                 СтруктураШапкиДокумента.Склад);
            //Запрос.УстановитьПараметр("ПустойОрдер",           Документы.ПриходныйОрдерНаТовары.ПустаяСсылка());
            //МассивПустыхСсылок = ОбщегоНазначения.МассивПустыхЗначений(МетаданныеТабЧасти.Реквизиты.ДокументРезерва.Тип);
            //Запрос.УстановитьПараметр("МассивПустыхЗаказов",		 МассивПустыхСсылок);
            /*ТекстЗапроса = "
            |ВЫБРАТЬ // Запрос, контролирующий остатки на складах
            |	Док.Номенклатура                                       	КАК Номенклатура,
            |	Док.Номенклатура.Представление                         	КАК НоменклатураПредставление,
            |	Док.Номенклатура.ЕдиницаХраненияОстатков.Представление 	КАК ЕдиницаХраненияОстатковПредставление,
            |   %ПОЛЕ_Док_Характеристика% 								КАК ХарактеристикаНоменклатуры,
            |	ПРЕДСТАВЛЕНИЕ(%ПОЛЕ_Док_Характеристика%) 				КАК ХарактеристикаНоменклатурыПредставление,
            |   %ПОЛЕ_Док_Серия% 										КАК СерияНоменклатуры,
            |	ПРЕДСТАВЛЕНИЕ(%ПОЛЕ_Док_Серия%) 						КАК СерияНоменклатурыПредставление,
            //	|	Док.ДокументРезерва                                    	КАК ДокументРезерва,
            |   &Склад                                                 	КАК Склад,
            |   %ПОЛЕ_Док_Качество% 									КАК Качество,
            |   %ПОЛЕ_Док_Количество% 									КАК ДокументКоличество,
            |   %ПОЛЕ_ОстатокБезСерии_Количество% 						КАК ОстатокБезСерииКоличество,
            |	ЕстьNull(МАКСИМУМ(Остатки.КоличествоОстаток),0)         КАК ОстатокКоличество,
            |	ЕстьNull(МАКСИМУМ(Резервы.КоличествоОстаток),0)         КАК РезервыКоличество,
            |	%ПОЛЕ_РезервыПоСерии_Количество%                    	КАК РезервыПоСерииКоличество,
            |	ЕстьNull(МАКСИМУМ(ТоварыКПередаче.КоличествоОстаток),0) КАК КПередачеКоличество,
            |	%ПОЛЕ_КПередачеБезСерии_Количество% 					КАК КПередачеБезСерииКоличество,
            |	ЕстьNull(МАКСИМУМ(ТоварыКПолучению.КоличествоОстаток),0)КАК КПолучению,
            |	Сумма(ВЫБОР КОГДА
            |			Док.ДокументРезерва ССЫЛКА Документ.ПриходныйОрдерНаТовары
            |		ТОГДА %ПОЛЕ_Док_Количество_Зап%
            |		ИНАЧЕ 0
            |		КОНЕЦ)												КАК КПолучениюПоДокументуКоличество,
            |	ЕстьNull(МАКСИМУМ(РезервыПоДокументу.КоличествоОстаток),0) КАК РезервыПоДокументуКоличество,
            |	%ПОЛЕ_РезервыПоДокументуБезСерии_Количество% 			КАК РезервыПоДокументуБезСерииКоличество,
            |	0 														КАК КПередачеПоДокументуКоличество,
            |	0              											КАК КПередачеПоДокументуБезСерииКоличество
            |
            |ИЗ
            |	Документ." + СтруктураПараметров.ИмяТаблицы + " КАК Док
            |
            //таблица остатков на складах с учетом серий номенклатуры
            |ЛЕВОЕ СОЕДИНЕНИЕ
            |	РегистрНакопления." + СтруктураПараметров.РегистрОстаткиТоваров + ".Остатки(, " + УсловияТаблицыОстатков.Полное + ") КАК Остатки
            |ПО
            |	Остатки.Склад = &Склад
            |	И Остатки.Номенклатура = Док.Номенклатура
            |	И Остатки.Качество = %СОЕДИНЕНИЕ_Качество_Остатки%
            |	И Остатки.ХарактеристикаНоменклатуры = %СОЕДИНЕНИЕ_Характеристика_Остатки%
            |	И Остатки.СерияНоменклатуры = %СОЕДИНЕНИЕ_Серия_Остатки%

            //таблица остатков на складах без учета серий номенклатуры
            |//ЗАПРОС_ОстаткиБезСерии

            //таблица товаров в резерве на складе без учета серий номенклатуры
            |ЛЕВОЕ СОЕДИНЕНИЕ
            |	РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(, " + УсловияТаблицыОстатков.БезКачества + ") КАК Резервы
            |ПО
            |	Резервы.Номенклатура = Док.Номенклатура
            |	//СОЕДИНЕНИЕ_Характеристика_Остатки// И Резервы.ХарактеристикаНоменклатуры = Док.ХарактеристикаНоменклатуры
            |	//СОЕДИНЕНИЕ_Качество_Резервы

            //таблица товаров в резерве на складе с учетом серий номенклатуры
            |//ЗАПРОС_РезервыПоСерии

            //таблица резервов по документу: количество, которое списывается за счет резерва
            |ЛЕВОЕ СОЕДИНЕНИЕ
            |	(ВЫБРАТЬ
            |		ТЧ.Номенклатура
            |		//ПОЛЕ_ТЧ_Характеристика
            |		//ПОЛЕ_ТЧ_Серия
            |
            |		//количество, списываемое за счет резерва, не может превышать остаток в резерве
            |		,ВЫБОР КОГДА Сумма(ТЧ.ДокументКоличество)<Сумма(ВремРезервы.КоличествоОстаток)
            |			ТОГДА Сумма(ТЧ.ДокументКоличество)
            |			ИНАЧЕ Сумма(ВремРезервы.КоличествоОстаток)
            |		КОНЕЦ КАК КоличествоОстаток
            |	ИЗ
            |		//сгруппированная табличная часть документа с отбором строк которые списываются из резерва
            |		(ВЫБРАТЬ
            |			Номенклатура
            |			//ПОЛЕ_Характеристика КАК ХарактеристикаНоменклатуры
            |			//ПОЛЕ_Серия КАК СерияНоменклатуры
            |			,%ПОЛЕ_Заказ%
            |			,%ПОЛЕ_Количество% КАК ДокументКоличество
            |		ИЗ
            |			Документ." + СтруктураПараметров.ИмяТаблицы +"
            |		ГДЕ
            |			Ссылка = &ДокументСсылка
            |			И ДокументРезерва НЕ В (&МассивПустыхЗаказов)
            |			//СОЕДИНЕНИЕ_РезервыПоДокументу_ДокументРезерва
            |		СГРУППИРОВАТЬ ПО
            |			Номенклатура
            |			,%ПОЛЕ_Заказ%
            |			//ПОЛЕ_Характеристика
            |			//ПОЛЕ_Серия
            |		) КАК ТЧ
            |	ЛЕВОЕ СОЕДИНЕНИЕ
            |		РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(, " + УсловияТаблицыОстатков.БезКачества + ") КАК ВремРезервы
            |	ПО
            |		ВремРезервы.Склад = &Склад
            |		И ВремРезервы.Номенклатура = ТЧ.Номенклатура
            |		И ВремРезервы.ХарактеристикаНоменклатуры = %СОЕДИНЕНИЕ_Характеристика_ВремРезервы%
            |		И ВремРезервы.СерияНоменклатуры = %СОЕДИНЕНИЕ_Серия_ВремРезервы%
            |		И ВремРезервы.ДокументРезерва = ТЧ.ДокументРезерва
            |
            |	СГРУППИРОВАТЬ ПО
            |		ТЧ.Номенклатура
            |		//ПОЛЕ_ТЧ_Характеристика
            |		//ПОЛЕ_ТЧ_Серия
            |) КАК РезервыПоДокументу
            |ПО
            |	Док.Номенклатура = РезервыПоДокументу.Номенклатура
            |	//СОЕДИНЕНИЕ_Характеристика_РезервыПоДокументу
            |	//СОЕДИНЕНИЕ_Серия_РезервыПоДокументу
            |	//Док_УсловиеДокументРезерва

            |//таблица резервов по документу без учета серий: количество, которое списывается за счет резерва
            |//ЗАПРОС_РезервыПоДокументуБезСерии

            |//товары к передаче со складов
            |ЛЕВОЕ СОЕДИНЕНИЕ
            |	РегистрНакопления.ТоварыКПередачеСоСкладов.Остатки(, " + УсловияТаблицыОстатков.Полное + ") КАК ТоварыКПередаче
            |ПО
            |	ТоварыКПередаче.Склад = &Склад
            |	И Док.Номенклатура = ТоварыКПередаче.Номенклатура
            | //СОЕДИНЕНИЕ_Характеристика_ТоварыКПередаче
            | //СОЕДИНЕНИЕ_Серия_ТоварыКПередаче
            | //СОЕДИНЕНИЕ_Качество_ТоварыКПередаче

            |//товары к передаче со складов без учета серий
            |//ЗАПРОС_ТоварыКПередачеБезСерии

            // Если мы перемещаем товар, то товар поступивший по ордеру не может быть перемещен без указания этого
            // ордера в качестве документа резрерва, поэтому остатки регистра "Товары к получению на склады" надо
            // вычесть из свободного остатка
            |ЛЕВОЕ СОЕДИНЕНИЕ
            |	РегистрНакопления.ТоварыКПолучениюНаСклады.Остатки(, " + УсловияТаблицыОстатков.Полное + "
            |		// Документ получения может быть только ордером, причем ордера без права продажи не учитываем,
            |       // поскольку они уже учтены в регистре резервов
            |		И ДокументПолучения ССЫЛКА Документ.ПриходныйОрдерНаТовары
            |       И НЕ ДокументПолучения.БезПраваПродажи
            |		) КАК ТоварыКПолучению
            |ПО
            |	ТоварыКПолучению.Номенклатура = Док.Номенклатура
            |	И ТоварыКПолучению.Качество = %СОЕДИНЕНИЕ_Качество_Остатки%
            |	//СОЕДИНЕНИЕ_Характеристика_Остатки// И ТоварыКПолучению.ХарактеристикаНоменклатуры = Док.ХарактеристикаНоменклатуры
            | 	//СОЕДИНЕНИЕ_Серия_ТоварыКПолучению
            | 	И (Док.ДокументРезерва = &ПустойОрдер ИЛИ Не Док.ДокументРезерва ССЫЛКА Документ.ПриходныйОрдерНаТовары)
            |ГДЕ
            |	Док.Ссылка  =  &ДокументСсылка
            |	И Не Док.Номенклатура.Комплект
            |	И Не Док.Номенклатура.Услуга
            |СГРУППИРОВАТЬ ПО
            |
            |	Док.Номенклатура,
            |   %ПОЛЕ_Док_Характеристика%,
            |   %ПОЛЕ_Док_Серия%,
            |   %ПОЛЕ_Док_Качество%
            //	|	 Док.ДокументРезерва
            |ДЛЯ ИЗМЕНЕНИЯ РегистрНакопления." + СтруктураПараметров.РегистрОстаткиТоваров + ".Остатки // Блокирующие чтение таблицы остатков регистра для разрешения коллизий многопользовательской работы
            |ИТОГИ СУММА (ДокументКоличество), МАКСИМУМ(ОстатокБезСерииКоличество), МАКСИМУМ(РезервыКоличество),
            |         МАКСИМУМ(КПередачеКоличество), МАКСИМУМ(РезервыПоДокументуКоличество), Максимум(КПередачеБезСерииКоличество),
            |			МАКСИМУМ(РезервыПоДокументуБезСерииКоличество), МАКСИМУМ(КПередачеПоДокументуКоличество),
            |		Максимум(КПередачеПоДокументуБезСерииКоличество), Максимум(КПолучениюПоДокументуКоличество)
            |ПО Номенклатура
            |   //ПОЛЕ_Характеристика
            |	//ПОЛЕ_Качество
            |";*/
            //ТекстЗапросаОстаткиБезСерии = "";
            //ТекстЗапросаКПередачеБезСерии = "";
            //ТекстЗапросаРезервыПоСерии = "";
            //ТекстЗапросаРезервыПоДокументуБезСерии = "";
            if(true/*ЕстьСерия*/)
            {
                /*ТекстЗапросаОстаткиБезСерии = "
            |ЛЕВОЕ СОЕДИНЕНИЕ
            |	РегистрНакопления." + СтруктураПараметров.РегистрОстаткиТоваров + ".Остатки(, " + УсловияТаблицыОстатков.Полное + ") КАК ОстаткиБезСерии
            |ПО
            |	ОстаткиБезСерии.Номенклатура = Док.Номенклатура
            |	И ОстаткиБезСерии.Качество = %СОЕДИНЕНИЕ_Качество_Остатки%
            |	//СОЕДИНЕНИЕ_Характеристика_Остатки// И ОстаткиБезСерии.ХарактеристикаНоменклатуры = Док.ХарактеристикаНоменклатуры";*/
                /*ТекстЗапросаКПередачеБезСерии = "
            |ЛЕВОЕ СОЕДИНЕНИЕ
            |	РегистрНакопления.ТоварыКПередачеСоСкладов.Остатки(, " + УсловияТаблицыОстатков.Полное + ") КАК ТоварыКПередачеБезСерии
            |ПО
            |	ТоварыКПередачеБезСерии.Номенклатура = Док.Номенклатура
            |	И ТоварыКПередачеБезСерии.Качество = %СОЕДИНЕНИЕ_Качество_Остатки%
            |	//СОЕДИНЕНИЕ_Характеристика_Остатки// И ТоварыКПередачеБезСерии.ХарактеристикаНоменклатуры = Док.ХарактеристикаНоменклатуры";*/
                /*//резервирование может происходить в разрезе серий
            */
                if(true/*СтруктураПараметров.ИспользоватьУказаниеСерийНоменклатурыПриРезервировании*/)
                {
                    //ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"//СОЕДИНЕНИЕ_РезервыПоДокументу_ДокументРезерва", " И ЕСТЬNULL(ВЫРАЗИТЬ(ДокументРезерва КАК Документ.ЗаказПокупателя).ДоговорКонтрагента.ОбособленныйУчетТоваровПоЗаказамПокупателей, ИСТИНА)");
                    /*ТекстЗапросаРезервыПоСерии = "
                |ЛЕВОЕ СОЕДИНЕНИЕ
                |	РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(, " + УсловияТаблицыОстатков.БезКачества + ") КАК РезервыПоСерии
                |ПО
                |	РезервыПоСерии.Номенклатура = Док.Номенклатура
                |	И РезервыПоСерии.СерияНоменклатуры = %СОЕДИНЕНИЕ_Серия_Остатки%
                |	//СОЕДИНЕНИЕ_Характеристика_Остатки// И РезервыПоСерии.ХарактеристикаНоменклатуры = Док.ХарактеристикаНоменклатуры
                |	//СОЕДИНЕНИЕ_Качество_Резервы";*/
                    /*ТекстЗапросаРезервыПоДокументуБезСерии = "
                |ЛЕВОЕ СОЕДИНЕНИЕ
                |	(ВЫБРАТЬ
                |		ТЧ.Номенклатура
                |		//ПОЛЕ_ТЧ_Характеристика
                |		//количество, списываемое за счет резерва, не может превышать количество указанное в документе
                |		,ВЫБОР КОГДА Сумма(ТЧ.ДокументКоличество)<Сумма(ВремРезервы.КоличествоОстаток) ТОГДА
                |   		Сумма(ТЧ.ДокументКоличество)
                |		ИНАЧЕ Сумма(ВремРезервы.КоличествоОстаток)
                |		КОНЕЦ КАК КоличествоОстаток
                |	ИЗ
                |		//сгруппированная табличная часть документа с отбором строк которые списываются из резерва
                |		(ВЫБРАТЬ
                |			Номенклатура
                |			//ПОЛЕ_Характеристика
                |			,%ПОЛЕ_Заказ%
                |			,%ПОЛЕ_Количество% КАК ДокументКоличество
                |		ИЗ
                |			Документ." + СтруктураПараметров.ИмяТаблицы +"
                |		ГДЕ  Ссылка = &ДокументСсылка
                |			И %УсловиеДокументРезерваБезСерии%
                |		СГРУППИРОВАТЬ ПО
                |			Номенклатура
                |			,%ПОЛЕ_Заказ%
                |			//ПОЛЕ_Характеристика
                |		) КАК ТЧ
                |	ЛЕВОЕ СОЕДИНЕНИЕ
                |		РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(, " + УсловияТаблицыОстатков.БезКачества + ") КАК ВремРезервы
                |	ПО
                |		ВремРезервы.Склад = &Склад
                |		И ВремРезервы.Номенклатура = ТЧ.Номенклатура
                |		И ВремРезервы.ХарактеристикаНоменклатуры = %СОЕДИНЕНИЕ_Характеристика_ВремРезервы%
                |		И ВремРезервы.ДокументРезерва = ТЧ.ДокументРезерва
                |
                |	СГРУППИРОВАТЬ ПО
                |		ТЧ.Номенклатура
                |		//ПОЛЕ_ТЧ_Характеристика
                |) КАК РезервыПоДокументуБезСерии
                |ПО
                |Док.Номенклатура                 = РезервыПоДокументуБезСерии.Номенклатура
                |//СОЕДИНЕНИЕ_Характеристика_РезервыПоДокументуБезСерии
                |//Док_УсловиеДокументРезерва
                |";*/
                }
            }
            //ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"//ЗАПРОС_ОстаткиБезСерии",			ТекстЗапросаОстаткиБезСерии);
            //ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"//ЗАПРОС_ТоварыКПередачеБезСерии",	ТекстЗапросаКПередачеБезСерии);
            //ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"//ЗАПРОС_РезервыПоСерии",				ТекстЗапросаРезервыПоСерии);
            //ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"//ЗАПРОС_РезервыПоДокументуБезСерии",	ТекстЗапросаРезервыПоДокументуБезСерии);
            //ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"%ПОЛЕ_ОстатокБезСерии_Количество%",				?(ТекстЗапросаОстаткиБезСерии<>"",				"ЕстьNull(МАКСИМУМ(ОстаткиБезСерии.КоличествоОстаток),0)",		"0"));
            //ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"%ПОЛЕ_КПередачеБезСерии_Количество%",				?(ТекстЗапросаКПередачеБезСерии<>"",			"ЕстьNull(МАКСИМУМ(ТоварыКПередачеБезСерии.КоличествоОстаток),0)",	"0"));
            //ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"%ПОЛЕ_РезервыПоСерии_Количество%",				?(ТекстЗапросаРезервыПоСерии<>"",				"ЕстьNull(МАКСИМУМ(РезервыПоСерии.КоличествоОстаток),0)",		"0"));
            //ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"%ПОЛЕ_РезервыПоДокументуБезСерии_Количество%",	?(ТекстЗапросаРезервыПоДокументуБезСерии<>"",	"ЕстьNull(МАКСИМУМ(РезервыПоДокументуБезСерии.КоличествоОстаток),0)",	"0"));
            //ДополнитьТекстЗапроса(ТекстЗапроса,СтруктураПараметров,ЕстьХарактеристика,,ЕстьСерия,,ЕстьКоэффициент,ЕстьКачество,ложь);
            //СОЕДИНЕНИЕ_Серия_ВремРезервы = "ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)";
            if(true/*ЕстьСерия*/)
            {
                if(true/*СтруктураПараметров.ИспользоватьУказаниеСерийНоменклатурыПриРезервировании*/)
                {
                    /*//резервы по документу имеет смысл определять с точностью до серии - заказ указывается в таб части, т.е. может быть заказ покупателя
            */
                    /*//(в шапке может быть указан внутренний заказ, в этом случае резервы по документу всегда без серий)
            */
                    //ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"//ПОЛЕ_ТЧ_Серия",							",ТЧ.СерияНоменклатуры");
                    //ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"//ПОЛЕ_Серия",								",СерияНоменклатуры");
                    if(true/*СтруктураПараметров.ИспользоватьСерииНоменклатуры*/)
                    {
                        //ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"//СОЕДИНЕНИЕ_Серия_РезервыПоДокументу",	"И Док.СерияНоменклатуры = РезервыПоДокументу.СерияНоменклатуры");
                        //СОЕДИНЕНИЕ_Серия_ВремРезервы = "ТЧ.СерияНоменклатуры";
                    }
                }
            }
            //ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"%СОЕДИНЕНИЕ_Серия_ВремРезервы%", СОЕДИНЕНИЕ_Серия_ВремРезервы);
            //ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"%ПОЛЕ_Заказ%",								"ДокументРезерва");
            //ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"%УсловиеДокументРезерваБезСерии%",			" ДокументРезерва НЕ В (&МассивПустыхЗаказов)");
            //ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"//Док_УсловиеДокументРезерва",				"И Док.ДокументРезерва НЕ В (&МассивПустыхЗаказов)");
            //Запрос.Текст = ТекстЗапроса;
            //РезультатЗапроса = Запрос.Выполнить();
            //Выборка = РезультатЗапроса.Выбрать();
            //ТоварыНаСкладахОбработатьРезультатЗапроса(Выборка,ЕстьСерия,ТекстЗапросаРезервыПоДокументуБезСерии<>"",СтруктураПараметров.ИспользоватьУказаниеСерийНоменклатурыПриРезервировании,Заголовок,Отказ);
        }
ПроцедурыКонтроляОстатков