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

Вызвать функцию из общего модуля

Автор Alina_Guruloyva, 11 апр 2014, 07:01

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

Alina_Guruloyva

Пишу внешнюю обработку.
Нужно вызвать функцию "ПолучитьПериодПолезногоОтпуска", которая находится в общем модуле  "дУправлениеПериодами"

Период = ПолучитьПериодПолезногоОтпуска(глРабочееПодразделение);
ЭлементыФормы.ПериодРасчета.Значение = Формат(Период, "ДФ='MMMM yyyy'");

________________
Пишу: Период = ПолучитьПериодПолезногоОтпуска(глРабочееПодразделение); - выдает ошибку,что процедура или функция не определена.

Пишу Период = дУправлениеПериодами.ПолучитьПериодПолезногоОтпуска(глРабочееПодразделение); - выдает ошибку:
Переменная не определена (дУправлениеПериодами)
   ПериодРасчета = <<?>>дУправлениеПериодами.ПолучитьПериодПолезногоОтпуска(глРабочееПодразделение);



KrivosheevEV

Функция "ПолучитьПериодПолезногоОтпуска" в общем модуле "дУправлениеПериодами" экспортная?

bunzuk1991

Модуль сделай Экспортным
Процедура Бла-бла() Экспорт
КонецПроцедуры
И
Поставь галку в свойствах общего модула "Вызов сервера"

markgenuine

Если конфигурация типовая и вы придерживаетесь ее, то не стоит менять не модуль, не свойства модуля, а просто попробуйте перенести во внешнюю обработку.

Terek_bit

Добрый день. Подскажите, кто знает, а то закопался просто.Ситуация такая:
УТ 11, управляемая форма, я пишу внешнюю обработку заполнения ТЧ документа
"ПоступлениеТоваров" из документа Excel. Саму ВнешОбработку уже подключил через Администрирование и т.д. Проблема вот в чем: как можно из этой ВнешОбработки вызвать процедуру из модуля формы документа ПоступлениеТоваров(например, ТоварыЦенаПриИзменении()). Для этого, как я понимаю, нужно получить сам ДокументОбъект "ПоступлениеТоваров" и тогда уже обратиться к его процедуре.
Но как это сделать? на форумах предлагают такой способ:
   СсылкаНаОбъект = РеквизитФормыВЗначение("Объект");
   СсылкаНаОбъект.<Процедура>
Но это на работает,т.к. СсылкаНаОбъект - это получается ссылка на саму обработку, НО не на ДокументОбъект "ПоступлениеТоваров"!
Просветите, пожалуйста на этот счет: как из внешней обработки вызвать
процедуру модуля формы объекта(в моем случае "ПоступлениеТоваровУслуг")?



SergioSS

Для Terek_bit. Получая ДокументОбъект Вы не сможете работать с формой и модулем формы. Необходимо следующее:
1. Процедура, к которой Вы хотите получить доступ должна быть "Экспорт"
2. Если обращаетесь к ней из обработки, то это можно сделать только из модуля формы обработки с директивой &НаКлиенте
3. В обработке используете функцию Глобального контекста "ПолучитьФорму" (не путать с типом ДокументМенеджер, ДокументСсылка, ДокументОбъект)
4. В параметрах функции "ПолучитьФорму" указываете литералом "Документ.ПоступлениеТоваров.ФормаОбъекта".
Все работает !

Alina_Guruloyva

Цитата: markgenuine от 13 апр 2014, 13:15
Если конфигурация типовая и вы придерживаетесь ее, то не стоит менять не модуль, не свойства модуля, а просто попробуйте перенести во внешнюю обработку.

Это мне нужно код общего модуля переписать в свою обработку?

cska-fanat-kz

Цитата: Alina_Guruloyva от 14 апр 2014, 03:26
Цитата: markgenuine от 13 апр 2014, 13:15
Если конфигурация типовая и вы придерживаетесь ее, то не стоит менять не модуль, не свойства модуля, а просто попробуйте перенести во внешнюю обработку.

Это мне нужно код общего модуля переписать в свою обработку?

Не весь код модуля, а только нужную процедуру. Если конечно внутри нее нет вызовов других процедур или функций...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

markgenuine

Цитата: cska-fanat-kz от 15 апр 2014, 16:20
Цитата: Alina_Guruloyva от 14 апр 2014, 03:26
Цитата: markgenuine от 13 апр 2014, 13:15
Если конфигурация типовая и вы придерживаетесь ее, то не стоит менять не модуль, не свойства модуля, а просто попробуйте перенести во внешнюю обработку.

Это мне нужно код общего модуля переписать в свою обработку?

Не весь код модуля, а только нужную процедуру. Если конечно внутри нее нет вызовов других процедур или функций...
Ну даже если есть, то скорее всего они экспортные, поэтому ничего страшного, главное для них пути переписать.

cska-fanat-kz

Цитата: markgenuine от 15 апр 2014, 21:39
Цитата: cska-fanat-kz от 15 апр 2014, 16:20
Цитата: Alina_Guruloyva от 14 апр 2014, 03:26
Цитата: markgenuine от 13 апр 2014, 13:15
Если конфигурация типовая и вы придерживаетесь ее, то не стоит менять не модуль, не свойства модуля, а просто попробуйте перенести во внешнюю обработку.

Это мне нужно код общего модуля переписать в свою обработку?

Не весь код модуля, а только нужную процедуру. Если конечно внутри нее нет вызовов других процедур или функций...
Ну даже если есть, то скорее всего они экспортные, поэтому ничего страшного, главное для них пути переписать.

Если будет обращение к методу из этого же модуля - опять придем к тому с чего начали...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Теги:

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

Рейтинг@Mail.ru

Поиск