|
Как в форме обработки вызывать экспортные процедуры модуля? | ☑ | ||
---|---|---|---|---|
0
totparen
17.06.12
✎
19:11
|
Ребята, подскажите решение - Пытаюсь открыть форму обработки из модуля обработки, но выдаёт ошибку, из за того что в модуле формы применяются экспортные процедуры из модуля обработки. Как это обходить?
|
|||
1
totparen
17.06.12
✎
19:13
|
Модуль обработки:
Процедура фыва() Экспорт Сообщить("фыва"); КонецПроцедуры Форма = ПолучитьФорму("Форма"); Форма.Открыть(); Модуль формы: Процедура ПриОткрытии() фыва(); КонецПроцедуры Ошибка: {Форма.Форма.Форма(3,2)}: Процедура или функция с указанным именем не определена (фыва) <<?>>фыва(); |
|||
2
Neg
17.06.12
✎
19:17
|
||||
3
totparen
17.06.12
✎
19:33
|
(2) Никак не помогло. Обработка внешняя, приложение обычное, не управляемое.
|
|||
4
Эмбеддер
17.06.12
✎
19:38
|
сильно не пинайте)))
обработка была создана копированием? |
|||
5
totparen
17.06.12
✎
19:40
|
(4) Эм.... Создал с нуля обработку и открыл в 1С. Что за копирование вы имеете в ввиду?
|
|||
6
Эмбеддер
17.06.12
✎
19:44
|
бывает что в реквизитах тип формы остается старый или как-то по идентификатору 1С считает что это другая форма. хотя не факт что в этом случае будет именно так как у вас
в общем не угадал. но советую создать форму еще раз на всякий случай |
|||
7
totparen
17.06.12
✎
19:50
|
Тут дело в том, что форма открывается как отдельный объект, не привязанный к обработке.
|
|||
8
Живой Ископаемый
17.06.12
✎
19:52
|
(7) а зачем она так делает? чтобы не мочь вызвать экспортные процедуры модуля объекта?
|
|||
9
totparen
17.06.12
✎
19:58
|
(8) Дык в этом и вопрос - мне такой эффект не нужен.
При коде Форма = ВнешниеОбработки.ПолучитьФорму(ЭтотОбъект.ИспользуемоеИмяФайла,"Форма"); Форма.Открыть(); Система вешается (Запись дампа) Хотя наверное это связано с рекурсией. |
|||
10
totparen
17.06.12
✎
20:14
|
Поборол через дополнительную форму - основная форма открывается по умолчанию, передоткрытием она открывает вторую. Фокус-покус, блин...
|
|||
11
Эмбеддер
17.06.12
✎
20:23
|
я думаю причина в том, что в (0) Вы создаете форму в модуле обработки. модуль еще успел отработать инициализацию, а уже создаете форму
|
|||
12
totparen
17.06.12
✎
20:47
|
Блин. Проблема то всё-равно не решилась: Я обработку запускаю вручную, а нужно бы программно...
|
|||
13
_Demos_
17.06.12
✎
20:49
|
рекурсия однако
|
|||
14
GROOVY
17.06.12
✎
20:50
|
Все просто. нефиг из модуля объекта пытаться открыть форму которая при открытии инициализирует сам объект и как следствие его модуль.
|
|||
15
Эмбеддер
17.06.12
✎
20:55
|
что сделать то нужно?
|
|||
16
kosts
17.06.12
✎
20:57
|
Попробуй так открывать
ВнешняяОбработка = ВнешниеОбработки.Создать(ПолноеИмяФайла); ВнешняяОбработка.ПолучитьФорму().Открыть(); |
|||
17
totparen
17.06.12
✎
21:16
|
(16) Да, всё ок.
|
|||
18
Живой Ископаемый
17.06.12
✎
21:31
|
2(11) нет, чтобы модуль инициализовровался, он должн быть откомпилирован. После этого процедура доступна
|
|||
19
Живой Ископаемый
17.06.12
✎
21:32
|
2(14)да ну нафиг... выглядеть конечно может странно, но работать слава богу обязано
|
|||
20
GROOVY
17.06.12
✎
21:36
|
(19) Ну тогда, наверно, имеет смысл не создавать новую копию объекта?!
|
|||
21
Эмбеддер
18.06.12
✎
05:43
|
(18) нет. раз модуль выполняется, значит он уже откомпилирован
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |