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


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


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

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


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



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


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

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



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

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


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


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

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

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

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

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


вот этот код:

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


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


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