Имя: Пароль:
1C
1С v8
Управляемое приложение
0 web_profiler
 
20.05.14
18:52
Сразу говорю: не пинайте, только что начал изучать управляемые формы и сразу столкнулся с проблемой:
Как вызвать глобальную переменную формы определенную на клиенте в процедуре насервере? У меня ошибка с переменной СтрокаПараметраПолучения

&НаСервере
Перем Сервер, ИмяВходящегоФайла, Текст, from;

&НаКлиенте
Перем СтрокаПараметраПолучения;

&НаСервере
Процедура ЗапросHTTP(СтрокаПолучения)
    Попытка
        Соединение = Новый HTTPСоединение(Сервер,,,,);
        Соединение.Получить(СтрокаПолучения, ИмяВходящегоФайла,);
        ВходящийФайл = Новый Файл(ИмяВходящегоФайла);
        Если НЕ ВходящийФайл.Существует() Тогда
            Сообщить("Не удалось получить ответ с сервера");
            Возврат;
        КонецЕсли;
        ВыбСтатус = "";
        Текст.Прочитать(ИмяВходящегоФайла, КодировкаТекста.UTF8);
        КолСтрок = Текст.КоличествоСтрок();
        Для Инд = 1 По КолСтрок Цикл
            Стр = Текст.ПолучитьСтроку(Инд);
            ВыбСтатус = ВыбСтатус + Стр + Символы.ПС;
            //Сообщить(Стр);
            Если Лев(Стр, 8) = "balance:" Тогда
                Стр = СтрЗаменить(Стр, "balance:", "");
                ВыбБаланс = Число(Стр);
            ИначеЕсли Лев(Стр, 3) = "id:" Тогда
                Стр = СтрЗаменить(Стр, "id:", "");
                ВыбID = Число(Стр);
            ИначеЕсли Лев(Стр, 5) = "code:" Тогда
            КонецЕсли;
        КонецЦикла;
    Исключение
        Сообщить("Помилка: " + ОписаниеОшибки());
    КонецПопытки;
КонецПроцедуры

&НаКлиенте
Процедура КнопкаПолучитьСтатусSMS(Команда)
    ЗапросHTTP(СтрокаПараметраПолучения + "receive&id=" + Формат(ВыбID, "ЧГ=0"));
КонецПроцедуры

&НаКлиенте
Процедура КнопкаПолучитьБаланс(Команда)
    ЗапросHTTP(СтрокаПараметраПолучения + "balance");
КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)
    ИмяВходящегоФайла = "" + КаталогВременныхФайлов() + "outsms.txt";
    СтрокаПараметраПолучения = "api/http.php?version=http&login=" + login + "&password=" + password + "&key=" + key1 + "&command=";
КонецПроцедуры
1 ИсчадиеADO
 
20.05.14
18:56
передать в качестве параметра
2 web_profiler
 
20.05.14
18:56
(1) мы не ищем легких путей
3 web_profiler
 
20.05.14
18:57
а еще есть варианты?
4 web_profiler
 
20.05.14
18:59
Мне чего, все переменные параметрами передавать?
полюбому есть другое решение проблемки
5 ИсчадиеADO
 
20.05.14
19:00
(4) можешь создать реквизит на форме, тогда в контекстных серверных вызовах можешь его юзать
6 shuhard
 
20.05.14
19:00
(4)[полюбому есть]
докажи
7 web_profiler
 
20.05.14
19:02
(6) ну как же так? в обычном приложении Перем и поехали, а тут параметрами передать/реквизиты создавать
8 Любопытная
 
20.05.14
19:04
(7) ну это же не обычное приложение. Здесь есть четкое разделение на клиент и на сервер. И если ты создал что-то только на клиенте, на сервере у тебя этого не будет. Собственно, наоборот так же. Передавай параметром, в чем проблема-то?
9 web_profiler
 
20.05.14
19:06
7 переменных определяются при открытии формы
10 Zhuravlik
 
20.05.14
22:56
Покури еще "ПоместитьВоВременноеХранилище".
но параметром все-же проще
11 Лефмихалыч
 
20.05.14
23:13
(0) сервер самостоятельно ни чего получить с клиента не может. Либо помещай в контекст, доступный обоим, либо передавай в параметрах