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

ЗаполнитьТабЧастьМатериалыВозможнымРазмещением() public method

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