s1219257
27.11.2017, 22:20
Код первой формы
&НаКлиенте
Процедура РасчитатьВес(Команда)
Пар = Новый Структура ("Параметр1, Параметр2", Объект.Профиль, Объект.Материал);
ОткрытьФорму("ОбщаяФорма.Форма", Пар);
КонецПроцедуры
Вторая форма
+ Code
&НаСервере
Процедура ПриСозданииНаСервере(Отка� �, СтандартнаяОбработка)
Профиль = Параметры.Параметр1;
Материал = Параметры.Параметр2;
КонецПроцедуры
&НаКлиенте
Процедура ПрофильПриИзменении()
РасчетВеса();
КонецПроцедуры
&НаКлиенте
Процедура МатериалПриИзменении()
РасчетВеса();
КонецПроцедуры
&НаКлиенте
Процедура ДлинаПриИзменении(Элемент)
РасчетВеса();
КонецПроцедуры
&НаКлиенте
Процедура ШиринаПриИзменении(Элемен� �)
РасчетВеса();
КонецПроцедуры
&НаКлиенте
Процедура ВысотаПриИзменении(Элемен� �)
РасчетВеса();
КонецПроцедуры
&НаКлиенте
Процедура ДиаметрПриИзменении(Элеме� �т)
РасчетВеса();
КонецПроцедуры
&НаКлиенте
Процедура РасчетВеса()
Плотность = ПолучитьПлотность(Материа� �);
Сообщить(Вес);
// a = длина
// D = диаметр
// b = ширина
// h = высота
// l = длина
Если (Профиль = "Балка Двутавровая") Тогда
Сообщить("Введите только длину");
//Высота = "";
//Диаметр = "";
Вес = Плотность/8.650 * Длина;
ИначеЕсли (профиль = "Квадрат") Тогда
Сообщить ("Введите только длину и ширину");
Вес = Длина * Длина * Диаметр;
ИначеЕсли (профиль = "Круг") Тогда
Сообщить ("Введите только длину и диаметр");
//Ширина = "";
//Высота = "";
Вес = 3.14/4 * Диаметр * Диаметр * Длина * Плотность;
ИначеЕсли (профиль = "Полоса, лист") Тогда
Сообщить ("Введите только ширину, длину и высоту");;
//Диаметр = "";
Вес = Длина * Ширина * Высота* Плотность;
ИначеЕсли (профиль = "Уголок") Тогда
Сообщить ("Введите только длину, ширину и высоту");
//Ширина = "";
//Высота = "";
Вес = (Длина + Ширина - Высота) * Высота * Длина * Плотность;
ИначеЕсли (профиль = "Труба") Тогда
Сообщить ("Введите только длину, высоту и диаметр");
//Высота = "";
//Диаметр = "";
Вес = 3.14 * (Диаметр - Высота) * Высота * Длина * Плотность;
ИначеЕсли (профиль = "Швеллер") Тогда
Сообщить ("Введите только длину");
//Ширина = "";
Вес = Плотность/7.850 * Длина;
ИначеЕсли (профиль = "Шестигранник") Тогда
Сообщить ("Введите только длину, высоту и диаметр");
//Высота = "";
//Диаметр = "";
Вес = 0.866 * Диаметр * Диаметр * Длина * Плотность;
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ПолучитьПлотность(Профиль)
Возврат Профиль.Плотность;
КонецФункции
Но, есть пару проблем, почему-то не просчитываются поля Ширина и Длина и наконец, как после этого передать поле Вес в первую форму, где есть поле ВесФормы?
&НаКлиенте
Процедура РасчитатьВес(Команда)
Пар = Новый Структура ("Параметр1, Параметр2", Объект.Профиль, Объект.Материал);
ОткрытьФорму("ОбщаяФорма.Форма", Пар);
КонецПроцедуры
Вторая форма
+ Code
&НаСервере
Процедура ПриСозданииНаСервере(Отка� �, СтандартнаяОбработка)
Профиль = Параметры.Параметр1;
Материал = Параметры.Параметр2;
КонецПроцедуры
&НаКлиенте
Процедура ПрофильПриИзменении()
РасчетВеса();
КонецПроцедуры
&НаКлиенте
Процедура МатериалПриИзменении()
РасчетВеса();
КонецПроцедуры
&НаКлиенте
Процедура ДлинаПриИзменении(Элемент)
РасчетВеса();
КонецПроцедуры
&НаКлиенте
Процедура ШиринаПриИзменении(Элемен� �)
РасчетВеса();
КонецПроцедуры
&НаКлиенте
Процедура ВысотаПриИзменении(Элемен� �)
РасчетВеса();
КонецПроцедуры
&НаКлиенте
Процедура ДиаметрПриИзменении(Элеме� �т)
РасчетВеса();
КонецПроцедуры
&НаКлиенте
Процедура РасчетВеса()
Плотность = ПолучитьПлотность(Материа� �);
Сообщить(Вес);
// a = длина
// D = диаметр
// b = ширина
// h = высота
// l = длина
Если (Профиль = "Балка Двутавровая") Тогда
Сообщить("Введите только длину");
//Высота = "";
//Диаметр = "";
Вес = Плотность/8.650 * Длина;
ИначеЕсли (профиль = "Квадрат") Тогда
Сообщить ("Введите только длину и ширину");
Вес = Длина * Длина * Диаметр;
ИначеЕсли (профиль = "Круг") Тогда
Сообщить ("Введите только длину и диаметр");
//Ширина = "";
//Высота = "";
Вес = 3.14/4 * Диаметр * Диаметр * Длина * Плотность;
ИначеЕсли (профиль = "Полоса, лист") Тогда
Сообщить ("Введите только ширину, длину и высоту");;
//Диаметр = "";
Вес = Длина * Ширина * Высота* Плотность;
ИначеЕсли (профиль = "Уголок") Тогда
Сообщить ("Введите только длину, ширину и высоту");
//Ширина = "";
//Высота = "";
Вес = (Длина + Ширина - Высота) * Высота * Длина * Плотность;
ИначеЕсли (профиль = "Труба") Тогда
Сообщить ("Введите только длину, высоту и диаметр");
//Высота = "";
//Диаметр = "";
Вес = 3.14 * (Диаметр - Высота) * Высота * Длина * Плотность;
ИначеЕсли (профиль = "Швеллер") Тогда
Сообщить ("Введите только длину");
//Ширина = "";
Вес = Плотность/7.850 * Длина;
ИначеЕсли (профиль = "Шестигранник") Тогда
Сообщить ("Введите только длину, высоту и диаметр");
//Высота = "";
//Диаметр = "";
Вес = 0.866 * Диаметр * Диаметр * Длина * Плотность;
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ПолучитьПлотность(Профиль)
Возврат Профиль.Плотность;
КонецФункции
Но, есть пару проблем, почему-то не просчитываются поля Ширина и Длина и наконец, как после этого передать поле Вес в первую форму, где есть поле ВесФормы?