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