#0
by Fedor-1971
Провёл простой эксперимент на 8.2: 1. сделал общий модуль с флагами Сервер и Вызов сервера 2. написал экспортную процедуру 3. вызвал оную из обработчика события в документе (как из процедуры НаКлиенте, так и из процедуры НаСервере) Отладчиком проверил наличие контекста формы документа внутри серверной процедуры общего модуля - отсутствует (что собственно и ожидалось) Получается процедуры(функции) в общих модулях компилируются как &НаСервереБезКонтекста. Тогда не совсем понято почему исключена возможность контекстного вызова процедуры из общего модуля. По ходу для 8.3 оставлена та же логика компиляции общих модулей или всё таки сделана возможность использования контекстных вызовов общих модулей?
#2
by H A D G E H O G s
Модуль формы В модуле формы доступны директивы компиляции – &НаКлиенте, &НаСервере, &НаСервереБезКонтекста, &НаКлиентеНаСервереБезКонтекста. Модуль команды В модуле команды доступны директивы компиляции – &НаКлиенте, &НаСервере, &НаКлиентеНаСервере. Общий модуль В общем модуле доступны директивы компиляции – &НаКлиенте, &НаСервере. Контекст формы к этому значения не имеет и доступен только в модуле формы.
#3
by Господин ПЖ
>Тогда не совсем понято почему исключена возможность контекстного вызова процедуры из общего модуля. переведи...
#5
by Лефмихалыч
у процедур и функций общих модулей ни когда не было контекста формы и ни когда не будет. Думаю сабж возник от непонимания или внезапного прочтения слова "контекст"
#6
by Господин ПЖ
и что такое - контекстный вызов процедуры (чьей процедуры? формы?) из общего модуля? типа дернуть форму находясь на сервере хочет?
#8
by Fedor-1971
перевожу уточняю Есть форма со своим клиентским контекстом при переходе на сервер, создаётся её серверный контекст. Соответственно что мешает из оного дёрнуть серверную процедуру общего модуля оставаясь в контексте (он уже создан, инициализирован)? ан нет, вызов процедуры общего модуля выполняется внеконтекстно, что не совсем логично.
#9
by Лефмихалыч
мешает то, что у серверного модуля нет, не было и ни когда не будет контекста формы. Если тебе нужно выполнять код в контексте формы, то код должен располагаться в модуле формы.
#11
by Fedor-1971
Так он ему и не нужен, в нормальном состоянии процедура выполняется в той среде из которой вызвана (например, в С) Почему?
#14
by Лефмихалыч
именно! Не нужен, потому его там и нет. А код выполняется в разн... короче, контекст формы может существовать только в модуле форму. Живите с этим.
#15
by H A D G E H O G s
Насчет логики. Поскрипи извилинами. Была 8.1. Были серверные модули. Контекстом формы на сервере вообще не пахло. И вот появляется 8.2, конфигурации переползают на нее и в серверных модулях появляется какой-то контекст. Это как в 8.3 у ОМ появился контекст ЭтотОбъект, вот у меня батхерта было.
#16
by Fedor-1971
придётся смириться. С системной точки зрения такая несправедливость очень просто объясняется: общие модули работают без контекста, т.к. не понятно откуда он вызван (прямо с клиента или с сервера - в обеих случаях контексты вызова разные), а отслеживать место вызова - лишняя головная боль системе. В давние времена такие модули назывались реентерабельными - программируй в расчёте только на имеющиеся данные (параметры вызова и константы). вот и я про то-же, при появлении контекста в последующих версиях платформы придётся менять логику (данность) вызова процедур из ОМ и может случиться большой ОЙ, когда старая процедура таки отработает в контексте вызова оной.
#17
by H A D G E H O G s
т.к. не понятно откуда он вызван (прямо с клиента или с сервера - в обеих случаях контексты вызова разные) Плохо.. #ИначеЕсли ТонкийКлиент Тогда Возврат 20; #ИначеЕсли ТолстыйКлиентУправляемоеПриложение Тогда #Конец КонецПроцедуры
#19
by Fedor-1971
Это не совсем то, в этом примере выделены несколько вариантов компиляции функции для работы в разных средах. Если с клиента вызвать данную функцию, то и останешься на клиенте. В я писал с точки зрения системы: вызвали серверную процедуру из ОМ сразу встаёт вопрос "откуда?" и два варианта Клиент и Сервер, потому система говорит "да ну нах..! Работай без контекста!".
#22
by Fedor-1971
да в общем мысль была в следующем: сейчас ОМ работают без контекста и по ходу развитие идёт в направлении появления контекста вызова у ОМ. Получается процедуры ОМ нужно разрабатывать с применением &НаСервереБезКонтекста дабы не влететь в будущем на непонятные эффекты.
#23
by H A D G E H O G s
"и по ходу развитие идёт в направлении появления контекста вызова у ОМ. " Счегобыэто?
#28
by H A D G E H O G s
И на этом - все. Что то новое - ждите в 8.4. И вряд ли это будет контекст формы в ОМ.
#29
by vmv
ОМ - это по сути алгоритмы(методы) в абстракциях уходящие в дух. Контекст - это по сути данные(ощущения) в абстрации уходящие в материю предлагаю позвать Канта и вновь поднять проблему "курицы и яйца"
#30
by MrStomak
Это вообще-то для того, чтобы передавать контекст этого модуля куда-то еще. А контекст модуля - это его экспортные методы. Частный случай применения - ОМ работы с торговым оборудованием. К формам вообще отношения не имеет.
#33
by vmv
Я надеюсь разработчики платформ филофофски подкованы неплохо и не будут идти на поводу голого популизма
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- v7: Не могу получить почту (через DialMail.dll)
- v7: Передача параметра в Поле ввода с типом Справочник
- 1C ЗУП 8.2 Индексация макс. пособия по уходу за ребенком до 1.5 лет
- Отборы в отчете на управляемых формах
- v7: Не верно считает НДФЛ
- Дополнительная обработка для самописного документа
- программно изменить значение в зависимом регистре сведений
- СКД, запретить пользователю изменять вариант отчета.
- v7: Не отображается колонка в многострочной части
- правила выгрузки "ввода начальных остатков"
- Как сделать периодичность в отчете на СКД?
- РИБ: Таблица регистрации изменений конфигурации
- как отразить в отчете СКД изменение наименования контрагента?
- СКД двоит выводимые данные - так и надо?
- Начисление по больничному и фактический период действия
- v7: Как с word документа выгрузить таблицу в 1с 7.7
- ЗУП, расчетный лист. порядок вывода начислений
- УТ 11.1 "Мобильное рабочее место кладовщика"
- Кратность в спецификации где? комплексная
- Как в веб-клиенте скрыть меню "Файл-открыть" и остальные : "сервис", "вид&q