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

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

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