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