#0
by Моха Лёхов
Как-то непрозрачна эта тема. Вот пишу я в код процедуру, в комментарии к которой написано: "не выполняется на сервере 1С:Предприятия", ... и как мне при этом узнать, где будет выполняться мой код, есть ли какие-нибудь на эту тему комментарии? Прим. Прошу не путать с #Если Сервер и #Если Клиент, т.к. в этих случаях НЕ УСТАНАВЛИВАЕТСЯ место выполнения кода, а просто ПРОВЕРЯЕТСЯ.
#3
by Херрес
если вызовется с сервера - будет выполняться на сервере. Если с клиента - то на клиенте. Либо не выполнится вовсе.
#6
by fishca
Для указания разрешения использования процедур и функций общих модулей и модулей объектов используют инструкции препроцессору. Синтаксис: … #Иначе #КонецЕсли где: <Логическое выражение> = [НЕ] <Символ препроцессора> [<Булева операция> [НЕ] <Символ препроцессора> [<Булева операция> [НЕ] <Символ препроцессора>]…] <Символ препроцессора> = {Клиент | Сервер | ВнешнееСоединение } <Булева операция> = {И | ИЛИ} Используемые термы: НЕ (NOT) Регистр букв (строчные или заглавные) при написании не имеет значения. Описание использования: В варианте клиент-сервер Если используется клиент–серверный вариант запуска системы 1С:Предприятие, то можно организовывать выполнение различных процедур и функций на сервере приложения или на клиентском месте. Для выполнения на сервере: #Если Сервер Тогда … #КонецЕсли Для выполнения на клиентском месте: #Если Клиент Тогда … #КонецЕсли Для того, чтобы процедура присутствовала и была вызвана на стороне сервера, фрагмент кода должен выглядеть следующим образом: #Если Сервер Тогда … КонецПроцедуры #КонецЕсли Важно! В приведенном тексте ВСЯ процедура, а не ее часть находится внутри блока #Если Сервер Тогда … #КонецЕсли. При запуске конфигурации на выполнение производится загрузка и компиляция конфигурации. Экземпляры всех общих модулей создаются как на серверной, так и на клиентской стороне. Если в каком-то из общих модулей содержится приведенный фрагмент кода, то он в соответствии с инструкцией препроцессора #Если Сервер Тогда … #КонецЕсли будет скомпилирован только на стороне сервера, а на стороне клиента данный фрагмент «выпадет» из компилируемого текста и, таким образом, процедура на стороне клиента не будет представлена совсем. Далее, при компиляции на стороне клиента модулей, в которых содержится обращение к данной процедуре, будет произведен ее поиск на стороне клиента. На стороне клиента таковой процедуры нет, следовательно, она не будет найдена. Тогда будет произведен поиск процедуры в общих модулях на стороне сервера, где она будет обнаружена и все вызовы будут переправляться для выполнения на сервер 1С:Предприятия. Если блок #Если Сервер Тогда … #КонецЕсли включает только часть процедуры, то процедура будет присутствовать как на стороне клиента, так и на стороне сервера. Только на клиентской стороне она будет без той части, которая заключена в блок, поэтому результат выполнения процедуры может зависеть от того, где обрабатывается вызов этой процедуры. В файл–серверном варианте В файловом варианте инструкции препроцессору #Если Сервер… или #Если Клиент… пропускаются, поэтому экземпляр кода будет присутствовать всегда. В сессии СОМ-соединения Для включения возможности использования процедур и функций в сессии внешнего соединения применяется инструкция препроцессора. #Если ВнешнееСоединение Тогда … #КонецЕсли
#7
by Херрес
1. найти места откуда вызывается код (глобальным поиском) 2. узнать где выполняется место, откуда вызывается код (как - см. 1)
#11
by root
сунь в эту процедуру бесконечный цикл и посмотри где нагрузка на камушек будет больше. на клиенте или на сервере
#12
by root
напиши в процедуру реальную обработку для реальной задачи, сделай три замера: 1-ый без директив, 2 - с директивой для сервера, 3- для клиента; сравни результаты-получишь выводы
#18
by Diman000
Вопрос такой. Если я правильно понял ситуацию, что код выполняется там, где создан объект, это значит, что модули проведения документов, вводимых пользователями, всегда будут скомпилированы на клиенте, но не на сервере.
#19
by SilentMan
Однако перепроведение документов из серверного общего модуля приведет к тому, что модули проведения будут скомпилированы на серверной стороне. Именно поэтому и нужны операторы препроцессора внутри процедур/функций.
#20
by Vozhd
если документ интерактивно проводится пользователем, то модуль проведения выполняется всегда на клиенте
#22
by Diman000
Если ДокументОбъект будет создан на клиенте (например, введен пользователем интерактивно), то, имхо, этот код вообще не скомпилируется. А если на сервере, то, естественно, на сервере.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Определение сервера под сервер приложений и сервер SQL
- Можно на один сервер ставить терминал, сервер предприятия и sql сервер
- Тонкий клиент и web клиент, а так же Поле HTML документа
- Как оптимальнее расселить сервер терминалов, сервер СУБД и сервер 1С на 2 сервера
- Как узнать где выполняется текущий код? (Клиент разный, сервер)
- Вызов сервера из общего модуля (клиент,сервер,вызовсервера)
- v8i 8.2 тонкий клиент, толстый клиент и все все все
- остатки скд на каждый день
- Нормально ли использовать на сервере 64-битный сервер 1с и 32 битный клиент?
В этой группе 1С
- Свойство ярлыка --> объект. Как получить?
- Фича ТЗ на форме
- Есть ли возможность в печатной форме вывести текст вертикально
- v7: Поиск соответствий номенклатуры в текстовом файле
- Как Хранить и запускать документ ворд в 1с?
- Открытие формы нового элемента справочника
- v8: Про исполнительные листы в УПП
- Как запускать обработку в определенный момент времени?
- ТиС. Счет фактуры... Грузополучатель и покупатель.
- Шахматное программирование: Алгоритмы, События....
- v7: ЗиК Возврат из декретного отпуска
- v7: Не совпадают обороты по документам и проводкам в Кассовой Книге
- Как запросом вывести количество строк в табл. части каждого документа?
- Скрыть пункт меню в зависимости от роли пользователя
- Дуплексная печать в 1С
- RS-Balance. Кто-что скажет в сравнении с 1С V7&V8
- Сохранение регламентированных отчётов в 1С 7.7 "Комплексная конф. для Украины"
- "Левые" накладные
- Как вывести в отчет остатки по счету, включая нулевые?
- v7: Как программно раскрыть окно документа в 1С на весь экран?