public void РассчитатьНатуральныеСкидки(/*ТоварыНазвание, ДокументОбъект, ФормаДокумента, ВидРеализации*/)
{
//МаксИНТ = 999999999999;
//Товары = ДокументОбъект[ТоварыНазвание];
/*//При работе с качеством будем поступать следующим образом:
*/
/*//Если в документе есть качество - то выполняем полноценную работу с качеством;
*/
/*//Если в документе качества нет - то бонусы ищем только с качеством <Новый>.
*/
//ЕстьКачество = ОбщегоНазначения.ЕстьРеквизитТабЧастиДокумента("Качество", ДокументОбъект.Метаданные(), ТоварыНазвание);
//КачествоНовый = Справочники.Качество.Новый;
/*//В ДеревоЗначений поместим все актуальные бонусные комплекты и их комплектующие.
*/
/*ДЗСпецПредложения = ПолучитьЗапросПоСпецПредложениям(ДокументОбъект.Дата,
ПолучитьМассивПолучателейСкидки(ВидРеализации, ДокументОбъект));*/
//НачатьВыборкуЗаново = Истина;
while(true/*НачатьВыборкуЗаново*/)
{
//НачатьВыборкуЗаново = Ложь;
/*//Создадим ДеревоЗначений для хранения доступных бонусных комплектов.
*/
//ДЗНовыеБонусы = Новый ДеревоЗначений;
//ДЗНовыеБонусы.Колонки.Добавить("Номенклатура");
//ДЗНовыеБонусы.Колонки.Добавить("ХарактеристикаНоменклатуры");
//ДЗНовыеБонусы.Колонки.Добавить("Качество");
//ДЗНовыеБонусы.Колонки.Добавить("Количество");
//ДЗНовыеБонусы.Колонки.Добавить("Комплектующая");
//ДЗНовыеБонусы.Колонки.Добавить("ХарактеристикаКомплектующей");
//ДЗНовыеБонусы.Колонки.Добавить("ЭтоБонус");
//ДЗНовыеБонусы.Колонки.Добавить("СерыйБонус");
//ДЗНовыеБонусы.Колонки.Добавить("КоличествоЕсть");
/*//Если есть доступные бонусные комплекты - откроем форму для выбора комплекта.
*/
if(true/*ДЗНовыеБонусы.Строки.Количество() > 0*/)
{
//ФормаВыбораБонуса = ПолучитьОбщуюФорму("ВыборБонуснойНоменклатуры");
//ФормаВыбораБонуса.СпецПредложения = ДЗНовыеБонусы.Скопировать();
//ВыбранныйБонус = ФормаВыбораБонуса.ОткрытьМодально();
/*//Если пользователь выбрал бонусный комплект,
*/
/*//то заменим комплектующие из таблицы документа этим комплектом,
*/
/*//иначе - вернемся в форму документа.
*/
if(true/*ВыбранныйБонус <> Неопределено*/)
{
//СтруктураСтроки = Новый Структура;
//СтруктураСтроки.Вставить("Номенклатура" , ВыбранныйБонус.Номенклатура);
//СтруктураСтроки.Вставить("ХарактеристикаНоменклатуры", ВыбранныйБонус.ХарактеристикаНоменклатуры);
//СтруктураСтроки.Вставить("Качество" , ВыбранныйБонус.Качество);
//МассивБонусов = ДЗНовыеБонусы.Строки.НайтиСтроки(СтруктураСтроки, Ложь);
//Бонус = МассивБонусов[0];
//Бонус.Количество = ВыбранныйБонус.ВыбранноеКоличество;
/*//Уберем комплектующие бонусного комплекта из таблицы документа.
*/
//СтруктураСтроки = Новый Структура;
//СтруктураСтроки.Вставить("Номенклатура" , Бонус.Номенклатура);
//СтруктураСтроки.Вставить("ХарактеристикаНоменклатуры", Бонус.ХарактеристикаНоменклатуры);
if(true/*ЕстьКачество*/)
{
//СтруктураСтроки.Вставить("Качество", Бонус.Качество);
}
//НовыйБонус = ОбработкаТабличныхЧастей.НайтиСтрокуТабЧасти(Товары, СтруктураСтроки);
/*//Если такого бонусного комплекта в таблице документа нет, то добавим его,
*/
/*//иначе - просто увеличим количество.
*/
if(true/*НовыйБонус = Неопределено*/)
{
//НовыйБонус = Товары.Добавить();
//НовыйБонус.КлючСтроки = УправлениеЗапасами.ПолучитьНовыйКлючСтроки(ДокументОбъект);
//НовыйБонус.Номенклатура = Бонус.Номенклатура;
//НовыйБонус.ХарактеристикаНоменклатуры = Бонус.ХарактеристикаНоменклатуры;
//НовыйБонус.Количество = Бонус.Количество;
//НовыйБонус.ЕдиницаИзмерения = НовыйБонус.Номенклатура.ЕдиницаХраненияОстатков;
if(true/*ЕстьКачество*/)
{
//НовыйБонус.Качество = Бонус.Качество;
}
}
/*//Нужно вызвать обработчик события при изменении Номенклатуры.
*/
//ФормаДокумента.ИзменениеСтрокиПрограммное(НовыйБонус, "Номенклатура");
/*//Запустим проверку на возможные бонусные комплекты еще раз.
*/
//НачатьВыборкуЗаново = Истина;
}
}
}
//;;
}