#0
by Хочу спросить
Читаю "Конфигурирование и администрирование", и не понял такую вещь. Если флажки "Клиент" и "Сервер" для общего модуля стоят, а директив препроцессора нет, то ГДЕ в результате всё будет исполняться? Вообще, в кните не совсем понятно это как-то освещается - везде употребляются слова "может", "можно" и т.д., а где "будет" фактически исполняться, неясно...
#1
by France
Если нет директив: клиент-серверном режиме, исполнение на сервере, в файл серверном - на клиенте.
#2
by Хочу спросить
Спасибо. Насчёт файлового варианта я понял так: как флажки, так и директивы игнорируются (всё всегда на клиенте). Теперь насчёт клиент-серверного варианта: флажки "Клиент" и "Сервер" просто "включают" соответствующие директивы (если такие директивы имеются), так что ли? При этом, если директивы вокруг процедуры нет (или соответствующий флажок для директивы этого вида не установлен), то процедура исполняется всегда на сервере. Я правильно понял?
#3
by Хочу спросить
+ Написал и понял: нелогично как-то... Получается, что "серверная" директива и флажок "Сервер" не нужны, т.к. это умолчание. Зачем они тогда?
#5
by Хочу спросить
С экспериментами плоховато будет, т.к. у меня файловый вариант стоит. А понять хотелось бы...
#7
by Хочу спросить
У меня нет $1200, а ломать не хочу. P.S. Вот вам и прелести лицензирования софта :))
#8
by France
а зачем ломать?... к тому же, вряд ли сумееш это сделать... есть более простые и легкие пути..
#11
by Хочу спросить
В инете найти что? У меня работа, где нет клиент-сервера (пока). А чтобы он появился, надо что-то написать (конфигурацию в смысле).
#15
by Vozhd
Если у модуля стоит флажок "Исполнять на сервере", то данный модуль будет скомпилирован на сервере предприятия. А вот будет он там исполняться или нет - это уже зависит от того, как этот модуль вызывается (именно это разруливается директивами препроцессора). Описание этого есть в штатной документации.
#16
by Хочу спросить
Флажка "Исполнять на сервере" не существует. Есть флажки "Клиент" и "Сервер". Странные вещи говоришь... А если у модуля стоят оба флажка ("Клиент" и "Сервер"), то где он будет скомпилирован? P.S. Именно "штатную документацию" и читаем.
#18
by Хочу спросить
Спасибо, картинка начинает вырисовываться... Теперь вопросец: если стоят оба флажка, а директив нет, всё будет исполняться на сервере?
#19
by Vozhd
Если стоят оба флажка, а дериктив нет, тогда модуль скомпилируется и на сервере и на клиенте. Допустим на клиенте вызывается какая-то функция их этого модуля. Тогда платформа первым делом ищет эту функцию в скомпилированном на клиенте модуле, если функция найдена, то ей передается управление. Если же на клиенте функция не найдена, то она ищется на сервере, и если она найдена там, то управление передается туда. Если же не нашли функцию нигде, тогда будет ошибка. Все процедуры встроенного языка вызываются как следствие каких-то событий. Все события инициируются пользователем, т.е. всегда на клиенте (кроме редких случаев, типа внешнего соединения). Чтобы передать управление на сервер, необходимо с клиента вызвать функцию, которая скомпилирована для сервера и не скомпилирована для клиента. Такого поведения можно добиться либо снятием флажка "Клиент" у общего модуля, либо директивами препроцессора, которые "вырежут" кусок кода при компиляции на клиенте. Когда код выполняется на сервере, то процедуры, определенные на клиенте, не доступны. Т.е. переход "точки выполнения" может происходить только в одну сторону: от клиента к серверу.
#21
by Хочу спросить
Ещё несколько вопросов. А что произойдёт, если флажки "Клиент" и "Сервер" у общего модуля оба НЕ установлены? И ещё по поводу флажков: в верно сказано, или нет? То есть: если, к примеру, флажок "Сервер" НЕ установлен, то директива "#Если Сервер..." просто игнорируется? В "штатной документации" кстати, именно про флажки - маловато...
#22
by Vozhd
Директивы всегда отрабатываются, вопрос лишь в том, определены ли символы "Сервер" и "Клиент". Если флажки "Клиент" и "Сервер" не установлены, то я бы предположил, что данный модуль не будет компилироваться на клиенте и на сервере. А чего еще про флажки писать то? Флажок установлен - модуль компилируется, не установлен - не компилируется.
#23
by Хочу спросить
В бухгалтерии 1.5.2.3 нет общих модулей, у которых не стояли бы оба флажка ("Клиент" и "Сервер"). Тогда остаётся предположить, что если оба флажка не стоят, модуль будет вообще нерабочим (ну или только для внешнего соединения, опять-таки, если такой флажок стоит). И насчёт "директивы всегда отрабатываются": если флажок "Сервер" снят, то директива "#Если Клиент...", имхо, лишена смысла, т.к. служит лишь для исключения чего-то при компиляции на сервере, а компиляции на сервере в этом случае не будет.
#24
by Хочу спросить
Кстати, про документацию: в описании языка про флажки по-моему вообще ничего нет (там только про инструкции препроцессора), а в описании конфигуратора в рассуждениях про флажки слово "компиляция" не употребляется. Так что в целом довольно мутненько... "Флажок установлен - модуль компилируется, не установлен - не компилируется" - вот этого в документации похоже вообще нет. Кстати, на ИТС статей про все эти дела я тоже не нашёл, так что форум рулит.
#25
by ValeriTim
А вот у меня недопонятки ... в типовых действительно на общих модулях стоят две галки. Тогда возникает вопрос зачем ? Если модуль компилируется и на клиенте и на сервере и первым делом ищется на клиенте, тогда нахождение модуля насервере бессмысленно, если конечно туда принудительно не передается управление, но принудительной передачи управления я незамечал. Что нетак ?
#26
by Хочу спросить
На самом деле в типовых на общих модулях не "стоят две галки", а везде по-разному. И директивы тоже попадаются.
#28
by ValeriTim
Ну, пусть даже так. Но зачем тогда при установленной галке "Сервер" давать возможность поставить галку "Клиент" ?
#29
by Vozhd
Когда клиент вызывает функцию сервера, то по сети проходят как минимум два пакета (вызов и результат), а это может быть много дольше, чем вызов этой же функции на клиенте.
#31
by Хочу спросить
Сейчас фтыкал документацию так, что крыша немного съехала :) Есть мнение, что если, к примеру, флажок "Сервер" не стоит, но использована инструкция #Если Сервер..., то код внутри этой инструкции всё же будет скомпилирован на сервере, что противоречит сказанному в - "Флажок установлен - модуль компилируется, не установлен - не компилируется". Если кому не сильно в лом, прошу проверить это...
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- 100% загрузка процессом wfica32 на клиенте
- Проведение документов - на сервере или клиенте?
- У пользователя недостаточно прав на исполнение операции над базой данных
- Получить форму в управляемом приложении в тонком клиенте или на сервере
- Где в СКД можно использовать функции общих модулей?
- УФ. Как сделать переменную доступной на клиенте и на сервере. Что бы не терялась
- Вызов функции как на клиенте так и на сервере
- Как на клиенте открыть форму нового документа, созданного на сервере
- как с процедуры выполняемой на сервере вызвать проц. на клиенте
- БГУ Кассовое исполнение
- Классификация общих модулей на Базовый, Внутренний, Расширенный...
- Разные форматы представления числа на клиенте и сервере
В этой группе 1С
- Не видно автора и фирму в общем журнале
- 1С7.7 ЗиК: НДФЛ по ставке 35% с мат. выгоды
- Кто нибудь пользовался DocFile Browser под FAR?
- Возможность выгрузки прав доступа (1С 7.7)
- v8: Отбор по родителю. подскажите
- v8. Как в УПП отключить контроль отрицательных остатков?
- Зависание 1С при выгрузке / загрузке данных
- Подключение сканера в 1С Рарус
- Програмно присвоить значение реквизиту формы
- Остатки на складах, остатки организаций
- У кого была проблема с клавишами Sleep, Wake, Power?
- Как исправить префиксы номеров документов в ТиС?
- v8. Ошибка - Невозможно подключиться к ключам защиты.
- Как отловить ошибку переполнения в DBF?
- Тормоза SQL - только для профи, остальным просьба не мешать
- Перенос бухгалтерских остатков с помощью конфигурации "Конвертация данных"
- V7.7 Регистры. Флаг "Быстрая обработка движений"
- Проверка изменений при закрытии документа
- Ссохранить размер колонтитула в параметрах таблицы
- Вопросы для тестирования работника отдела кадров