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

ТоварыКПолучениюНаСкладыКонтрольОстатков() public method

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