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

Как обратиться к процедуре расположенной в другом модуле

Автор Алексей2014, 01 ноя 2016, 15:03

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

Алексей2014

Всем привет! Например, есть в модуле объекта или модуле команды объекта (Объект Документ) необходимость обратиться к процедуре расположенной в модуле объекта другого документа. Как это можно сделать без ПолучитьОбъект() ?

Причем документ(1) никак не соотносится с документом(2) , ну т.е. не создается на основании или как либо еще.

Kironten

Без получить - никак.
Или выносите код в из модуля объекта в модуль менеджера.

Алексей2014

Цитата: Kironten от 01 ноя 2016, 15:38
Без получить - никак.
Или выносите код в из модуля объекта в модуль менеджера.
А вот и нет! Вот простое, и главное работающее решение:
В модуле объекта где вызываем процедуру:
&НаСервере
Процедура БезДураков2() 
ОбъектПрихНакл=Документы.ПриходнаяНакладная.СоздатьДокумент();
ОбъектПрихНакл.БезДураков();

КонецПроцедуры


В модуле откуда вызываем ( в данном случае Документы.ПриходнаяНакладная) :
&НаСервере
Процедура БезДураков() Экспорт
// код

КонецПроцедуры


Kironten

Цитата: Алексей2014 от 01 ноя 2016, 16:26
А вот и нет! Вот простое, и главное работающее решение:
В модуле объекта где вызываем процедуру:
&НаСервере
Процедура БезДураков2() 
ОбъектПрихНакл=Документы.ПриходнаяНакладная.СоздатьДокумент();
ОбъектПрихНакл.БезДураков();

КонецПроцедуры


И что? Вы искренне верите, что этим куском кода:
ОбъектПрихНакл=Документы.ПриходнаяНакладная.СоздатьДокумент();
вы не получаете объект?

Алексей2014

Цитата: Kironten от 01 ноя 2016, 16:31
Цитата: Алексей2014 от 01 ноя 2016, 16:26
А вот и нет! Вот простое, и главное работающее решение:
В модуле объекта где вызываем процедуру:
&НаСервере
Процедура БезДураков2() 
ОбъектПрихНакл=Документы.ПриходнаяНакладная.СоздатьДокумент();
ОбъектПрихНакл.БезДураков();

КонецПроцедуры


И что? Вы искренне верите, что этим куском кода:
ОбъектПрихНакл=Документы.ПриходнаяНакладная.СоздатьДокумент();
вы не получаете объект?

Это две разные истории. Метод ПолучитьОбъект()- обращение к существующему объекту. А в предлагаемый вариант не привязан к какому либо существующему ранее объекту.
Добавлено: 01 ноя 2016, 16:43


Более того, если в системе не было создано ни одного документа, то ПолучитьОбъект() ничего не даст.

Kironten

Но тем не менее это объект.
Вопрос звучал как?
Цитата: Алексей2014 от 01 ноя 2016, 15:03
... необходимость обратиться к процедуре расположенной в модуле объекта другого документа. Как это можно сделать без ПолучитьОбъект() ?
Чтобы вызвать код из модуля объекта, объект придется получать В ЛЮБОМ СЛУЧАЕ.
А конкретно ли из существующей ссылки, либо создавая новый объект, это уже вопрос десятый.

Алексей2014

Цитата: Kironten от 01 ноя 2016, 16:46
Но тем не менее это объект.
Вопрос звучал как?
Цитата: Алексей2014 от 01 ноя 2016, 15:03
... необходимость обратиться к процедуре расположенной в модуле объекта другого документа. Как это можно сделать без ПолучитьОбъект() ?
Чтобы вызвать код из модуля объекта, объект придется получать В ЛЮБОМ СЛУЧАЕ.
А конкретно ли из существующей ссылки, либо создавая новый объект, это уже вопрос десятый.
Однако, на форуме аналогичной реализации ни кто не предложил. Создавать нов. объект, по-моему,  более предпочтительно

Kironten

Я вам про одно, Вы мне про другое...
В общем очередной конфликт терминологий.

ilyay

Создать, чтобы уничтожить? Можно еще много способов предложить без ПолучитьОбъект(), например восстановление из XDTO. А зачем?

alex0402

Цитата: Алексей2014 от 01 ноя 2016, 16:26&НаСервере Процедура БезДураков2()  ОбъектПрихНакл=Документы.ПриходнаяНакладная.СоздатьДокумент(); ОбъектПрихНакл.БезДураков(); КонецПроцедуры
бесспорно работать будет. только вот зачем? если БезДураков не использует данных объекта, то зачем ее вообще помещать в модуль объекта? а если использует, но все равно какого, то тоже ничего не понятно....
Спасибо за Сказать спасибо

Теги:

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

Рейтинг@Mail.ru

Поиск