Расширение

1. Jullis 22.09.23 15:00 Сейчас в теме
Добрый день

Подскажите пожалуйста

Обработка из расширения вызывает процедуру, которая находится на форме документа в том же расширение

Форму документа получается как Владелецформы.прочитать()
Владецформы.процедура()

Ошибка в том, что процедура не находится
По теме из базы знаний
Найденные решения
11. spacecraft 22.09.23 20:03 Сейчас в теме
(3)
с клиента, в процедура серверная

Вот в этом проблема. В расширении невозможно вызвать извне серверную процедуру формы из клиента.
В модуле формы создайте клиентскую экспортную процедуру, которая и будет вызывать нужную серверную. А извне вызывайте созданную клиентскую процедуру модуля формы.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. RustamZz 22.09.23 15:25 Сейчас в теме
(1) Вы же не с сервера пытаетесь к форме обратиться?
3. Jullis 22.09.23 15:28 Сейчас в теме
(2)нет, с клиента, в процедура серверная
4. RustamZz 22.09.23 15:31 Сейчас в теме
(3) Экспортная процедура? Полностью код напишите как создаете форму и как вызываете процедуру.
5. Jullis 22.09.23 15:48 Сейчас в теме
(4)экспорная
ВладелецФормы.Прочитать();ВладелецФормы.Процедура();
7. RustamZz 22.09.23 16:16 Сейчас в теме
(5) Я думаю это не весь код. И вообще не тот. Процедуру с ключевым именем Процедура нельзя объявить.
9. Jullis 22.09.23 19:25 Сейчас в теме
(7)код весь, процедура называется по-другому, но разве это важно?
10. RustamZz 22.09.23 19:29 Сейчас в теме
(9) Дорогуша, мнится мне что ты троллишь нас, а не пытаешься решить реальную проблему. Если бы хотела, то и расширение выложила бы и скрины накидала. Но нет, так нет.
11. spacecraft 22.09.23 20:03 Сейчас в теме
(3)
с клиента, в процедура серверная

Вот в этом проблема. В расширении невозможно вызвать извне серверную процедуру формы из клиента.
В модуле формы создайте клиентскую экспортную процедуру, которая и будет вызывать нужную серверную. А извне вызывайте созданную клиентскую процедуру модуля формы.
15. Jullis 23.09.23 14:02 Сейчас в теме
6. SlavaKron 22.09.23 16:03 Сейчас в теме
(1)
Ошибка в том, что процедура не находится
Какой точно текст ошибки?
8. Jullis 22.09.23 17:21 Сейчас в теме
(6)объект не найден, процедуру не находит
12. Alex_E 2362 23.09.23 08:43 Сейчас в теме
Нужную процедуру вынесите с формы в модуль менеджера документы, и вызывайте откуда захочется через Документы.<ВашДокумент>.ВашаПроцедура(<параметры>)
13. spacecraft 23.09.23 13:41 Сейчас в теме
(12) я думаю, там не просто вызвать процедуру надо. Эта процедура, скорее всего, работает с серверным контекстом формы.
14. Alex_E 2362 23.09.23 13:57 Сейчас в теме
(13) Чтобы там ни было - в процедуру (или функцию, если надо что то вернуть) модуля менеджера это всё легко передается параметрами в виде структуры. Сдается мне, что серверная процедура в одной форме, которую надо "достать" из другой формы, не на форме что-то делает, а что-то вычисляет, хотя исходных данных ноль, тут остаётся только гадать...

А так, модуль менеджера прекрасный инструмент именно в плане доступности на сервере откуда вздумается (когда расширения только появились, и общих модулей там не было, модуль менеджера обработки прекрасно справлялся вместо общего серверного модуля).
16. spacecraft 23.09.23 14:19 Сейчас в теме
(14)
Чтобы там ни было - в процедуру (или функцию, если надо что то вернуть) модуля менеджера это всё легко передается параметрами в виде структуры.

Далеко не все. На вскидку: Добавить новый реквизит формы и вывести на форму. Работа с реквизитами формы недоступными на клиенте. Т.е. все случаи, когда необходима серверная форма.
17. Alex_E 2362 23.09.23 14:41 Сейчас в теме
(16)
Далеко не все. На вскидку: Добавить новый реквизит формы и вывести на форму.
в рамках озвученной задачи речь идёт о серверном вызове - модуль менеджера только там и работает...добавлять / выводить реквизиты одной формы из другой...мсье, да Вы ....
18. spacecraft 23.09.23 14:57 Сейчас в теме
(17)
в рамках озвученной задачи речь идёт о серверном вызове - модуль менеджера только там и работает

Модуль менеджера не имеет своего контекста. Он будет таким, каким был вызван. Тонким клиентом просто невозможно вызвать

добавлять / выводить реквизиты одной формы из другой...

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

А уж место изменения реквизитов и элементов в типовых... там многое вынесено в общие модули, в которых это делается с формой.
19. Alex_E 2362 23.09.23 15:36 Сейчас в теме
(18) Разговор о чём? О том, как вызвать процедуру в одной форме на сервере из другой формы (вроде как формы обработки)?
Я предложил решение - эту процедуру вынести в модуль менеджера документа и вызвать из обеих форм эту процедуру оттуда. В параметры процедуры модуля менеджера можно передать всё, что нужно...просто просится само - две формы работают с одной процедурой - так процедура должны быть или в общем модуле, или в модуле менеджера одного из объектов. ИМХО - расшаривать процедуру для общего доступа в форме - моветон, но то моё мнение, не претендующее на истину в последней инстанции...

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

А уж место изменения реквизитов и элементов в типовых... там многое вынесено в общие модули, в которых это делается с формой.
- кто - то с этим спорит? Что общий модуль, что модуль менеджера в данном случае сработают, одинаково, только общий модуль надо добавлять в расширении, а модуль менеджера как бы уже есть в обоих объектах...
20. spacecraft 23.09.23 16:17 Сейчас в теме
(19)
Разговор о чём? О том, как вызвать процедуру в одной форме на сервере из другой формы (вроде как формы обработки)?
Я предложил решение - эту процедуру вынести в модуль менеджера документа и вызвать из обеих форм эту процедуру оттуда. В параметры процедуры модуля менеджера можно передать всё, что нужно...

Я просто указал, что это не всегда возможно. Посмотрите типовую erp. Документы ВерсияСоглашения...
Там в реквизитах формы используется СправочникОбъект.ДоговорыКонтрагентов. Вот как собираетесь этот объект передавать в параметрах в модуль менеджера?
Вот именно про это. Что не всегда возможна работа без серверной формы. А модуль менеджера этого не предоставит.
Да и просто сложную логику работы в серверном контексте формы переписать только для того, чтобы иметь возможность перенести ее в модуль менеджера... такое себе, когда достаточно дописать клиентскую экспортную процедуру, которая вызывает серверную в самом модуле формы. Ну, понятны трудозатраты?
Там же еще нужна возможность на клиент передать коллекцию всех необходимых данных. Иметь возможность эти данные переносить на сервер вне контекста формы...
Вот если изначально это делать, тогда еще частично возможно.
21. Alex_E 2362 23.09.23 17:41 Сейчас в теме
(20)
Там в реквизитах формы используется СправочникОбъект.ДоговорыКонтрагентов. Вот как собираетесь этот объект передавать в параметрах в модуль менеджера?
- легко - в параметрах передам ссылку, из которой в модуле получу объект...
(20)
Да и просто сложную логику работы в серверном контексте формы переписать только для того, чтобы иметь возможность перенести ее в модуль менеджера... такое себе, когда достаточно дописать клиентскую экспортную процедуру, которая вызывает серверную в самом модуле формы. Ну, понятны трудозатраты?
- мне совершенно непонятны, никто мне ту процедуру не показал...стесняюсь спросить, а Вам показали? Може там к 2 надо прибавить 34 и умножить на икс?
(20)
Там же еще нужна возможность на клиент передать коллекцию всех необходимых данных. Иметь возможность эти данные переносить на сервер вне контекста формы...
- есть такая мулька - ХранилищеЗначения - туда можно упихать что угодно, хоть картинку, хоть таблицу значений, которую нельзя передать между сервером и клиентом в форме...

Ещё рпаз - мне кажется, что экспортные процедуры в модуле формы - ересь страшное, сечь за такое на конюшне надо нещадно...но, опять таки, и ещё раз - то моё мнение, никому не навязываю, просто делюсь пытаюсь делиться опытом...не всегда удачно)))
22. spacecraft 23.09.23 18:02 Сейчас в теме
(21)
- легко - в параметрах передам ссылку, из которой в модуле получу объект...

Не смешно. Это будет совершенно другой объект, никак не связанный с объектом в реквизитах формы.
(21)
Ещё рпаз - мне кажется, что экспортные процедуры в модуле формы - ересь страшное, сечь за такое на конюшне надо нещадно...но, опять таки, и ещё раз - то моё мнение, никому не навязываю, просто делюсь пытаюсь делиться опытом...не всегда удачно)))

Вот сейчас не хочется проверять, но на сколько помню, в рознице так было точно. Из вне вызывались экспортные процедуры формы из других форм. Имена этих процедур передавались как строка для последующего вызова из вне.
Я уже не говорю про механизм БСП ПодключаемыеКоманды и т.д.
- мне совершенно непонятны, никто мне ту процедуру не показал...стесняюсь спросить, а Вам показали? Може там к 2 надо прибавить 34 и умножить на икс?

Я не видел. А Вы? Вот зачем спорить, что только в модуле менеджера нужно использовать процедуру? Я же не спорю, что так нельзя делать. Я просто указываю, что это не всегда возможно или не рентабельно.
23. Alex_E 2362 24.09.23 18:57 Сейчас в теме
(22)
Вот зачем спорить, что только в модуле менеджера нужн
- и где это я сказал, что ТОЛЬКО в модуле итд?
(22)
Вот сейчас не хочется проверять, но на сколько помню, в рознице так было точно.
и что это значит? Есть стандарты разработки от 1С, в типовых нарушаются через строчку и чего?
(22)
Я уже не говорю про механизм БСП ПодключаемыеКоманды и т
- опять за рыбу гроши...

Ещё раз - я высказал СВОЁ мнение, не нравится - соболезную...
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот