|
Открытие встроенной обработки из внешней обработки | ☑ | ||
---|---|---|---|---|
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) С подобными открытиями ты будешь сталкиваться постоянно. Во всяком случае, у меня так всегда )
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |