Имя: Пароль:
1C
1С v8
Инструкция препроцессора в модуле объекта
0 JUST4LOL
 
29.10.21
02:45
Добрый день. Есть инструкция препроцессора #Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
Правильно ли я понимаю, она нужна для того, чтобы исключить выполнение кода на клиенте?
Выполнится ли код, заключенный в эту конструкции, в тонком клиенте? Там ведь модуль объекта всегда НаСервере, а значит подходит первое условие.
Опять же, второе условие - ТолстыйКлиентОбычноеПриложение - там может быть и Клиент и Сервер. Непонятно, можете прояснить вопрос? Спасибо.
1 Полбатона
 
29.10.21
03:44
Для обеспечения работы конфигурации в толстом клиенте, управляемое приложение, клиент-сервер следует иметь в виду, что серверный код конфигурации в этом режиме может выполняться на стороне клиента.
Однако, как правило, серверный код конфигурации не рассчитан на работу в этом режиме (на клиенте).
Т.е. он по-просту не будет работать, например, из-за того, что используется установка прив. режима (явно или неявно, с помощью соотв. свойств объектов метаданных).
Поэтому предлагется обеспечивать работу на клиенте только отдельных фрагментов серверного кода:

    обработчики событий в модулях менеджеров (ОбработкаПолученияДанныхВыбора, ОбработкаПолученияФормы и др.)
    подписки на эти же события модулей менеджеров.

Весь же остальной серверный код конфигурации, который размещается в модуле сеанса, модулях объектов, модулях менеджеров и др. модулях объектов метаданных (кроме модулей форм, команд и общих модулей) рекомендуется заключать в инструкцию препроцессора:

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

#КонецЕсли

При этом для быстрой проверки работоспособности конфигурации в толстом клиенте, управляемое приложение, клиент-сервер можно воспользоваться штатной проверкой конфигурации.
2 Ёпрст
 
29.10.21
10:14
(0) не правильно понимаешь, есть еще вэбклиент и мобильноеприложение, исключают их
3 acht
 
29.10.21
10:39
(0) FYI - https://its.1c.ru/db/v8318doc#bookmark:dev:TI000000164

В различных вариантах использования определены различные наборы инструкций препроцессора. При описании того, какие инструкции препроцессора определены в различных вариантах работы, будем считать, что:
● Клиентская часть ‑ это приложение системы «1С:Предприятие», которое работает на компьютере пользователя.
● Серверная часть ‑ это приложение системы «1С:Предприятие», которое работает на компьютере, на котором работает кластер серверов системы «1С:Предприятие».
...

Далее приведен список определенных инструкций препроцессора в зависимости от используемого варианта работы и используемого способа доступа к информационной базе:
● Файловый вариант:
    ● Тонкий клиент:
        ● Клиентская часть: Клиент, НаКлиенте, ТонкийКлиент.
        ● Серверная часть: Сервер, НаСервере.
    ● Веб-клиент:
        ● Клиентская часть: Клиент, НаКлиенте, ВебКлиент.
        ● Серверная часть: Сервер, НаСервере.
    ● Внешнее соединение:
        ● Клиентская часть: недоступно.
        ● Серверная часть: Сервер, НаСервере, ВнешнееСоединение.
    ● Интернет-сервисы, фоновые и регламентные задания:
        ● Клиентская часть: недоступно.
        ● Серверная часть: Сервер, НаСервере.
    ● Толстый клиент в управляемом режиме:
        ● Клиентская часть: Сервер, НаСервере, Клиент, НаКлиенте, ТолстыйКлиентУправляемоеПриложение.
        ● Серверная часть: Сервер, НаСервере, Клиент, НаКлиенте, ТолстыйКлиентУправляемоеПриложение.
    ● Толстый клиент в обычном режиме:
        ● Клиентская часть: Сервер, НаСервере, Клиент, НаКлиенте, ТолстыйКлиентОбычноеПриложение.
        ● Серверная часть: Сервер, НаСервере, Клиент, НаКлиенте, ТолстыйКлиентОбычноеПриложение.
● Клиент-серверный вариант:
    ● Тонкий клиент:
        ● Клиентская часть: Клиент, НаКлиенте, ТонкийКлиент.
        ● Серверная часть: Сервер, НаСервере.
    ● Веб-клиент:
        ● Клиентская часть: Клиент, НаКлиенте, ВебКлиент.
        ● Серверная часть: Сервер, НаСервере.
    ● Мобильный клиент:
        ● Клиентская часть: Клиент, НаКлиенте, МобильныйКлиент.
        ● Серверная часть: Сервер, НаСервере.
    ● Мобильный клиент с автономным режимом:
        ● Клиентская часть: Клиент, НаКлиенте, МобильныйКлиент.
        ● Серверная часть: Сервер, НаСервере.
        ● Серверная часть на мобильном устройстве: Сервер, НаСервере, МобильныйАвтономныйСервер.
    ● Внешнее соединение:
        ● Клиентская часть: недоступно.
        ● Серверная часть: ВнешнееСоединение.
    ● Интернет-сервисы, фоновые и регламентные задания:
        ● Клиентская часть: недоступно.
        ● Серверная часть: Сервер, НаСервере.
    ● Толстый клиент в управляемом режиме:
        ● Клиентская часть: Клиент, НаКлиенте, ТолстыйКлиентУправляемоеПриложение.
        ● Серверная часть: Сервер, НаСервере.
    ● Толстый клиент в обычном режиме:
        ● Клиентская часть: Клиент, НаКлиенте, ТолстыйКлиентОбычноеПриложение.
        ● Серверная часть: Сервер, НаСервере.
    ● Мобильная платформа:
        ● Клиентская часть: Клиент, НаКлиенте, МобильноеПриложениеКлиент.
        ● Серверная часть: Сервер, НаСервере, МобильноеПриложениеСервер.
4 acht
 
29.10.21
10:40
(0) >  в тонком клиенте? Там ведь модуль объекта всегда НаСервере
Нет.
5 acht
 
29.10.21
10:41
Когда будешь книжку по платформе издавать - не забудь нас как авторов упомянуть.
6 acht
 
29.10.21
10:43
В (4) кусок недоцитировал. "Нет" - относится к "а значит подходит первое условие."
7 fisher
 
29.10.21
11:10
(0) В (1) правильный ответ, по-ходу. Таким макаром отсекают ТолстыйКлиентУправляемоеПриложение.
8 fisher
 
29.10.21
11:13
Хотя почему было не написать простое и ясное #Если НЕ ТолстыйКлиентУправляемоеПриложение - я не очень понимаю.
9 fisher
 
29.10.21
11:17
Может просто эта аннотация не сразу появилась. Лень искать.
10 JUST4LOL
 
01.11.21
05:08
Всем спасибо
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.