Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 мар 2024, 17:50

Как правильно открыть вторую форму, рассчитав там данные и вбить в первую форму?

Автор s1219257, 27 ноя 2017, 21:18

0 Пользователей и 1 гость просматривают эту тему.

s1219257

Код первой формы
&НаКлиенте
Процедура РасчитатьВес(Команда)
    Пар = Новый Структура ("Параметр1, Параметр2", Объект.Профиль, Объект.Материал);
    ОткрытьФорму("ОбщаяФорма.Форма", Пар);
    КонецПроцедуры




Вторая форма
+ Code


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
        Профиль = Параметры.Параметр1;
        Материал = Параметры.Параметр2;
      КонецПроцедуры


&НаКлиенте
Процедура ПрофильПриИзменении()
        РасчетВеса();
КонецПроцедуры

&НаКлиенте
Процедура МатериалПриИзменении()
    РасчетВеса();
КонецПроцедуры



&НаКлиенте
Процедура ДлинаПриИзменении(Элемент)
    РасчетВеса();
КонецПроцедуры

&НаКлиенте
Процедура ШиринаПриИзменении(Элемент)
    РасчетВеса();
КонецПроцедуры



&НаКлиенте
Процедура ВысотаПриИзменении(Элемент)
    РасчетВеса();
КонецПроцедуры


&НаКлиенте
Процедура ДиаметрПриИзменении(Элемент)
    РасчетВеса();
КонецПроцедуры



&НаКлиенте
Процедура РасчетВеса()

Плотность = ПолучитьПлотность(Материал);
Сообщить(Вес);

     




//        a = длина

//        D = диаметр     
//        b = ширина

//        h = высота   
//        l = длина     



Если (Профиль = "Балка Двутавровая")  Тогда
        Сообщить("Введите только длину");
        //Высота = "";

        //Диаметр = "";

        Вес = Плотность/8.650 * Длина;
       
        ИначеЕсли (профиль = "Квадрат") Тогда
        Сообщить ("Введите только длину и ширину");
        Вес = Длина * Длина * Диаметр;
       
        ИначеЕсли (профиль = "Круг") Тогда
        Сообщить ("Введите только длину и диаметр");
        //Ширина = "";

        //Высота = "";

        Вес = 3.14/4 * Диаметр * Диаметр * Длина * Плотность;
       
        ИначеЕсли (профиль = "Полоса, лист") Тогда
        Сообщить ("Введите только ширину, длину и высоту");;
        //Диаметр = "";

        Вес = Длина * Ширина * Высота* Плотность;
       
        ИначеЕсли (профиль = "Уголок") Тогда
        Сообщить ("Введите только длину, ширину и высоту");
        //Ширина = "";

        //Высота = "";

        Вес = (Длина + Ширина - Высота) * Высота * Длина * Плотность;
       
        ИначеЕсли (профиль = "Труба") Тогда
        Сообщить ("Введите только длину, высоту и диаметр");
        //Высота = "";

        //Диаметр = "";

        Вес = 3.14 * (Диаметр - Высота) * Высота * Длина * Плотность;
                           
        ИначеЕсли (профиль = "Швеллер") Тогда
        Сообщить ("Введите только длину");
        //Ширина = "";

        Вес = Плотность/7.850 * Длина;
       
        ИначеЕсли (профиль = "Шестигранник") Тогда
        Сообщить ("Введите только длину, высоту и диаметр");
        //Высота = "";

        //Диаметр = "";

        Вес = 0.866 * Диаметр * Диаметр * Длина * Плотность;

       
       
КонецЕсли;




КонецПроцедуры

&НаСервере
Функция ПолучитьПлотность(Профиль)
    Возврат Профиль.Плотность;
КонецФункции





Но, есть пару проблем, почему-то не просчитываются поля Ширина и Длина и наконец, как после этого передать поле Вес в первую форму, где есть поле ВесФормы?

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск