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