[РЕШЕНО] Правильность понимания &НаСервере и &НаСервереБезКонтекста в общих модулях

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем astra, 3 апр 2014.

  1. TopicStarter Overlay
    astra
    Offline

    astra Опытный в 1С

    Регистрация:
    6 фев 2013
    Сообщения:
    59
    Симпатии:
    0
    Баллы:
    26
    Провёл простой эксперимент на 8.2:
    1. сделал общий модуль с флагами Сервер и Вызов сервера
    2. написал экспортную процедуру
    3. вызвал оную из обработчика события в документе (как из процедуры НаКлиенте, так и из процедуры НаСервере)
    Отладчиком проверил наличие контекста формы документа внутри серверной процедуры общего модуля - отсутствует (что собственно и ожидалось)

    Получается процедуры(функции) в общих модулях компилируются как &НаСервереБезКонтекста. Тогда не совсем понято почему исключена возможность контекстного вызова процедуры из общего модуля.
    По ходу для 8.3 оставлена та же логика компиляции общих модулей или всё таки сделана возможность использования контекстных вызовов общих модулей?
  2. Coder1C
    Offline

    Coder1C Слуга форума Команда форума Администратор

    Регистрация:
    10 фев 2006
    Сообщения:
    506
    Симпатии:
    31
    Баллы:
    54
  3. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Ну, в общем, да. Можно и так сказать.

    Понятие "контекст" в данном понимании характерно только форме (модулю формы), и определяет, доступны ли вам в данном фрагменте кода данные формы (реквизиты, элементы, команды, в общем, сама форма).
    Если Вы находитесь в общем модуле, о какой форме может идти речь? В контексте какой формы, Вы думаете, Вы находитесь (или хотите находиться)?
    Ответ - никакой :) Никакой формы здесь нет. Это ведь общий модуль ))

    В общем модуле Вы, конечно, можете работать с формой, но только если получите ее методом "ПолучитьФорму()", либо передадите ее сюда в качестве параметра процедуры (функции).

    Нет в общих модулях никакого контекста (если Вы про контекст формы), в 8.3 в том числе :)

Поделиться этой страницей