|
Вызов серверных процедур управляемых форм из общего модуля | ☑ | ||
---|---|---|---|---|
0
gae
04.10.19
✎
13:20
|
Не очень разбираюсь в управляемых формах.
В ERP, в формах, есть такая процедура (БСП-шная): &НаСервере Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Элементы.Список, Результат); КонецПроцедуры Вызывается она из клиентского общего модуля, так: Контекст.Форма.Подключаемый_ВыполнитьКомандуНаСервере(СерверныйКонтекст, Результат); Все работает. А у меня в другой конфе не видит процедуру Подключаемый_ВыполнитьКомандуНаСервере(), работает только если ей Экспорт поставить. В чем фишка, как так в ERP работает без Экспорт? |
|||
1
ptiz
04.10.19
✎
13:23
|
(0) "Вызывается она из клиентского общего модуля," - а точно? Поставь в ней точку останова и посмотри стек вызовов.
|
|||
2
gae
04.10.19
✎
13:27
|
(1) Это БСП-шный общий модуль ПодключаемыеКомандыКлиент, в нем только флаг Клиент, отладкой видно Клиент: "Тонкий клиент:admin (50), SKYLAKE:1563."
|
|||
3
gae
04.10.19
✎
13:36
|
+(2) А когда в процедуру Подключаемый_ВыполнитьКомандуНаСервере заходит (если находит), то уже "Сервер (файловый вариант)"
|
|||
4
gae
04.10.19
✎
13:38
|
Если в своей конфе не ставлю Экспорт, то получаю:
Метод объекта не обнаружен (Подключаемый_ВыполнитьКомандуНаСервере) {ОбщийМодуль.ПодключаемыеКомандыКлиент.Модуль(141)}: Контекст.Форма.Подключаемый_ВыполнитьКомандуНаСервере(СерверныйКонтекст, Результат); {ОбщийМодуль.ПодключаемыеКомандыКлиент.Модуль(33)}: ПродолжитьВыполнениеКоманды(Контекст); ... |
|||
5
ptiz
04.10.19
✎
13:48
|
Нельзя вызвать НЕэкспортную процедуру форме извне. Даже БСП.
|
|||
6
gae
04.10.19
✎
13:50
|
(5) Это код из ERP:
&НаСервере Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Элементы.Список, Результат); КонецПроцедуры Работает. Это выдержка из документации БСП: ● В модуле формы вставить процедуры (обработчики команд): // СтандартныеПодсистемы.ПодключаемыеКоманды &НаКлиенте Процедура Подключаемый_ВыполнитьКоманду(Команда) ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, <ОбъектИлиТаблицаФормы>); КонецПроцедуры &НаСервере Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, <ОбъектИлиТаблицаФормы>, Результат); КонецПроцедуры &НаКлиенте Процедура Подключаемый_ОбновитьКоманды() ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, <ОбъектИлиТаблицаФормы>); КонецПроцедуры // Конец СтандартныеПодсистемы.ПодключаемыеКоманды Нигде нет "Экспорт" |
|||
7
gae
04.10.19
✎
13:59
|
Вот похожая ветка: С каких пор стало можно вызывать не экспортные процедуры модуля формы?
|
|||
8
gae
04.10.19
✎
14:10
|
В общем судя по
http://downloads.v8.1c.ru/content//Platform/8_3_13_1198/1cv8upd_8_3_13_1198.htm#e8358d91-2063-11e8-a3f7-0050569f678a эту багофичу прикрыли в 8.3.13. У меня платформа 8.3.15, но ERP в режиме совместимости 8.3.12, в моя конфа в режиме 8.3.14. Вот и все. |
|||
9
banco
04.10.19
✎
14:15
|
(6) В новых версиях БСП уже добавили Экспорт.
В связи с изменением поведения платформы 1C:Предприятие 8.3.13, у ранее размещенных в модулях форм процедур Подключаемый_ВыполнитьКомандуНаСервере необходимо добавить ключевое слово Экспорт |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |