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

Как перенести значение переменных из одной процедуры(функции) в другую

Автор Dobrolubov, 14 мар 2012, 19:21

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

Dobrolubov

Процедура ФормированиеИмяКорма (рецепт)
        ии=0;
      
   
      цк=объект.Владелец;
        стр2=Строка(цк); //назв корма
        т1=0;            //дата последнего посещения
       т2=год(объект.Дата); //текущая, введённая дата
              ук=т2-2000;     
          стр=строка(ук);    //дата с вычетом
      ав=стр2+"/"+строка(ии)+"-"+стр; 
         объект.Наименование=ав;
                 атата(стр2,стр);
КонецПроцедуры

        &Насервере     
      функция атата(лл,пп);
       СпрРец=справочники.Рецепты.Выбрать();
       счетчик=0;
       пока спррец.Следующий() цикл
       если Лев(спррец.Наименование,3)=лл и  Прав(спррец.Наименование,2)=пп
             тогда
             счетчик=счетчик+1;
         
           возврат(счетчик);
           конецЕсли
       конецЦикла
         конецфункции

Dobrolubov

Подскажите пожалуйста, как мне результат функции вернуть в первую процедуру???

sadovod

// переменной Возвращено ,будет происвоено возвращаемое функцией значение
Возвращено = атата(стр2,стр);
// и всё :)

Dobrolubov

у меня ошибку выдаёт, мол недостаточно фактических параметров

Dobrolubov

хорошо, у меня новый вопрос как мне передать данные из процедуры в функцию чтоб они обработались на серверной части, а потом результат функции мне передался в клиентскую чатсь

sergejK74

Процедура ФормированиеИмяКорма (рецепт)
       ии=0;
     
 
     цк=объект.Владелец;
       стр2=Строка(цк); //назв корма
       т1=0;            //дата последнего посещения
      т2=год(объект.Дата); //текущая, введённая дата
             ук=т2-2000;    
         стр=строка(ук);    //дата с вычетом
     ав=стр2+"/"+строка(ии)+"-"+стр;
        объект.Наименование=ав;
                ВозвращаюЗначениеОтСервераВЭтуПеременную = атата(стр2,стр);
КонецПроцедуры

       &Насервере    
     функция атата(лл,пп);
      СпрРец=справочники.Рецепты.Выбрать();
      счетчик=0;
      пока спррец.Следующий() цикл
      если Лев(спррец.Наименование,3)=лл и  Прав(спррец.Наименование,2)=пп
            тогда
            счетчик=счетчик+1;
       
          возврат счетчик;
          конецЕсли
      конецЦикла
        конецфункции
Кнопочка Спасибо - слева!

sadovod

>> как мне передать данные из процедуры в функцию чтоб они обработались на серверной части, а потом результат функции мне передался в клиентскую часть

М-м-м, тогда уточните вопрос. Вам нужно, чтобы вернулись данные, передаваемые в вызываемую функцию из вызывающей процедуры , или просто результат функции?
В двух словах: функция отличается от процедуры только тем, что она может возвращать результат. То, что она возвращает, определяется оператором Возврат. Возвращаемое функцией значение Вы можете присвоить переменной, как я указал в примере.
Процедура в явном виде не возвращает ничего, но в ней можно обработать/вычислить/присвоить параметры, которые передаются в скобках. По умолчанию эти параметры передаются "по ссылке", то есть модифицируя их в теле процедуры, Вы без всяких дополнительных усилий изменяете их (параметры) в вызывающей процедуре...
Ну вот как-то так...

Теги:

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

Рейтинг@Mail.ru

Поиск