Для удобного просмотра сайта рекомендуется использовать Google Chrome.


Закрытая тема
Показано с 1 по 3 из 3

Тема: Использование кода модулей для различных режимов запуска 1С:Предприятия

  1. #1
    Senior Member
    Регистрация
    03.02.2012
    Сообщений
    12,724
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а)
    в 0 сообщениях

    По умолчанию Использование кода модулей для различных режимов запуска 1С:Предприятия

    Использование кода модулей для различных режимов запуска 1С:Предприятия

    Системы 1С:Предприятие могут использоваться в файловом, клиент-серверном вариантах, в режиме управляемого приложения, а также в сессии СОМ-соединения.
    Конфигуратор позволяет настроить использование процедур и функций общих модулей и модулей объектов для каждого варианта.
    При написании кода также следует учитывать доступность объектов, их свойств и методов в зависимости от режима запуска.

  2. #2
    Senior Member
    Регистрация
    03.02.2012
    Сообщений
    12,724
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а)
    в 0 сообщениях

    По умолчанию

    Исполнение процедур и функций

    В варианте клиент-сервер
    В файл–серверном варианте
    В сессии СОМ-соединения
    В тонком клиенте
    В веб-клиенте
    Настройка использования кода в различных режимах запуска осуществляется с помощью инструкций препроцессору.
    В варианте клиент-сервер

    Если используется клиент–серверный вариант запуска системы 1С:Предприятие, то можно организовывать выполнение различных процедур и функций на сервере приложения или на клиентском месте.
    Для выполнения на сервере:
    #Если Сервер Тогда

    #КонецЕсли

    Для выполнения на клиентском месте:
    #Если ТолстыйКлиентОбычноеПриложение Тогда

    #КонецЕсли

    #Если ТолстыйКлиентУправляемоеПриложение Тогда

    #КонецЕсли

    #Если ТонкийКлиент Тогда

    #КонецЕсли

    Для того, чтобы процедура присутствовала и была вызвана на стороне сервера, фрагмент кода должен выглядеть следующим образом:
    #Если Сервер Тогда
    Процедура Проц1() Экспорт

    КонецПроцедуры
    #КонецЕсли

    Важно! В приведенном тексте ВСЯ процедура, а не ее часть находится внутри блока #Если Сервер Тогда … #КонецЕсли.
    При запуске конфигурации на выполнение производится загрузка и компиляция конфигурации. Экземпляры всех общих модулей создаются как на серверной, так и на клиентской стороне. Если в каком-то из общих модулей содержится приведенный фрагмент кода, то он в соответствии с инструкцией препроцессора #Если Сервер Тогда … #КонецЕсли будет скомпилирован только на стороне сервера, а на стороне клиента данный фрагмент «выпадет» из компилируемого текста и, таким образом, процедура на стороне клиента не будет представлена совсем.
    Далее, при компиляции на стороне клиента модулей, в которых содержится обращение к данной процедуре, будет произведен ее поиск на стороне клиента. На стороне клиента таковой процедуры нет, следовательно, она не будет найдена. Тогда будет произведен поиск процедуры в общих модулях на стороне сервера, где она будет обнаружена и все вызовы будут переправляться для выполнения на сервер 1С:Предприятия.
    Если блок #Если Сервер Тогда … #КонецЕсли включает только часть процедуры, то процедура будет присутствовать как на стороне клиента, так и на стороне сервера. Только на клиентской стороне она будет без той части, которая заключена в блок, поэтому результат выполнения процедуры может зависеть от того, где обрабатывается вызов этой процедуры.
    Для правильного понимания ситуации в случае использования клиент–серверного варианта информационной базы важным понятием является «экземпляр модуля». Экземпляр модуля содержит скомпилированный код модуля, значения глобальных переменных модуля и т. п. Экземпляры всех общих модулей создаются как на стороне клиента, так и на стороне сервера. Экземпляры модулей таких объектов, как документы или элементы справочников, существуют при своих объектах и могут появляться как на клиентской, так и на серверной стороне, в зависимости от того, где создается тот или иной объект.
    Общие модули образуют некоторую общедоступную библиотеку процедур и функций, которые могут быть использованы во всех других модулях.
    Предположим, что модуль некоторого объекта, например документа Д, содержит обращение к процедуре П(), определенной в одном из общих модулей. При этом «вокруг» процедуры П() нет никаких операторов препроцессора. В этом случае процедура П() будет содержаться как в экземпляре общего модуля на клиентской стороне, так и в экземпляре общего модуля на серверной стороне. Таким образом, модуль документа, созданного на стороне клиента будет обращаться к процедуре П() из общего модуля на стороне клиента, а модуль документа, созданного на стороне сервера будет обращаться к процедуре общего модуля на стороне сервера.
    Теперь предположим, что процедура П() заключена в блок #Если Сервер Тогда … #КонецЕсли. В этом случае экземпляр общего модуля на клиентской стороне не будет содержать процедуру П() и все обращения к ней как со стороны клиента, так и со стороны сервера всегда будет разрешаться за счет экземпляра общего модуля на серверной стороне. То есть все вызовы процедуры П() всегда будут обрабатываться на сервере.
    А теперь предположим, что процедура П() заключена в блок #Если ТолстыйКлиентУправляемоеПриложение Тогда … #КонецЕсли. В этом случае экземпляр общего модуля на стороне сервера не будет содержать процедуру П() и обращение к ней будет возможно только на стороне клиента. А экземпляр модуля, содержащий обращение к процедуре П() не сможет быть создан на стороне сервера, так как вызовы клиентских процедур с сервера не поддерживаются и обращение к процедуре П() на серверной стороне останется неразрешенным.
    В файловом варианте все намного проще, а именно, клиентская и серверная сторона считаются "слившимися". При компиляции всех модулей Сервер, ТонкийКлиент, ТолстыйКлиентУправляемоеПриложение и ТолстыйКлиентОбычноеПриложение считаются определенными и фрагменты кода, находящиеся внутри блоков #Если Сервер Тогда … #КонецЕсли и #Если ТолстыйКлиентОбычноеПриложение Тогда … #КонецЕсли не будут "вырезаться" при компиляции модулей.
    В файл–серверном варианте

    В файловом варианте инструкции препроцессору #Если Сервер… или #Если Клиент… пропускаются, поэтому экземпляр кода будет присутствовать всегда.
    В сессии СОМ-соединения

    Для включения возможности использования процедур и функций в сессии внешнего соединения применяется инструкция препроцессора
    #Если ВнешнееСоединение Тогда

    #КонецЕсли

    В тонком клиенте

    Для включения возможности использования процедур и функций в тонком клиенте применяется инструкция препроцессора
    #Если ТонкийКлиент Тогда

    #КонецЕсли

    В веб-клиенте

    Для включения возможности использования процедур и функций в веб-клиенте применяется инструкция препроцессора
    #Если ВебКлиент Тогда

    #КонецЕсли

  3. #3
    Senior Member
    Регистрация
    03.02.2012
    Сообщений
    12,724
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а)
    в 0 сообщениях

    По умолчанию

    Доступность объектов, их свойств и методов

    При исполнении встроенного языка на сервере 1С:Предприятия не все объекты, а также их свойства и методы могут быть доступны. Например, не доступны объекты глобального контекста, предназначенные для управления интерфейсом, за исключением функции Сообщить().
    Также возможна ситуация, когда сам объект доступен для использования на сервере, а его свойства или методы нет. Например, свойство РабочаяДата изменяется конкретным пользователем в текущем сеансе и предназначено для удобства заполнения форм, поэтому его использование на сервере теряет смысл.
    Для сессии внешнего соединения доступен весь глобальный контекст, за исключением объектов, жестко связанных с клиентским приложением (ТекстовыйДокумент, ТабличныйДокумент, ...)
    Если объект, его свойство или метод доступен на сервере, то специального упоминания об этом производиться не будет. В противном случае в документации будет указано на невозможность использования на сервере. Исключения составляют значения системных перечислений. В них возможность использования указывается только для самих объектов. Подразумевается, что значения перечислений "наследуют" эту возможность.
    Аналогичное правило вводится для возможности использования объектов, их свойств и методов в сессии внешнего соединения.
    Доступность объектов, их свойств, методов на тонком и веб-клиентах указывается в описании Синтакс-Помощника. Для показа описаний механизмов по определенным режимам запуска используйте настройку (пункт меню "Сервис - Параметры" закладка "Справка").

