подскажите как из глобального модуля перенести переменну.

Новая тема
Показывать по 10 20 40 сообщений
"А если сделать так:
объявить в глобальном модуле переменную Среднее тоже как Экспорт
и написать:
Если Запрос.Выполнить(ТекстЗапроса) = 1 Тогда
   Среднее =Запрос.СуммаСреднее;
   Возврат Среднее;
КонецЕсли;
"
"> господин belicovS вы я смотрю смый умный , вы только критикуете, а сами дали дельный совет.Не суди и судим не будешь-плохие програмеры всегда злятся и критикуют других.
Зачем обижаться? Просто то, что вы пишете,лишено смысла.
Вам belicovS дал правильный совет, который понял бы любой программист! Использовать следующее:
> НачисленоЗаОтпуск = СформироватьСредний();

Элементарные вещи: функция возвращает не переменную, а ее значение!!! Переменная существовала только внутри самой функции, вышли-исчезла. Это азы программирования, но вы этого не поняли. Вам еще раз это же посоветовали и shindi, и ЗаЕц. Но вы все равно не понимаете.

естественно, после этого совет
> Позовите наконец программиста - он вам это сделает за 5 минут :)


"
"> А если сделать так:
> объявить в глобальном модуле переменную Среднее тоже как Экспорт
> и написать:
> Если Запрос.Выполнить(ТекстЗапроса) = 1 Тогда
>     Среднее =Запрос.СуммаСреднее;
>     Возврат Среднее;
> КонецЕсли;
>

А зачем? ведь строки НачисленоЗаОтпуск = СформироватьСредний(); более, чем достаточно.

"
ну не получается же у нее так все равно. Пусть попробует по-другому. страшного-то ничего нет.
"Ладно начну с начала, а то я вижу что меня не понимают:
///это в отчете , получили данные за месяц по одному запросу ,
Пока Запрос.Группировка() = 1 Цикл
Премия =Окр(ОтработаноЗаМесяц*0.3*Запрос.ПремияПроцент/100,2);//мы вычислили премию теперь объявляем функцию, для нахождения сред.
   СформироватьСредний();//это функция объявления, которая находится в глобальнике т.е.ушли в глобальник сформировали там запрос:
Функция СформироватьСредний()  Экспорт
Перем Запрос, ТекстЗапроса;
//Создание объекта типа Запрос
ЗначениеМесяца = ДатаМесяц(РабочаяДата());
Если ЗначениеМесяца = 6 тогда
Мес1 = Дата("30.06.2009");
Мес3 = Дата("01.04.2009");
КонецЕсли;
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с Мес3 по Мес1;
|Обрабатывать НеПомеченныеНаУдаление;
|Сотрудник = Документ.Отпускные.Сотрудник;
|Сумма = Документ.Отпускные.Сумма;
|ДатаДок = Документ.Отпускные.ДатаДок;
|ТекущийДокумент = Документ.Отпускные.ТекущийДокумент;
|Функция СуммаСреднее = Среднее(Сумма);
|Функция ТекущийДокументСуммаСумма = Сумма(ТекущийДокумент);
|Группировка Сотрудник без упорядочивания без групп;
|Условие(Сотрудник = Сотрудник);
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Среднее = Запрос.СуммаСреднее;
Возврат   Среднее ;//вот это должно уйти в отчет, но после перехода в отчет  он выдает ошибку, поле агрегатного объекта не обнаружено или ещё что-нибудь, вот этот переход меня и волнует я прошу подсказать что я делаю не так, а в ответ читаю только.....,мне нужна помощь а не критика .

"
Смотритре, вот вы пишете, если в запросе не выполнен, то как же вы присваиваете переменной Среднее значение, которое должно получиться при  выполнении запроса? Как-то я сразу на это не обратила внимания.
все я сделала, спасибо огромное кто мне помогал.
"Ну тогда вам правильно советовали в отчете просто написать НачисленоЗаОтпуск = СформироватьСредний(); "
я присваивала и добавляла сразу в формулу, и вот эту формулу т.е.её название выводила в печ-форму, она показывала 0, я её убрала сделала на прямую и все заработала, но это опять мой косяк что-то я не внимательно делаю, ну теперь легче , ч/з отладчик увижу.спасибо.
"Одно тут настораживает, для чего условие? |Условие(Сотрудник = Сотрудник);
Надо полагать, что хотели сделать отбор по некоему конкретному сотруднику, но в приведенном случае
условие выполняется всегда.

Либо надо сделать какую-нибудь глобальную переменную глСотрудник, присваивать ей значения и затем вызывать вашу функцию, либо (как мне кажется правильнее) добавить в функцию параметр.
Тогда объявление вашей функции будет выглядеть как нибудь так:

Функция СформироватьСредний(ВыбСотрудник)  Экспорт
// ...... и соответственно поменять вышеуказанную строчку на
|Условие(Сотрудник = ВыбСотрудник);
//.........................................................."
Читают тему
(гостей: 1)

Быстрый переход