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