Закрытая тема

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

     

Похожие темы

  1. Настройка и использование веб-браузера Apple Safari
    от Verojer в разделе Администрирование 1С
    Ответов: 0
    Последнее сообщение: 03.02.2012, 05:34
  2. Настройка и использование веб-браузера Google Chrome
    от Verojer в разделе Администрирование 1С
    Ответов: 0
    Последнее сообщение: 03.02.2012, 05:33
  3. Настройка и использование веб-браузера Mozilla Firefox
    от Verojer в разделе Администрирование 1С
    Ответов: 0
    Последнее сообщение: 03.02.2012, 05:33
  4. Настройка и использование веб-браузера Microsoft Internet Explorer
    от Verojer в разделе Администрирование 1С
    Ответов: 0
    Последнее сообщение: 03.02.2012, 05:32
  5. Ключи запуска 1С 80 из командной строки
    от maverick в разделе Администрирование 1С
    Ответов: 0
    Последнее сообщение: 02.01.2011, 13:24

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения


Навигация по сайту:
, 1c, 1с 8.2, 1с 8.3, Скачать 1с, 1с бухгалтерия, 1с предприятие, Программа 1с,
1с торговля, 1с управление, 1с зарплата, Обновление 1с, Миста, Программирование 1с,

Положение об ответственности
Связь с администрацией erpsolution.ru@yandex.ru