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