V82.ОбщиеМодули.УправлениеЗаказами.ЗаполнитьОстаткамиТоваровСРезервомПоВнутреннемуЗаказу C# (CSharp) Method

ЗаполнитьОстаткамиТоваровСРезервомПоВнутреннемуЗаказу() public method

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

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