|
Как открыть форму внешней обработки в Серверном режиме в Управляемых формах? | ☑ | ||
---|---|---|---|---|
0
D_Pavel
02.03.12
✎
11:10
|
Делаю так:
Основнаяформа=ПолучитьФорму("ВнешняяОбработка.МаяОбработка.Форма.УправляемаяФорма", Новый Структура("Ключ", ЭтотОбъект)); В файловом режиме 1С работает, а в серверном не работает, клиент толстый. Пишет: Ошибка при вызове метода контекста (ПолучитьФорму): Неизвестное имя формы. Имя: "ВнешняяОбработка.МаяОбработка.Форма.УправляемаяФорма". Как сделать чтобы в серверном работала? |
|||
1
D_Pavel
02.03.12
✎
11:12
|
+0
&НаКлиенте Функция МаяФункция() Экспорт Основнаяформа=ПолучитьФорму("ВнешняяОбработка.МаяОбработка.Форма.УправляемаяФорма", Новый Структура("Ключ", ЭтотОбъект)); КонецФункции |
|||
2
ДенисЧ
02.03.12
✎
11:12
|
Запустить управляемого клиента?
|
|||
3
andrewks
02.03.12
✎
11:16
|
а она у тебя точно ТвАяОбработка?
|
|||
4
D_Pavel
02.03.12
✎
11:17
|
(2) конечно. А потом выходить ошибка которую я описать в (0)
|
|||
5
D_Pavel
02.03.12
✎
11:17
|
(3) Да, иначе в файловом варианте бы не открылась.
|
|||
6
andrewks
02.03.12
✎
11:17
|
а, ясно, "мы нэмэстные..."
|
|||
7
D_Pavel
02.03.12
✎
11:20
|
(6) Да, у нас на районе все пишут "МаяОбработка"
Ну так что по теме? Знает кто-нибудь? |
|||
8
andrewks
02.03.12
✎
11:20
|
(5) и ты хочешь сказать, что в файловом в тонком клиенте она у тебя открывается?
|
|||
9
D_Pavel
02.03.12
✎
11:20
|
(8) в ТОЛСТОМ файловом открывается.
|
|||
10
ptiz
02.03.12
✎
11:20
|
В каком модуле располагается: Функция МаяФункция() Экспорт ?
|
|||
11
andrewks
02.03.12
✎
11:22
|
(9) ну а форма-то какая открывается? Управляемая, или обычная?
|
|||
12
D_Pavel
02.03.12
✎
11:23
|
(10) В общем модуле.
|
|||
13
D_Pavel
02.03.12
✎
11:24
|
(11) Управляемая. Она так и называется "УправляемаяФорма"
|
|||
14
andrewks
02.03.12
✎
11:27
|
(13) ну, мало ли. может, у вас там принято так называть обычные формы
|
|||
15
aleks-id
02.03.12
✎
11:27
|
кинь свою обработку на ифолдер. интересно поглядеть
|
|||
16
D_Pavel
02.03.12
✎
11:34
|
(15) Ща попробую. Там релиться не надо?
|
|||
17
D_Pavel
02.03.12
✎
11:35
|
||||
18
aleks-id
02.03.12
✎
11:41
|
а я не понял, где ты код из (0) пишешь? в другой обработке?
|
|||
19
D_Pavel
02.03.12
✎
11:43
|
(18) Код из (0) в модуле объекта.
|
|||
20
aleks-id
02.03.12
✎
11:43
|
ага. в модуле объекта нет клиента. там тока сервер.
|
|||
21
aleks-id
02.03.12
✎
11:44
|
и мне непонятно зафига ты так сделал вообще?
|
|||
22
D_Pavel
02.03.12
✎
11:45
|
(21) Потому что она вызывается из общего модуля общей командой для всех внешних обработок.
|
|||
23
aleks-id
02.03.12
✎
11:45
|
ты хочешь чтобы перед печатью этой внешней печатной формы вылезало окно настроек чтоли?
|
|||
24
D_Pavel
02.03.12
✎
11:46
|
(23) Да
|
|||
25
D_Pavel
02.03.12
✎
11:47
|
(20) Как сделать чтобы было клиент? Как я понял в файловом варианте само делается, потому что там нет сервера.
|
|||
26
aleks-id
02.03.12
✎
11:49
|
в файловом варианте есть сервер. но поскольку он крутится на твоей локальной машине, то и позволяет открыть окно настроек.
|
|||
27
D_Pavel
02.03.12
✎
11:50
|
(26) Ну да. А на серверном варианте как открыть форму?
|
|||
28
Кириллка
02.03.12
✎
11:51
|
во-первых, ЭтотОбъект доступен на "Сервер, толстый клиент, внешнее соединение".
|
|||
29
DrShad
02.03.12
✎
11:52
|
(28) и что?
|
|||
30
D_Pavel
02.03.12
✎
11:53
|
(28) ЭтотОбъект можно вообще убрать, он не нужен. Щас там просто Объект, реквизит обработки.
|
|||
31
D_Pavel
02.03.12
✎
11:57
|
К (0). Из внешнего модуля так вызывается:
ИмяФайла = "C:\МаяОбработка.epf"; Обработка = ВнешниеОбработки.Создать(ИмяФайла); Обработка.Объект = ОбъектИзБазы; ТабДокумент = Обработка.МаяФункция(); В (17) МаяФункция() заменена на функцию Печать() |
|||
32
D_Pavel
02.03.12
✎
11:58
|
Вообще строка Обработка.Объект = ОбъектИзБазы; роли не играет, не обращайте внимания.
|
|||
33
DrShad
02.03.12
✎
11:59
|
ну не откроешь ты на сервере форму
|
|||
34
Кириллка
02.03.12
✎
12:00
|
во-вторых, внешняя обработка предварительно зарегистрированы в системе?
в-третьих, а как это открытие обработки на сервере? Кто ее ТАМ будет наблюдать? может мы чего не поняли в твоей задуме? |
|||
35
ptiz
02.03.12
✎
12:07
|
||||
36
ptiz
02.03.12
✎
12:08
|
У меня вот даже зарегистрировать внешнюю обработку не получается в толстом клиенте.
|
|||
37
D_Pavel
02.03.12
✎
12:11
|
(34) Не на сервере, а на клиенте в серверном варианте.
|
|||
38
Кириллка
02.03.12
✎
12:13
|
(37)ну значит нужно прояснить только второй вопрос :)
|
|||
39
D_Pavel
02.03.12
✎
12:15
|
(34) Как их регистировать в системе? И для чего?
|
|||
40
DrShad
02.03.12
✎
12:22
|
(39) +1 для чего? после этого платформа позволит из модуля обработки открывать формы?
|
|||
41
aleks-id
02.03.12
✎
12:34
|
короче. твоя печатная форма должна быть создана по технологии внешних обработок 8.2
только тогда ты сможешь открыть ее форму. |
|||
42
aleks-id
02.03.12
✎
12:35
|
делается это так:
ДобавитьКоманду(ТаблицаКоманд, "Бла-бла-ба, то что пишем в менюшке", "ИМЯ_ТВОЕЙ_ФОРМЫ", "ОткрытиеФормы", ); |
|||
43
aleks-id
02.03.12
✎
12:36
|
+42 делается это в функции СведенияОВнешнейОбработке
|
|||
44
Кириллка
02.03.12
✎
12:38
|
Вот этого нужно тебе?
&НаКлиенте Процедура ОткрытьОбработку(Команда) Перем стрИмя, стрАдрес; стрАдрес = ""; Если НЕ ПоместитьФайл(стрАдрес, "D:\ИмяОбработки.epf", , Ложь) Тогда Возврат; КонецЕсли; стрИмя = ПодключитьВнешнююОбработку(стрАдрес); Основнаяформа = ПолучитьФорму("ВнешняяОбработка." + стрИмя + ".Форма.Форма"); Основнаяформа.Открыть(); КонецПроцедуры // ОткрытьОбработку() &НаСервере Функция ПодключитьВнешнююОбработку(Знач стрАдрес) Возврат ВнешниеОбработки.Подключить(стрАдрес); КонецФункции // ПодключитьВнешнююОбработку() |
|||
45
aleks-id
02.03.12
✎
12:43
|
и еще тут почитай http://www.1c-pro.ru/topic26882.html/page__p__114677#entry114677
|
|||
46
D_Pavel
02.03.12
✎
12:49
|
Спасибо, буду разбираться
|
|||
47
D_Pavel
02.03.12
✎
13:48
|
(41) Не понял как это может помочь открыть форму внешней обработки. Это для типовой УТ? Похоже не то что нужно
|
|||
48
aleks-id
02.03.12
✎
13:53
|
(47) что конкретно тебе непонятно? ты делаешь дополнительную печатную форму для какого то документа. правильно?
|
|||
49
D_Pavel
02.03.12
✎
13:53
|
(44) Пишет: Ошибка при вызове метода контекста (ПолучитьФорму): Неизвестное имя формы. Имя: "ВнешняяОбработка.МаяОбработка.Форма.УправляемаяФорма"
|
|||
50
D_Pavel
02.03.12
✎
13:54
|
(48) Да, но в той статье написано как сделать дополнительную печатную форму, это я сделал, работает.
Теперь мне надо открыть ее форму. |
|||
51
aleks-id
02.03.12
✎
13:56
|
(50) я тебе дал код в (42)
ищи в своей обработке "ДобавитьКоманду(ТаблицаКоманд," и пиши туда вместо ИМЯ_ТВОЕЙ_ФОРМЫ имя формы как она у тебя обзывается в обработке |
|||
52
Кириллка
02.03.12
✎
13:57
|
(49)я тебе рабочий код написал и выложил.
|
|||
53
aleks-id
02.03.12
✎
14:00
|
(52) и куда надо прикрутить этот "рабочий" код чтобы ТС мог напечатать внешнюю печатную форму?
|
|||
54
Кириллка
02.03.12
✎
14:03
|
(53)вопрос стоял, как открыть внешнюю обработку. Про печать ничего не слышал :)
|
|||
55
aleks-id
02.03.12
✎
14:13
|
(54) см (22)-(24)
|
|||
56
Кириллка
02.03.12
✎
14:32
|
(55)а в двух словах чего ему надо, если ты скачал и видел его файло.
|
|||
57
aleks-id
02.03.12
✎
14:35
|
(56) ровно то, что я написал. ему надо сделать внешнюю печатную форму для УТ11, которая прилепляется к нужным документам штатными средствами без изменения конфы и позволяет перед печатью открывать окно с некоторыми настройками.
|
|||
58
aleks-id
02.03.12
✎
14:36
|
но судя по тому, что ТС молчит, то предположу что он не осилил как же это сделать. видимо придется ему предложить купить эту форму ))))
|
|||
59
D_Pavel
05.03.12
✎
05:52
|
(51) Этот код не работает. ДобавитьКоманду - такая процедура не определена.
(57) Вообще-то не для УТ11. Интересует как открыть форму в принципе, "с нуля" |
|||
60
D_Pavel
05.03.12
✎
05:54
|
(52) Код не работает.
Ошибка при вызове метода контекста (ПолучитьФорму): Неизвестное имя формы. Имя: "ВнешняяОбработка.МаяОбработка.Форма.УправляемаяФорма" |
|||
61
Кириллка
05.03.12
✎
06:52
|
(60)покажи код.
|
|||
62
D_Pavel
05.03.12
✎
07:04
|
(61) Я его уже убрал. Смотри в (44)
|
|||
63
Кириллка
05.03.12
✎
07:08
|
(62)код в (44) работает.
|
|||
64
D_Pavel
05.03.12
✎
07:11
|
(63) Действительно, работает. Ошибся
|
|||
65
D_Pavel
05.03.12
✎
07:16
|
Почему-то в пятницу не работало. 1с перезапустил, заработало.
Вот так тоже рабюотает: &НаКлиенте Функция Печать() Экспорт Перем стрАдрес; стрАдрес = ""; Если НЕ ПоместитьФайл(стрАдрес, "C:\Temp\tmp.epf", , Ложь) Тогда Возврат (Неопределено); КонецЕсли; Основнаяформа = ПолучитьФорму("ВнешняяОбработка.МаяОбработка.Форма.УправляемаяФорма"); Основнаяформа.Открыть(); Возврат(Неопределено); КонецФункции |
|||
66
Кириллка
05.03.12
✎
07:19
|
(65)рандомный генератор пишешь?
|
|||
67
D_Pavel
05.03.12
✎
07:23
|
Вот так тоже теперь работает:
&НаКлиенте Функция Печать() Экспорт //Перем стрАдрес; // //стрАдрес = ""; //Если НЕ ПоместитьФайл(стрАдрес, "C:\Temp\tmp.epf", , Ложь) Тогда // Возврат (Неопределено); //КонецЕсли; // Основнаяформа = ПолучитьФорму("ВнешняяОбработка.МаяОбработка.Форма.УправляемаяФорма"); Основнаяформа.Открыть(); Возврат(Неопределено); КонецФункции |
|||
68
D_Pavel
05.03.12
✎
07:24
|
Что за фигня! В пятницу не работало, а сейчас работает без всяких дополнений! Всего-то платформу перезапустил
|
|||
69
Кириллка
05.03.12
✎
07:28
|
(68)не делай как в (65) и (67), делай как в (44).
|
|||
70
D_Pavel
05.03.12
✎
07:33
|
(69) Почему может быть такое сообщение?:
{ВнешняяОбработка.МаяОбработка.МодульОбъекта(52,14)}: Процедура или функция с указанным именем не определена (ПодключитьВнешнююОбработку) |
|||
71
Кириллка
05.03.12
✎
07:36
|
(70)а давай я тебе по руке погадаю? Тыж меня в телепаты записал.
Я думаю, что сообщение об ошибке достаточно для понимания. |
|||
72
D_Pavel
05.03.12
✎
07:40
|
(71) твой код. Пишется ошибка.
Закомментированная строка не работает. Переделал как во второй строке, ошибку не выдает: //стрИмя = ПодключитьВнешнююОбработку(стрАдрес); стрИмя = ВнешниеОбработки.Подключить(стрАдрес); |
|||
73
Кириллка
05.03.12
✎
07:49
|
(67)Если предполагать, что ты используешь код из (67), дополнив его куском кода из (72), то у меня разрыв шаблона - метод Подключить имеет доступность "Сервер, внешнее соединение", хотя у тебя выставлено &НаКлиенте.
Ты занимаешься мозгоимением?? |
|||
74
D_Pavel
05.03.12
✎
07:52
|
&НаКлиенте
Функция Печать() Экспорт Перем стрИмя, стрАдрес; стрАдрес = ""; Если НЕ ПоместитьФайл(стрАдрес, "C:\Temp\tmp.epf", , Ложь) Тогда Возврат (Неопределено); КонецЕсли; стрИмя = ВнешниеОбработки.Подключить(стрАдрес); Основнаяформа = ПолучитьФорму("ВнешняяОбработка." + стрИмя + ".Форма.УправляемаяФорма"); Основнаяформа.Открыть(); Возврат(Неопределено); КонецФункции &НаСервере Функция ПодключитьВнешнююОбработку(Знач стрАдрес) Возврат ВнешниеОбработки.Подключить(стрАдрес); КонецФункции |
|||
75
D_Pavel
05.03.12
✎
07:53
|
Если использовать ПодключитьВнешнююОбработку вместо ВнешниеОбработки.Подключить, то выходит сообщение об ошибке:
Процедура или функция с указанным именем не определена (ПодключитьВнешнююОбработку) |
|||
76
D_Pavel
05.03.12
✎
07:55
|
Еще один косяк: Если переименовать мою обработку в любое имя кроме "МаяОбработка", то выходит сообщение об ошибке:
Неизвестное имя формы. Имя: "ВнешняяОбработка.блаблабла.Форма.УправляемаяФорма" |
|||
77
D_Pavel
05.03.12
✎
07:57
|
Третий косяк: Если взять другую обработку и задать ей имя "МаяОбработка", и открыть ее форму из той процедуры, то всё равно откроется форма старой обработки. Тоесть она как-то зарегистрировалась под этим именем, и не пойму когда и как она это сделала
|
|||
78
Кириллка
05.03.12
✎
08:17
|
(74)а где это "Функция Печать() Экспорт" расположено?
|
|||
79
D_Pavel
05.03.12
✎
08:23
|
(78) В модуле объекта внешней обработки
|
|||
80
Кириллка
05.03.12
✎
08:26
|
(79)ты каким-то чудом вызываешь метод "Печать" из одной внешней обработки, а потом хочешь открыть другую внешнюю обработку "tmp.epf"??
А как ты вызываешь "Печать"? |
|||
81
D_Pavel
05.03.12
✎
08:31
|
(80) Из общего модуля вызываю:
ИмяФайла = "C:\Temp\tmp.epf"; Обработка = ВнешниеОбработки.Создать(ИмяФайла); ТабДокумент = Обработка.Печать(); |
|||
82
D_Pavel
05.03.12
✎
08:33
|
Я вызываю метод Печать одной внешней обработки, и хочу чтобы она сама открыла свою форму.
|
|||
83
D_Pavel
05.03.12
✎
09:00
|
Ап.
|
|||
84
Кириллка
05.03.12
✎
09:12
|
хз, чего там у тебя как работает, но (74) не должен работать: &НаКлиенте и ВнешниеОбработки.Подключить не должны вместе дружить.
Еще раз: в (44) код достаточен для твоей задачи. "ОткрытьОбработку(Команда)" - это вызов по команде/кнопке на форме. Открыл форму, сделал настройки, там же нажал кнопку/команду печать. |
|||
85
D_Pavel
05.03.12
✎
09:17
|
(84) Чтобы нажать кнопку на форме, нужно сперва открыть эту форму, а она не открывается. А вообще вызов внешней обработки и ее метода "Печать" нельзя менять. И почему работает ВнешниеОбработки.Подключить я не знаю. Могу выложить обработку чтобы посмотрели
|
|||
86
D_Pavel
05.03.12
✎
09:30
|
(84) Вот выложил: http://ifolder.ru/29092486
Кнопка на обработке открывает такую же обработку и вызывает "Печать()". И твой код не работает. {Форма.УправляемаяФорма.Форма(4)}: Ошибка при вызове метода контекста (Создать) Обработка = ВнешниеОбработки.Создать(ИмяФайла); по причине: {ВнешняяОбработка.МаяОбработка.МодульОбъекта(11,14)}: Процедура или функция с указанным именем не определена (ПодключитьВнешнююОбработку) стрИмя = <<?>>ПодключитьВнешнююОбработку(стрАдрес); |
|||
87
D_Pavel
05.03.12
✎
11:00
|
Ап.
|
|||
88
mikeA
05.03.12
✎
11:26
|
(86)
ВнешниеОбработки не доступно в тонком клиенте ПодключитьВнешнююОбработку это метод объекта. чтобы его вызвать, нужно сначала получить объект с помощью РеквизитФормыВЗначение. но сделать это можно только на сервере а вообще зачем всё это нужно? |
|||
89
D_Pavel
05.03.12
✎
11:30
|
(88) У меня в ТОЛСТОМ клиенте
Этот метод вызывается в модуле объекта, тоесть получать объект не нужно, он уже есть. Нужно просто разобраться. Почему оно не работает! |
|||
90
D_Pavel
05.03.12
✎
11:32
|
И как могут работать два метода ПоместитьФайл и ВнешниеОбработки.Подключить в одной процедуре!??! У них же разная доступность на клиенте и на сервере!
|
|||
91
mikeA
05.03.12
✎
11:51
|
(89) тогда, ты будешь смеяться, всё работает
замени Основнаяформа = ПолучитьФорму("ВнешняяОбработка." + стрИмя + ".Форма.УправляемаяФорма"); Основнаяформа.Открыть(); на ОткрытьФорму("ВнешняяОбработка." + стрИмя + ".Форма.УправляемаяФорма",,,Истина); в принципе можно и ПолучитьФорму использовать и потом открывать, только при попытке передать туда ключ уникальности ругается на количество параметров, хотя параметры и там и там одинаковые |
|||
92
aleks-id
05.03.12
✎
11:55
|
(90) ты для какой конфы это безобразие ваяешь?
для УТ11 я тебе дал все карты в руки. у меня все работает, подключается, открывает форму настроек и печатает. |
|||
93
D_Pavel
05.03.12
✎
12:02
|
(91) если указать имя обработки "МаяОбработка", то работает. А если поменять имя и указать там новое имя, то не работает.
|
|||
94
D_Pavel
05.03.12
✎
12:02
|
(92) Для пустой конфы. Тестовой
|
|||
95
D_Pavel
06.03.12
✎
06:11
|
Выяснил что нужно хотябы раз открыть форму обработки через меню файл, и выполнить команду:
&НаКлиенте Функция Команда1(Команда) Экспорт Перем стрИмя, стрАдрес; стрАдрес = ""; Если НЕ ПоместитьФайл(стрАдрес, "C:\Temp\tmp.epf", , Ложь) Тогда Возврат (Неопределено); КонецЕсли; стрИмя = ВнешниеОбработки.Подключить(стрАдрес); КонецФункции Тогда в следующий раз форма открывается из модуля объекта нормально. Но как сделать чтобы не нужно было открывать ее в первый раз вручную? |
|||
96
Кириллка
06.03.12
✎
08:03
|
(95)свойства конфигурации - Обычное приложение???
|
|||
97
D_Pavel
06.03.12
✎
08:07
|
(96) Основной режим: Управляемое приложение
|
|||
98
Кириллка
06.03.12
✎
08:31
|
(97)да как так? открываю твою обработку в ут11 - в модуле формы уже ругань идет.
|
|||
99
D_Pavel
06.03.12
✎
08:47
|
(98) Щас скачал ту которую выкладывал, открывается форма с одной кнопкой. Как так?
|
|||
100
D_Pavel
06.03.12
✎
08:47
|
Платформа 8.2.15.289
|
|||
101
D_Pavel
06.03.12
✎
10:17
|
(98) Открывай в толстом клиенте
|
|||
102
D_Pavel
06.03.12
✎
11:07
|
Ап.
|
|||
103
Кириллка
06.03.12
✎
21:48
|
Открываю в конфигураторе, жму ctrl+f7, получаю следующую картину: http://imageshack.us/f/850/wtfgf.png/
Как оно у тебя работает? |
|||
104
D_Pavel
12.03.12
✎
10:46
|
(103) Обрати особое внимание на текст сообщения об ошибке, на самый конец:
...........Файла); (Проверка: Тонкий клиент) И смотри (101) |
|||
105
Кириллка
12.03.12
✎
11:19
|
(104)понимаю...
Тебе есть смысл изменить представление об окружающем мире, а не менять мир под свои представления. Я даже не запускал эту обработку, достаточно запустить синтаксис-контроль сделать, чтобы понять, что написано оно не верно. |
|||
106
D_Pavel
12.03.12
✎
11:24
|
(105) Что там не верно написано? Вроде всё верно.
И как тогда открыть эту форму из обработки? |
|||
107
D_Pavel
12.03.12
✎
11:30
|
(105) Это кажется что там не верно, потому что у тебя в "Сервис - Пареметры - Модули - Проверка" стоит галочка в "Тонкий клиент". Сними ее и всё будет нормально.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |