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