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