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