|
вызвать обработку из макета | ☑ | ||
---|---|---|---|---|
0
inkvizitr
18.10.18
✎
15:54
|
Стоит задача, внешнею обработку1 запихнуть в макет внешней обработки2, и от туда ее вызывать, как это реализовать
|
|||
1
Lexey_
18.10.18
✎
15:56
|
(0) получить обработку из макета, записать в файл, вызвать
|
|||
2
Cool_Profi
18.10.18
✎
15:57
|
1. Запихнуть обработку в макет.
2. Создать обработку и подсунуть ей ДД из того макета. 3. Вызвать. N. Перечислить мне M рублей |
|||
3
inkvizitr
18.10.18
✎
15:57
|
(1) Уже записал как двоичные данные, а как вызвать
|
|||
4
Lexey_
18.10.18
✎
15:58
|
(3) ВнешниеОбработкиМенеджер (ExternalDataProcessorsManager)
Методы: Подключить (Connect) ПолучитьФорму (GetForm) Создать (Create) Описание: Предназначен для управления внешними обработками и позволяет получать значения типа ВнешняяОбработка при помощи метода Создать. Доступ к объекту осуществляется через свойство глобального контекста ВнешниеОбработки. |
|||
5
inkvizitr
18.10.18
✎
16:01
|
(4) это я так понимаю использовать временно хранилище
|
|||
6
Greeen
18.10.18
✎
16:27
|
АдресФайлаВоВременномХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанные);
Обработка_Имя = ВнешниеОбработки.Подключить(АдресФайлаВоВременномХранилище, , Ложь); СуперПуперОбработка= ВнешниеОбработки.Создать(Обработка_Имя); СуперПуперОбработка.СделатьВсе(); |
|||
7
inkvizitr
18.10.18
✎
16:51
|
(6) Щас попробую
|
|||
8
inkvizitr
18.10.18
✎
17:46
|
(6) пробую так
&НаКлиенте Процедура Выполнить(Команда) ПараметрыОбработки = Новый Структура; ПараметрыОбработки.Вставить("Организация", ЭтаФорма.ЭтотОбъект.Организация); ПараметрыОбработки.Вставить("Контрагент", ЭтаФорма.ЭтотОбъект.Контрагент); ПараметрыОбработки.Вставить("Документы", ЭтаФорма.ЭтотОбъект.СписокДокументов); ИмяВнешнейОбработки = ПолучитьОбработку(); ОткрытьВнешнийОтчетОбработкуПоИмениСДопПараметрами (ИмяВнешнейОбработки, ПараметрыОбработки, Ложь); КонецПроцедуры &НаСервере Функция ПолучитьОбработку() ДвоичныеДанные = ПолучитьДвоичныеДанные(); АдресФайлаВоВременномХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанные, Новый УникальныйИдентификатор); Обработка = ВнешниеОбработки.Подключить(АдресФайлаВоВременномХранилище, , Ложь); СуперПуперОбработка= ВнешниеОбработки.Создать(ОбработкаСопроводительноеПисьмо); Возврат СуперПуперОбработка; КонецФункции &НаСервере Функция ПолучитьДвоичныеДанные() Возврат РеквизитФормыВЗначение("Объект").ПолучитьМакет("ВложеннаяОбработкаВМакет"); КонецФункции валится на ИмяВнешнейОбработки = ПолучитьОбработку(); как дальше правильно реализовать? |
|||
9
Greeen
18.10.18
✎
18:44
|
Если нужно форму именно открыть, то вот так (+ допилить передачу параметров)
&НаКлиенте Процедура Команда1(Команда) ИмяВнешнейОбработки = ПолучитьОбработку(); Форма_имя = "ВнешняяОбработка."+ ИмяВнешнейОбработки +".Форма"; ОткрытьФорму(Форма_имя); КонецПроцедуры &НаСервере Функция ПолучитьОбработку() ДвоичныеДанные = ПолучитьДвоичныеДанные(); АдресФайлаВоВременномХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанные, Новый УникальныйИдентификатор); Обработка = ВнешниеОбработки.Подключить(АдресФайлаВоВременномХранилище, , Ложь); Возврат Обработка; КонецФункции &НаСервере Функция ПолучитьДвоичныеДанные() Возврат РеквизитФормыВЗначение("Объект").ПолучитьМакет("Макет"); КонецФункции |
|||
10
inkvizitr
18.10.18
✎
20:09
|
(9) Спасибо огромное, ты лучший, я отладчиком прогнал, теперь стало ясно как работает данный алгоритм
|
|||
11
TormozIT
гуру
18.10.18
✎
22:54
|
(10) Теперь осталось поставить в такой внешней обработке точку останова и попытаться остановиться в ней при рабочем вызове.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |