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