Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
15 дек 2024, 06:45

Обращение к экспортной процедуре

Автор 1cka, 18 июн 2014, 16:12

0 Пользователей и 1 гость просматривают эту тему.

1cka

8.2
Подскажите, Как обратиться к экспортной процедуре/функции документа из модуля другого документа?

Dethmontt

Цитата: 1cka от 18 июн 2014, 16:12из модуля другого документа?

Какого модуля?
И в каком модуле экспортная процедура?
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

1cka

Цитата: Dethmontt от 18 июн 2014, 16:13
Цитата: 1cka от 18 июн 2014, 16:12из модуля другого документа?

Какого модуля?
И в каком модуле экспортная процедура?
экспортная процедура находится в модуле объекта документа, хочу  к ней обратиться из модуля объекта другого документа...

LexaK

как вариант, например в модуле документа у которого есть реквизит (или иными путями полученная сылка нужного документа у которого необходимо вызвать нужную процедуру/функцию )
например есть ревкизит ДокументОснование (тип ссылка)

ДокОбъект = ДокументОснование.ПолучитьОбъект();
ДокОбъект.ИМЯ_НУЖНОЙ_ПРОЦЕДУРЫ(...);
//можно несколько процедур/функций запустить

ДокОбъект  = Неопределено;
//последнюю команду можно не выполнять, но для порядка

вообще просто как процедуры другого документа не вызывают,
если вы из одного документа создаете/модифицируете другой документ, то объект этого документа у вас уже есть, просто через точнку вызавайте процедуры/функции, те которые со словом Экспорт, ну и про передаваемые параметры не забывайте.
если помогло нажмите: Спасибо!

1cka

Функция ПоискДокумента(ДокОснование) Экспорт
Запрос = Новый Запрос;
ТекстЗапроса =
...
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();

Если Выборка.Следующий() Тогда
Возврат Выборка.Ссылка;
Иначе
Возврат Неопределено;
КонецЕсли;
КонецФункции


обращаюсь из другого документа
НашДокумент = ПоискДокумента(ссылка);
Документ = НашДокумент.ПолучитьОбъект();


Пишет, что функция не определена!

LexaK

какая функция не определена? ПоискДокумента() ?
в каком месте этот код пишите?
                        НашДокумент = ПоискДокумента(ссылка);<BR>Документ = НашДокумент.ПолучитьОбъект();
если помогло нажмите: Спасибо!

Dethmontt

В процедуре на сервере (модуля формы)

Об = РеквизитформыВЗначение("Объект");
Об.ИмяЭкспортнойПроцедурыМодуляОбъекта();


Для модуля объекта как написали выше
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

cska-fanat-kz

Цитата: 1cka от 18 июн 2014, 16:48обращаюсь из другого документа

Для того, чтобы вызвать экспортный метод модуля объекта, надо сперва получить этот самый объект!
Для того, чтобы в Док1 вызвать метод ПоискДокумента() из модуля объекта Док2, надо получить объект Док2.
Вот тут просто вопрос как связаны ваши Док1 и Док2. Чисто предположив ,что в Док1 есть реквизит условно ДокументОснование типа ДокументСсылка.Док2, то имеем следующее:


мДок2 = ДокументОснование.ПолучитьОбъект();
НашДокумент = мДок2.ПоискДокумента(ссылка);
Документ = НашДокумент.ПолучитьОбъект();
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

cska-fanat-kz

Цитата: LexaK от 18 июн 2014, 16:34
ДокОбъект  = Неопределено;
//последнюю команду можно не выполнять, но для порядка

первый раз такое вижу )
и что реально отражается на производительности, объеме используемой ОЗУ и пр.?
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

DmitriyF

Цитата: cska-fanat-kz от 19 июн 2014, 06:26
Цитата: LexaK от 18 июн 2014, 16:34
ДокОбъект  = Неопределено;
//последнюю команду можно не выполнять, но для порядка

первый раз такое вижу )
и что реально отражается на производительности, объеме используемой ОЗУ и пр.?
Конечно. Ведь при каждом вызове будет занимать место в памяти. То же самое что если создать ТаблицуЗначений или Массив заполнить его 100000 элементами и не очистить потом.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск