Привет всем!
Есть документ где согласно условиям (высота, ширина, длина заготовки) рассчитывается норма расхода материала на данную заготовку. При расчете нормы должен применяться коэффициент, который зависит от высоты.
Вопрос в следующем:
Даны условия:
если Высота >0,5мм но <4мм
Норма = ((Длина+5)*(Ширина+5)*Высота)*Коэф.
Коэф=1,075
если Высота >4мм но <10м
Норма = ((Длина+5)*(Ширина+5)*Высота)*Коэф.
Коэф=1,11
если Высота >10мм но <160мм
Норма = ((Длина+10)*(Ширина+10)*Высота)*Коэф.
Коэф=1,18
Как это можно отразить в модуле?
Если ... тогда
ИначеЕсли ... тогда
ИначеЕсли ... тогда
иначе
КонецЕсли;
Опиши функцию типа:
// в функцию передаем параметр высоты длины и ширины
Функция РассчитатьНому(Высота, Длина, Ширина)
Норма = 0;
Если Высота >= 0.5 И Высота < 4 тогда
Коэф = 1.075;
Норма = ((Длина+5)*(Ширина+5)*Высота)*Коэф;
ИначеЕсли Высота >= 4 И Высота < 10 тогда
Коэф = 1.11;
Норма = ((Длина+5)*(Ширина+5)*Высота)*Коэф;
ИначеЕсли Высота >= 10 И Высота < 160 тогда
Коэф = 1.18;
Норма = ((Длина+10)*(Ширина+10)*Высота)*Коэф;
иначе
Сообщить("Достигнут предел высоты или не описано условие для её обработки :)");
КонецЕсли;
Возврат Норма;
КонецФункции
РассчитаннаяНорма = РассчитатьНому(15, 150, 150);
Спасибо, попробую,
Загвоздка ещё в том, что это применяется если материал для заготовки "лист" (например, Лист3 ст.4, Лист30 ст.20 и т.д.), а еще есть "поковка" - там применяется другая формула. Может поскажете как быть в этом случае?
Alisa, тогда поставьте условие на материал:
Если Материал = ...Лист Тогда
Норма = РассчитатьНормуМатериала(Высота, Длина, Ширина);// ф-ция, которую привел Batchir
ИначеЕсли Материал = ...Поковка Тогда
Норма = АналогичнаяФункцияДляПоковки(Высота, Длина, Ширина);
КонецЕсли;
Cпасибо, буду пробывать.
Какой-то глюк (наверное не то пишу) - вообще перестает считать нормы. Уф, устала!
Нада сходить на курсы использования ОТЛАДЧИКА.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua