Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ошибка при запуске внешней обработки
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование управляемых форм 1С 8.2
gash
1С:Предприятие 8.2 (8.2.15.301). Пишу внешнюю обработку.
При запуске внешней обработки путем "файл/открыть" при старте работы обработки выдает ошибку:
{Форма.ФормаУпр.Форма(30)}: Ошибка при вызове метода контекста (ПоказатьБаланс)
Баланс = ПоказатьБаланс(чек, ЛогСайт, ПасСайт, КодКл);
по причине:
Неизвестный идентификатор формы

Если эту обработку загрузить в конфигуратор, то все отрабатывает как надо. Подскажите, пожалуйста, в чем дело?


&НаКлиенте
Процедура ПолучитьБаланс(Команда)        
    чек = "Баланс";
    Макет = ПолучитьОбоработку(чек);
    форма = ПолучитьФорму("ВнешняяОбработка.ЗагрузкаБалансаССайта.Форма.ФормаЛогинСайтУпр");
    форма.ОткрытьМодально();
    ЛогСайт = форма.Объект.ЛогинСайт;
    ПасСайт = форма.Объект.ПарольСайт;
        КодКл= форма.Объект.КодКлиента;
    
    Баланс = ПоказатьБаланс(чек, ЛогСайт, ПасСайт, КодКл);

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

&НаСервере
Функция ПолучитьОбоработку(чек)
    Обработка = ВнешниеОбработки.Создать("ЗагрузкаБалансаССайта_82_управляемое.epf");
    Если чек = "Фактуры" Тогда
        Макет = Обработка.ПолучитьМакет("МакетФактуры");
    Иначе
        Макет = Обработка.ПолучитьМакет("МакетТранзакции");
    КонецЕсли;
    Возврат Макет;
КонецФункции

&НаСервере
Функция ПоказатьБаланс(чек, ЛогСайт, ПасСайт, КодКл)
    
    НашОбъект = РеквизитФормыВЗначение("Объект");
    
    ИмяФайла = НашОбъект.КоннектСайт(чек,,ДатаПо, ЛогСайт, ПасСайт, КодКл);
    
    Чтение = Новый ЧтениеXML;
    Чтение.ОткрытьФайл(ИмяФайла);
....
КонецФункции
Sharki
Цитата(gash @ 13.11.12, 16:34) необходимо зарегистрироваться для просмотра ссылки
    
форма.ОткрытьМодально();
    ЛогСайт = форма.Объект.ЛогинСайт;
    ПасСайт = форма.Объект.ПарольСайт;
        КодКл= форма.Объект.КодКлиента;
    
    Баланс = ПоказатьБаланс(чек, ЛогСайт, ПасСайт, КодКл);


Осмелюсь предположить что этот кусок кода является проблемой, поскольку вы пытаетесь передать на сервер реквизиты объекта формы. Попробуйте возвращать структуру после закрытия формы, т.е. использовать другой вариант получения информации. Или еще вариант сделать так:
    
форма.ОткрытьМодально();
    ЛогСайт = Строка(форма.Объект.ЛогинСайт);
    ПасСайт = Строка(форма.Объект.ПарольСайт);
        КодКл= Строка(форма.Объект.КодКлиента);
    
    Баланс = ПоказатьБаланс(чек, ЛогСайт, ПасСайт, КодКл);


чтобы отвязаться от реквизитов объектов.

сорри за отсутствие тегов кода.. кривое цитирование получилось
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.