![]() |
![]() |
![]() |
|
Как передать переменную модуля объекта в модуль формы внешней обработки? (ЗУП 8.1) | ☑ | ||
---|---|---|---|---|
0
Kleo
20.04.10
✎
07:24
|
Как передать переменную модуля объекта в модуль формы внешней обработки? (ЗУП 8.1)
пробовала сделать как по этой ссылке http://www.forum.mista.ru/topic.php?id=438668 В модуле объекта: ---------------------------------------------- Перем мПеременная; // Доступна в любой части модуля объекта. Функция УстановитьГлобальноеЗначениеПеременнойВОбъекте(Переменная) Экспорт мПеременная = Переменная; КонецФункции ---------------------------------------------- В модуле формы в какой-либо процедуре: -------------------- УстановитьГлобальноеЗначениеПеременнойВОбъекте(ЗначениеПеременной); ------------------- не получается(( в модуле формы не видит эту переменную |
|||
1
мистер игрек
20.04.10
✎
07:27
|
А где волшебное слово "Возврать" ? :))
|
|||
2
Kleo
20.04.10
✎
07:30
|
я делаю у себя так:
Перем Док Экспорт; Функция УстановитьГлобальноеЗначениеПеременнойВОбъекте(СсылкаНаОбъект) Экспорт Док = СсылкаНаОбъект; Сообщить("Модуль объекта "+Док); Возврат Док; КонецФункции и потом вызываю эту функцию в модуле формы: Процедура ПриОткрытии() УстановитьГлобальноеЗначениеПеременнойВОбъекте(Док); КонецПроцедуры и ничего не передается в переменную Док |
|||
3
Kleo
20.04.10
✎
07:31
|
Это в модуле объекта:
Перем Док Экспорт; Функция УстановитьГлобальноеЗначениеПеременнойВОбъекте(СсылкаНаОбъект) Экспорт Док = СсылкаНаОбъект; Сообщить("Модуль объекта "+Док); Возврат Док; КонецФункции и потом вызываю эту функцию в модуле формы: Процедура ПриОткрытии() УстановитьГлобальноеЗначениеПеременнойВОбъекте(Док); КонецПроцедуры |
|||
4
Zlodey1С
20.04.10
✎
07:47
|
&НаСервере
Процедура УстановитьГлобальноеЗначениеПеременнойВОбъекте(Док) ДокументПокупки = ДанныеФормыВЗначение(Объект, Тип("ДокументОбъект.РасходДенежныхСредств")); ДокументПокупки.УстановитьГлобальноеЗначениеПеременнойВОбъекте(Док); ЗначениеВДанныеФормы(ДокументПокупки,Объект); КонецПроцедуры Процедура ПриОткрытии() УстановитьГлобальноеЗначениеПеременнойВОбъекте(Док); КонецПроцедуры вот так попробуй |
|||
5
Zlodey1С
20.04.10
✎
07:47
|
где надо по смыслу поменяй
|
|||
6
Kleo
20.04.10
✎
07:48
|
есть другой вариант мне нужно открыть форму внешней обработки из модуля объекта, это все делается и открывается, но параметр не передается
пишу так в модуле объекта обработки: ФормаОбработки = ВнешниеОбработки.ПолучитьФорму("d:\Выгрузка.epf","Форма"); ФормаОбработки.Док = СсылкаНаОбъект; ФормаОбработки.Открыть(); Док - это реквизит формы внешнего отчета. вообщем не видит она значение этого реквизита в модуле формы. хотя в модуле объекта видит. в чем причина? |
|||
7
Kleo
20.04.10
✎
07:49
|
(4) спасибо, но у меня не документ, а внешняя обработка
|
|||
8
Паланик
20.04.10
✎
07:56
|
(7) Функцию вызвал, а результат её работы почему не присваиваешь?
Переменная = УстановитьГлобальноеЗначениеПеременнойВОбъекте(); |
|||
9
Kleo
20.04.10
✎
07:58
|
(8) мне этот вариант не подходит. у меня внешняя обработка.
и что это ДанныеФормыВЗначение и ЗначениеВДанныеФормы? |
|||
10
Kleo
20.04.10
✎
08:01
|
(4) и где у тебя находится эта процедура
Процедура УстановитьГлобальноеЗначениеПеременнойВОбъекте(Док) ? |
|||
11
Zlodey1С
20.04.10
✎
08:03
|
&НаСервере
Процедура ПроверкаЗаполнения() Для Каждого Стр Из Объект.СтатьиДвиженияДенежныхСредств Цикл Если Не ЗначениеЗаполнено(Стр.Счёт) Тогда Стр.Счёт=Объект.Счёт; КонецЕсли; КонецЦикла; Если Не ЗначениеЗаполнено(Объект.КурсВзаиморасчетов)Тогда Если ЗначениеЗаполнено(Объект.ДоговорКонтрагента) Тогда ПриИзмененииДоговораСервер(); КонецЕсли; КонецЕсли; Если Не ЗначениеЗаполнено(Объект.ВалютаДокумента)Тогда Объект.ВалютаДокумента=Константы.ВалютаРегламентированногоУчета.Получить(); СтруктураКурсаВалютаДокумента = МодульВалютногоУчета.ПолучитьКурсВалюты(Объект.ВалютаДокумента, ?(Не ЗначениеЗаполнено(Объект.Дата), ТекущаяДата(),Объект.Дата)); Объект.КурсДокумента = СтруктураКурсаВалютаДокумента.Курс; Объект.КратностьДокумента = СтруктураКурсаВалютаДокумента.Кратность; КонецЕсли; Если Не ЗначениеЗаполнено(Объект.СуммаДокумента) Тогда ПересчитатьСуммуДокумента(); КонецЕсли; Если Не ЗначениеЗаполнено(Объект.СуммаВзаиморасчетов) Тогда ПересчитатьСуммуВзаиморасчетов(); КонецЕсли; КонецПроцедуры &НаСервере Процедура ПриИзмененииДоговораСервер() ДокументПокупки = ДанныеФормыВЗначение(Объект, Тип("ДокументОбъект.РасходДенежныхСредств")); ДокументПокупки.ЗаполнитьРеквизитамиПриИзмененииДоговора(); ЗначениеВДанныеФормы(ДокументПокупки,Объект); ОбновлениеОтображения(); КонецПроцедуры // ПриИзмененииПартнера() &НаКлиенте Процедура ПриОткрытии(Отказ) ПроверкаЗаполнения(); ОбновлениеОтображения(); КонецПроцедуры |
|||
12
Zlodey1С
20.04.10
✎
08:03
|
ну и в модуле объекта
|
|||
13
Zlodey1С
20.04.10
✎
08:04
|
// Заполняет условия продаж в заказе клиента.
// // Параметры: // УсловияПродаж - Структура - Структура для заполнения // Процедура ЗаполнитьРеквизитамиПриИзмененииДоговора() Экспорт // Надо поменять валюту и курс взаиморасчетов мТекущаяВалютаВзаиморасчетов = ДоговорКонтрагента.ВалютаВзаиморасчетов; СтруктураКурсаВзаиморасчетов = МодульВалютногоУчета.ПолучитьКурсВалюты(мТекущаяВалютаВзаиморасчетов, Дата); //СтатьяДвиженияДенежныхСредств = ДоговорКонтрагента.ОсновнаяСтатьяДвиженияДенежныхСредств; КурсВзаиморасчетов = СтруктураКурсаВзаиморасчетов.Курс; КратностьВзаиморасчетов = СтруктураКурсаВзаиморасчетов.Кратность; РассчитатьСуммуВзаиморасчетов(); Если НЕ ЗначениеЗаполнено(Контрагент) Тогда Контрагент = ДоговорКонтрагента.Владелец; КонецЕсли; //УстановитьВидимость(); //УправлениеДенежнымиСредствами.УстановитьНадписьСделкиПлатеж(СтрокаПлатеж, ЭтаФорма, ВидОперации); КонецПроцедуры // ЗаполнитьУсловияПродажПоУмолчанию( |
|||
14
Kleo
20.04.10
✎
08:05
|
извини, но мне это ничем не поможет
|
|||
15
Kleo
20.04.10
✎
08:06
|
потому что ты это делаешь все в процедурах, а у меня функция в модуле объекта. не подойдет никак!
|
|||
16
Паланик
20.04.10
✎
08:11
|
Находясь в модуле какого-то объекта, ты открываешь форму внешней обработки и при ее открытии хочешь присвоить некоему ее реквизиту некое значение - "СсылкаНаОбъект"?
|
|||
17
VladZ
20.04.10
✎
08:17
|
(0) Отладчик - могучий инструмент! ;)
|
|||
18
Kleo
20.04.10
✎
08:18
|
помог этот вариант:
Фнукция Печать() ФормаОбработки = ВнешниеОбработки.ПолучитьФорму("d:\Выгрузка.epf","Форма"); ФормаОбработки.Док = СсылкаНаОбъект; ФормаОбработки.Открыть(); КонецФункции просто было ощибка в присвоении типов Док и ссылкаНаОбъект - нужно, чтобы одинаковые полностью типы данных были |
|||
19
Kleo
20.04.10
✎
08:18
|
(17) спасибо тебе! открыл глаза!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |