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

ТоварыВРезервеНаСкладахКонтрольСвободныхОстатков_ПТиУ() public method

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