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

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

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