|
С каких пор стало можно вызывать не экспортные процедуры модуля формы? | ☑ | ||
---|---|---|---|---|
0
Киборг
21.06.17
✎
19:06
|
обнаружил в БСП в модуле УправлениеКонтактнойИнформациейКлиент такой код:
Форма.Подключаемый_ОбновитьКонтактнуюИнформацию(Результат); в самой форме процедура написана так: &НаСервере Процедура Подключаемый_ОбновитьКонтактнуюИнформацию(Результат) УправлениеКонтактнойИнформацией.ОбновитьКонтактнуюИнформацию(ЭтотОбъект, Объект, Результат); КонецПроцедуры и это работает! как такое возможно? |
|||
1
Киборг
21.06.17
✎
19:08
|
Причем, из клиентского модуля клиентскую неэкспортную процедуру формы нельзя вызвать, из серверного модуля серверную - тоже нельзя.
|
|||
2
mistеr
21.06.17
✎
19:19
|
Вероятно, открыли лазейку специально для БСП.
Иначе внедрение подсистем, как КИ, превратилось бы в полный кошмар. |
|||
3
PR
21.06.17
✎
19:21
|
(1) Чет похоже на гон
|
|||
4
youalex
21.06.17
✎
19:23
|
модули же разные.
УправлениеКонтактнойИнформациейКлиент УправлениеКонтактнойИнформацией |
|||
5
Lexey_
21.06.17
✎
19:28
|
(0) форма не та?
|
|||
6
Киборг
21.06.17
✎
19:31
|
(2) так достаточно добавить Экспорт у процедуры и она будет вызываться откуда угодно и вопросов к такому коду не будет
(3) ты про что? ситуация элементарно моделируется на новой конфигурации, проверить это можно за 5 минут (5) да не, форма та, по шагам проверял - выполнение переходит в модуль формы в эту неэкспортную процедуру, можешь сам попробовать, добавь новую КИ, например телефон |
|||
7
PR
21.06.17
✎
19:36
|
(6) Я про то, что клиентскую нельзя вызвать — это нормально, происходит-то все на сервере.
А вот про серверную что-то не верится, с чего бы нельзя? |
|||
8
PR
21.06.17
✎
19:37
|
+(7) А, блин, перепутал ситуацию с той, когда берется объект обработки и вызывается ее функция.
|
|||
9
jsmith82
21.06.17
✎
19:46
|
Недокументированные возможности 1С?
Щас проверю |
|||
10
PR
21.06.17
✎
19:48
|
(9) Ты наизусть помнишь доку по 1С?
|
|||
11
Киборг
21.06.17
✎
19:52
|
(2) кстати, возможно ты прав
В требованиях сертификации кажется есть условие, чтобы код формы не содержал экспортных процедур, кроме оповещений. Поэтому БСП не может использовать Экспорт у процедур модуля формы. |
|||
12
jsmith82
21.06.17
✎
19:53
|
(10) Ты про то, что это документировано?
|
|||
13
PR
21.06.17
✎
19:54
|
(12) Да, возможно
|
|||
14
jsmith82
21.06.17
✎
19:58
|
А может это какое-то хитрое замыкание?
|
|||
15
jsmith82
21.06.17
✎
19:59
|
На событие накидывается оповещение. В оповещении в доп. параметрах сама форма.
Тут такой коммент еще есть
|
|||
16
jsmith82
21.06.17
✎
20:05
|
Нет. Всё работает и по обычному без оповещений.
|
|||
17
youalex
21.06.17
✎
20:06
|
На пустой конфе тоже работает, подтверждаю.
|
|||
18
jsmith82
21.06.17
✎
20:07
|
Но клиентскую процедуру вызвать нельзя
|
|||
19
jsmith82
21.06.17
✎
20:07
|
Ну всё равно хорошо. Теперь можно во внешних обработках обращаться к серверным процедурам перезаполнения цен и проч. без лишнего гемора
|
|||
20
H A D G E H O G s
21.06.17
✎
20:48
|
Это фича была уже описана в одном бложеге.
|
|||
21
Волшебник
модератор
21.06.17
✎
21:28
|
(20) Это документированная фича или багофича?
|
|||
22
H A D G E H O G s
21.06.17
✎
21:51
|
(21) Пытаюсь найти статью. Видел пару лет назад.
|
|||
23
yzimin
21.06.17
✎
22:04
|
Подтверждаю, работает.
Создал внешнюю обработку заполнения объекта, вызвал серверную процедуру модуля формы ВладелецФормы.УдалитьТоварыБезИзмененныхЦенНаСервере(); |
|||
24
Волшебник
модератор
21.06.17
✎
22:24
|
(23) Формы на сервере? Ну что за бред?
|
|||
25
yzimin
21.06.17
✎
22:28
|
(24) читай внимательно
|
|||
26
Киборг
21.06.17
✎
22:48
|
(20) Ну это точно не багофича, раз она используется в БСП. А вот насчет документированности самому интересно, поэтому собственно и тема поднята. Но наверно уже можно считать, что это и не документированная фича.
|
|||
27
Новиков
21.06.17
✎
22:50
|
(22) >>Пытаюсь найти статью. Видел пару лет назад.
https://habrahabr.ru/post/273155/ ТС, о чудный мир тебе открылся дружище! Ты "переоткрыл" изюм, ажна спустя несколько лет. Поздравления и маковные булочки тебе! |
|||
28
Киборг
21.06.17
✎
23:03
|
(27) Не понял сарказма. Я же не за лаврами сюда пришел с этой темой. Я тут не настолько известен. :)
В статье, кстати, тоже ничего не говорится о причинах такого поведения платформы. Автор этой статьи явно ошибается считая ее багофичей. Надо будет проверить завтра будут ли "видны" на клиенте изменения в форме сделанные таким вызовом. |
|||
29
yzimin
21.06.17
✎
23:15
|
(28) какая версия конфигурации?
у меня все процедуры такие Процедура Подключаемый_ОбновитьКонтактнуюИнформацию(Результат) Экспорт |
|||
30
Киборг
21.06.17
✎
23:58
|
(29) Версия БСП 2.3.4.x кажется, завтра точнее cмогу сказать. Версия платформы 8.3.10.х
А у тебя какая версия БСП? Впрочем надо посмотреть последнюю версию БСП. |
|||
31
Киборг
21.06.17
✎
23:59
|
(29) В любом случае в инструкции БСП нашей версии написано, что надо в модуль формы добавить процедуру без слова Экспорт
|
|||
32
yzimin
22.06.17
✎
00:12
|
(30) 2.3.5.65
|
|||
33
Новиков
22.06.17
✎
11:52
|
(28) >>В статье, кстати, тоже ничего не говорится о причинах такого поведения платформы.
Причина такого поведения такая - "патамушта" (с). Твой вопрос уже задавался на партнерке, мне ленно искать пруф туда, сам поищи. Обсуждение там закончилось, буквально - ничем. Ответа нет. Бага это или фича - решает каждый вновь-переоткрыватель ее. Юзай фичу, пока можно, и "не думай об этом" (с) |
|||
34
youalex
22.06.17
✎
12:07
|
(33) >Юзай фичу, пока можно, и "не думай об этом" (с)
Главное, не думать о том, что эту "фичу" могут закрыть, как баг) |
|||
35
Киборг
22.06.17
✎
12:41
|
(33) нашел, там по сути нет обсуждения, два партнера перекинулись парой фраз по теме и все, представители 1С темой не заинтересовались :)
Юзать страшно :) Фича не документирована, а значит нет гарантий, что она не будет устранена в одном из следующих релизов, хотя ее использование в БСП намекает о том, что фича будет "живучей". :) И вот кстати совершенно непонятно зачем БСП ее использует- конструкция в первом сообщении вполне может быть оформлена через описание оповещения. Практическая пригодность этой фичи на мой взгляд заключается только в возможности использовать серверные процедуры в модулях форм, находящихся на поддержке, да и то ограниченно - вызывая их исключительно из клиентского контекста. |
|||
36
yzimin
22.06.17
✎
13:35
|
(35) в БСП одна рекомендация, а в типовых процедуры эти экспортные
|
|||
37
Киборг
22.06.17
✎
13:50
|
(36) в Бух 3.0.44.188 процедура неэкспортная везде, кроме справочника Организации, а кое-где она к тому же и нестандартная или переделана на функцию. В типовых вольно подходят к рекомендациям БСП :)
|
|||
38
тарам пам пам
22.06.17
✎
14:12
|
Попробую ткнуть пальцем в небо - из-за клиент-серверного разделения формы клиентская часть формы считается "внешней" по отношению к серверной, поэтому, чтобы клиент видел серверную часть формы, все процедуры с директивой &НаСервере считаются по-умолчанию экспортными.
Кстати, возник вопрос - а с &НаКлиентеНаСервереБезКонтекста не получится ли вызывать и клиентскую процедуру? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |