Вход | Регистрация
 

Открытие встроенной обработки из внешней обработки

Открытие встроенной обработки из внешней обработки
Я
   Droning1C
 
22.07.19 - 12:26
ДОбрый день! Не судите строго, уважаемые, я только- только до УФ добрался и очень плохо шарю пока что.   Суть проблемы- мне нужно открыть обработку УниверсальныйОбменДаннымиXML путем открытия внешней обработки. Тоесть- жму открыть внешнюю обработку, ее форма не открывается, а открывается форма УниверсальныйОбменДаннымиXML. Вот мой гениальный код, который не работает)))


Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    ОбработкаОбмена = Обработки.УниверсальныйОбменДаннымиXML.Создать();
    ЗначениеВДанныеФормы(ОбработкаОбмена,Объект);
        
КонецПроцедуры


&НаКлиенте
Процедура ПриОткрытии(Отказ)
    ДанныеФормыВЗначение(Объект,Тип("ОбработкаОбъект.УниверсальныйОбменДаннымиXML"));
    Форма = Объект.ПолучитьФОрму("Форма");
    Форма.Открыть();

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


ПриОткрытии вообще не срабатывает, а если добавить кнопку, с тем же кодом, то выдает ошибку - метод не доступен на клиенте, хотя вроде в толстом должен....



&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    ОбработкаОбмена = Обработки.УниверсальныйОбменДаннымиXML.Создать();
    ЗначениеВДанныеФормы(ОбработкаОбмена,Объект);
        
КонецПроцедуры


&НаКлиенте
Процедура Обмен(Команда)
    ДанныеФормыВЗначение(Объект,Тип("ОбработкаОбъект.УниверсальныйОбменДаннымиXML"));
    Форма = Объект.ПолучитьФОрму("Форма");
    Форма.Открыть();

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



Я понимаю, что я ошибаюсь в азах, но пока не могу понять в чем именно. Подскажите плз...
 
 
   dka80
 
1 - 22.07.19 - 12:34
ПараметрыФормы = Новый Структура;
//ПараметрыФормы.Вставить("ДокСсылка", НужнаяСсылка);


ОткрытьФорму("Обработка.УниверсальныйОбменДаннымиXML.Форма", ПараметрыФормы);
   Droning1C
 
2 - 22.07.19 - 12:39
(1) спасибо, помогло. Сделал вот так --


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    ОбработкаОбмена = Обработки.УниверсальныйОбменДаннымиXML.Создать();
    ЗначениеВДанныеФормы(ОбработкаОбмена,Объект);
        
КонецПроцедуры


&НаКлиенте
Процедура Обмен(Команда)
    
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ОбработкаОбмена", Объект);
ОткрытьФорму("Обработка.УниверсальныйОбменДаннымиXML.Форма", ПараметрыФормы);    

КонецПроцедуры
   Droning1C
 
3 - 22.07.19 - 12:40
(1) Но если я пишу тот же код ПриОткрытии то выдается ошибка - Процедура или функция с указанным именем не определена (ОткрытьФорму)
   Droning1C
 
4 - 22.07.19 - 12:41
как сделать так, чтобы форма внешней обработки из которой происходит запуск не открывалась?
   dka80
 
5 - 22.07.19 - 12:46
1) размести в модуле обработки, форму вообще не создавай
2) в форме в процедуре приоткрытии добавить Закрыть()
   Droning1C
 
6 - 22.07.19 - 12:53
(5) а как же тогда быть с передачей с сервера на клиент и тд. чет я пока не очень понимаю, как это сделать.. как передавать ?

Если вот так, то выдает ошибку - Процедура или функция с указанным именем не определена (ОткрытьФормуОбработки)
   Droning1C
 
7 - 22.07.19 - 12:53
&НаСервере
Процедура СоздатьНаСервере()
    ОбработкаОбмена = Обработки.УниверсальныйОбменДаннымиXML.Создать();
    ОткрытьФормуОбработки(ОбработкаОбмена);
КонецПроцедуры

&НаКлиенте
Процедура ОткрытьФормуОбработки(ОбработкаОбмена);
    ПараметрыФормы = Новый Структура;
    ПараметрыФормы.Вставить("ОбработкаОбмена", ОбработкаОбмена);
    ОткрытьФорму("Обработка.УниверсальныйОбменДаннымиXML.Форма", ПараметрыФормы);
КонецПроцедуры
   dka80
 
8 - 22.07.19 - 12:54
&НаКлиенте
Процедура ОткрытьФормуОбработки(ОбработкаОбмена);
    ПараметрыФормы = Новый Структура;
    ПараметрыФормы.Вставить("ОбработкаОбмена", ОбработкаОбмена);
    ОткрытьФорму("Обработка.УниверсальныйОбменДаннымиXML.Форма", ПараметрыФормы);
Закрыть();
КонецПроцедуры

На сервере ничего не нужно
   Droning1C
 
9 - 22.07.19 - 13:06
(8) без сервера я не получу ОбработкаОбмена. И как быть без формы? ведь вызов процедуры модуля обработки должен происходить оттуда для ее выполнения. Или я чего-тоне понимаю?
   МимохожийОднако
 
10 - 22.07.19 - 13:13
(9) Внеси изменения в обработку  УниверсальныйОбменДаннымиXML и открывай её под другим идентификатором как внешнюю. Тогда не надо будет танцевать с бубном.
..
Ты чего-то не понимаешь.)
   Droning1C
 
11 - 22.07.19 - 13:20
(10) А почему бы и не потанцевать, если чего-то непонятно?
   Droning1C
 
12 - 22.07.19 - 13:21
(10) Чем больше танцуешь с ним, тем больше понимания и опыта, на мой взгляд.
   Droning1C
 
13 - 22.07.19 - 13:25
(10) да и мне изначально казалось, что переделывать ее во внешнюю куда дольше чем написать 5 строк. Я просто не думал что эти 5 строк на 3 часа размажутся
   PiotrLoginov
 
14 - 22.07.19 - 13:47
вопрос вроде яйца выеденного не стоит.


вот этот код:

ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ОбработкаОбмена", Объект);
ОткрытьФорму("Обработка.УниверсальныйОбменДаннымиXML.Форма", ПараметрыФормы);


- правильный. вставить его в "ПриОткрытии". Не забыть указать Отказ = Истина. Насколько я понял, ты так и делал. Непонимаю, почему в результате получаешь (3). Мб чего-то не договариваешь?
   Droning1C
 
15 - 22.07.19 - 14:06
(14) а что я могу не договаривать? такая вот ошибка была. щас пытаюсь подключить как есть, чтобы работать можно было, и новый косяк вылезает при подключении обработки.  


{Справочник.ДополнительныеОтчетыИОбработки.Форма.ФормаЭлемента.Форма(1018)}: Не удалось выполнить команду по причине:
Метод объекта не обнаружен (ВыполнитьКоманду).
        ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
   Droning1C
 
16 - 22.07.19 - 14:13
(14) да, именно этот код оказался рабочим в итоге. Собака была зарыта в параметрах регистрации..
   Droning1C
 
17 - 22.07.19 - 14:13
Функция СведенияОВнешнейОбработке() Экспорт
    
    //МассивНазначений = Новый Массив;

    //МассивНазначений.Добавить("Документ.СчетНаОплатуПокупателю");          

    
    ПараметрыРегистрации = Новый Структура;
    ПараметрыРегистрации.Вставить("Вид", "ДополнительнаяОбработка");
    //ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);

    ПараметрыРегистрации.Вставить("Наименование", "УниверсальныйОбменДаннымиXML");
    ПараметрыРегистрации.Вставить("Версия", "1.0");
    ПараметрыРегистрации.Вставить("Информация", "");
    ПараметрыРегистрации.Вставить("ВерсияБСП", "2.3.4.5");
    ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);
    Команды = ТаблицаКоманд();
    ДобавитьКоманду(Команды, 
    "УниверсальныйОбменДаннымиXML",
    "УниверсальныйОбменДаннымиXML",
    "ОткрытиеФормы",
    Истина,
    "");
    ПараметрыРегистрации.Вставить("Команды", Команды);
    Возврат ПараметрыРегистрации; 
    
КонецФункции
   Droning1C
 
18 - 22.07.19 - 14:14
у меня был "Вызов серверного метода" вместо "открытие формы"
   Droning1C
 
19 - 22.07.19 - 14:14
и еще несколько косяков попутных. Вообщем ужас. Полдня на 4 строчки кода. Зато запомню)
   МимохожийОднако
 
20 - 22.07.19 - 14:28
(19) С подобными открытиями ты будешь сталкиваться постоянно. Во всяком случае, у меня так всегда )

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.