1с определить тип клиента программно

Обновлено: 07.07.2024

Поддержка толстого клиента, управляемое приложение, клиент-сервер

Область применения: управляемое приложение, обычное приложение.

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

2. При этом разработка конфигураций, рассчитанных на режим управляемого приложения, как правило, ведется исходя из того, что в клиент-серверной архитектуре код следующих модулей компилируется и выполняется только на сервере

  • модуль менеджера;
  • модуль объекта;
  • модуль сеанса.

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

Однако в толстом клиенте, в режиме управляемого приложения, клиент-сервер, возможны ситуации, когда указанные модули могут начать компилироваться и выполняться на стороне клиента, в частности:

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

Компиляция и выполнение таких модулей на клиенте могут приводить к ошибкам. По этой причине режим проверки конфигурации для режима толстый клиент, управляемое приложение, может находить ошибки в указанных модулях.

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

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

Методическая рекомендация (полезный совет)

3. В тех случаях, когда требуется снять указанное выше ограничение, необходимо дополнительно обеспечить работу на клиенте следующих фрагментов серверного кода:

  • обработчиков событий модулей менеджеров ОбработкаПолученияПредставления и ОбработкаПолученияПолейПредставления
  • а также код подписок на эти события модулей менеджеров.

Для этого код перечисленных обработчиков событий следует вынести за инструкции препроцессора, указанные в п.2, а обработчики подписок разместить в клиент-серверных модулях.

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

Важно: не следует для этих целей всем общим модулям с признаком Сервер принудительно устанавливать флажок Вызов сервера . Подробнее см. Ограничение на установку признака «Вызов сервера» у общих модулей.

Например, обработчик события ОбработкаПолученияПредставления вызывает общий модуль, который не доступен на клиенте:

Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)

Взаимодействия.ОбработкаПолученияПредставления(Данные, Представление);
СтандартнаяОбработка = Ложь;

правильно выполнить переход на сервер (и при этом не передавать на клиент значения мутабельных типов):

Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)

ВзаимодействияВызовСервера.ОбработкаПолученияПредставления(Данные, Представление);
СтандартнаяОбработка = Ложь;

4. Для расстановки фрагментов кода с инструкциями препроцессора можно воспользоваться приложенной обработкой.

Разберем методы, при помощи которых, в 1С 8.3 можно определить тип значения переменной (или реквизита какого-нибудь объекта). Причем, эти методы могут работать со всеми типами: примитивными, объектными и коллекциями значений.

Для работы с типами, в платформе 1С имеется специальный тип, который так и называется Тип. Этот тип необходим для идентификации типов значений различных данных. Значения типа Тип возвращают только две функции Тип и ТипЗнч.

Функция ТипЗнч в 1С

Разберем функцию ТипЗнч. Эта функция принимает в качестве параметра любое значение и возвращает тип этого значения.

Рассмотрим пример: будем использовать в качестве параметра этой функции число, таблицу значений и объект какого-нибудь справочника.

Посмотрим в отладке, что вернет этот метод.

Функция ТипЗнч в 1С

Как видите, все значения, которые вернул метод ТипЗнч имеют тип Тип. Но, сами по себе знания о том, какой тип у того или иного значения нам ни чего не дают. Разве что можно сравнить одинаковы ли типы у двух разных значений. Эти знания применимы только тогда, когда можно точно определить какого типа наше значение. Делается это при помощи функции Тип.

Функция Тип в 1С

Функция тип имеет один параметр имя получаемого типа в строковом представлении, возвращает тип Тип.

Переделаем предыдущий пример: будем получать типы значений, используя функцию Тип.

В переменных будут те же значения, что и в прошлый раз.

Функция Тип в 1С

Чтобы быстро получить название какого-то типа, достаточно «задержаться» в написании после первой кавычки, или нажать комбинацию клавиш Ctrl+Пробел.

Функция Тип в 1С

Появится выпадающий список всех названий типов, где набирая первые символы названия можно быстро найти нужный тип.

Функция Тип в 1С

Обе функции Тип и ТипЗНЧ возвращают значения одного типа – Тип. Но, если в случае функции ТипЗнч мы не можем точно знать, что вернет эта функция (поскольку, иногда, возникают ситуации, когда точно не известно какого тип та или иная переменная), то при работе с функцией Тип, мы точно знаем, какое значение вернет эта функция, поскольку сами указали строковое представление типа в параметре.

Как проверить тип значения

Для того, чтобы проверить какой тип значения у той или иной переменой, достаточно использовать обе этих функции (Тип и ТипЗнч) вместе: сравнивая, что возвращает функция ТипЗнч, в параметре которой указано какое-либо значение, с функцией Тип, в параметре которой мы указали конкретный тип.

Рассмотрим пример: будем заполнять массив значениями разных типов, потом при помощи генератора случайных чисел выберем нужный элемент массива, и определим какого типа этот элемент массива. В этот массив поместим число, дату, строку и какой-нибудь список значений.

В этом коде я использовал условие, где обрабатывал сравнение значений, которые возвращают функции Тип и ТипЗнч.

Проверить тип значения в 1С

Статьи о примитивных типах в 1С:

Программировать в 1С за 11 шагов

  1. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  2. Научитесь понимать архитектуру 1С;
  3. Станете писать код на языке 1С;
  4. Освоите основные приемы программирования;
  5. Закрепите полученные знания при помощи задачника.

Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

Основы разработки в 1С такси

  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog


Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму
.

можно оплатить вручную:


При создании определяемого типа нужно указать его имя и тип. Можно указать составной тип данных:

Определяемый тип

Для выбора доступно множество различных типов, в том числе примитивные типы, ссылки, объекты, менеджеры, системные перечисления, некоторые универсальные коллекции и т.п.

Теперь данный определяемый тип можно указывать как тип для реквизитов объектов:

Определяемый тип

Если в дальнейшем нужно будет изменить тип реквизита Ответственный, то достаточно будет добавить новый тип в состав определяемого типа. Тип реквизитов, где был выбран определяемый тип будет изменен автоматически.

Также через определяемый тип можно определять квалификаторы примитивных типов. Например, создать определяемый тип Артикул типа строка и указать для него длину 30.

Определяемый тип

Если в качестве типа для реквизитов выбирать данный определяемый тип, то гарантируется, что длина везде будет 30 символов.

У определяемого типа есть некоторые ограничения:

  • его нельзя использовать как тип значения в плане видов характеристик
  • он не может входить в составной тип данных
  • не может входить в состав другого определяемого типа
  • доступен только начиная с версии платформы 8.3.3

Определяемый тип программно

Чтобы программно указать тип свойства как определяемый тип можно просто создать Описание типов и перечислить все те типы, которые указаны для определяемого типа. Но можно получить готовое описание типов через метаданные:

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


Рис. 1.1.1. Стартер 1С

По большому счету это и есть два основных вида клиентских приложений.

После выхода платформы 8.2, «1С: Предприятие» в режиме пользовательского приложения может работать в тонком и толстом клиенте, а также появился web-клиент, который позволяет работать с «1С: Предприятием» из web-браузера.

Итого, на данный момент существует четыре вида клиентских приложений:

  • «Тонкий клиент»
  • «Толстый клиент»
  • Web-клиент

Почему появилась необходимость разделения обычного клиентского приложения на три вида: «тонкий», «толстый» и web-клиент? Виной этому развитие технологий вообще и интернета в частности. Очень часто стала появляться необходимость в работе с «1С: Предприятием» через сеть интернет, и это стало накладывать определенные ограничения, поскольку пропускная способность сети интернет гораздо уже, чем обычной локальной сети. Поэтому те технологии платформы, которые существовали при редакциях 8.0 и 8.1, стали неприменимы в новых реалиях. Как следствие, была разработана платформа 8.2, в которой обычное приложение разделилось на три вида: «толстый», «тонкий» и web-клиент.

Разберем все виды клиентов подробнее.

«Тонкий клиент»

Этот вид клиентского приложения поставляется в виде отдельного дистрибутива, который так и называется «Тонкий клиент 1С:Предприятия для Windows», скачивается с сайта 1С (при наличии ИТС-подписки) и устанавливается на локальной машине. Исполняемый файл в операционной системе Windows называется 1Cv8с.exe.

Разберем работу «тонкого клиента» по разными протоколами. Первым делом, начнем с привычного нам TCP/IP (кто не знает, это самый распространенный протокол работы локальной сети Ethernet). Возможны два варианта работы с тонким клиентом по сети Ethernet: клиент-серверный вариант и работа с файловой базой.

Рассмотрим оба этих варианта работы «1С: Предприятия»:

Файловый вариант применим, когда работает один или несколько пользователей в рамках небольшой сети, а также в том случае, когда не используются большие объемы данных или громоздкие вычисления. В этом варианте работы все данные расположены в одном файле 1Cv8.1CD, который так и называется – файловая база данных «1С: Предприятия». Схематически работу файлового варианта можно представить так:


Рис. 1.1.2 Схематичное представление работы файлового варианта


Рис. 1.1.3 Схематичное представление работы клиент-серверного варианта

Вернемся к «тонкому клиенту». Как было выше сказано, это клиентское приложение посредством протокола TCP/IP может работать как c вариантом файловой базы, так и с вариантом клиент-серверной архитектуры.

При файловом варианте работы (рис. 1.1.4) «тонкий клиент» взаимодействует непосредственно с файловой базой данных. При этом на стороне «тонкого клиента» организуется специализированная серверная среда, которая, по сути, эмулирует работу сервера. Эта специализированная серверная среда не выделяется отдельным процессом в операционной системе, а входит в процесс «тонкого клиента». Она берет на себя загрузку прикладной конфигурации и прочие серверные действия, необходимые для нормального функционирования «тонкого клиента».

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

Почему же нужно применять «тонкий клиент» при работе по локальной сети, когда для этого можно работать под «толстым клиентом»? Не всегда в локальной сети предприятия используются хорошие быстрые машины, способные на себя брать какие-то вычисления. Очень часто это могут быть «убитые в хлам» компьютеры, и в данном случае работа под «тонким клиентом» вполне оправдана. При работе в «тонком клиенте» по локальной сети проходят меньшие объемы данных, все вычисления ведутся на сервере, а не на локальной машине, и поэтому устанавливаются более низкие требования к производительности компьютеров, на которых запущен этот вид клиентского приложения (в том случае, когда используется клиент-серверный вариант работы базы).

Теперь перейдем к работе с «тонким клиентом» через сеть Internet. Работа с этим видом клиентского приложения посредством сети Internet возможна как в файловом варианте, так и в клиент-серверном варианте.

В этой книге мы не будем подробно разбирать механизмы настройки «тонкого клиента» и web-клиента для работы через интернет, а коснемся только общих моментов, для того чтобы Вам был понятен принцип действия.

И последняя важная особенность «тонкого клиента»: под ним у Вас нет возможности работать с конфигуратором. Когда Вы запустите «тонкий клиент», то кнопка «конфигуратор» в стартере 1С будет отсутствовать (см. рис 1.1.8). В принципе, это логично: нет смысла давать доступа к «тяжелому» конфигуратору, когда у Вас ограничены ресурсы сети.


Рис. 1.1.8. Вид окна запуска «тонкого клиента»

Web-клиент

Следующий интересный вид клиента, который мы разберем, это web-клиент. Этот вид клиентского приложения необходим для работы только по сети Internet. Причем, если для работы «тонкого клиента» на локальной машине необходимо было устанавливать программное обеспечение, то для работы под web-клиентом этого делать не нужно. Вся работа с данным клиентом может осуществляться посредством интернет-браузера (Mozilla, Opera, Internet Explorer и др.). Это очень удобный вид «тонкого клиента»: любой пользователь, в любой точке мира с любого устройства может запустить интернет-браузер, ввести адрес web-сервера, где опубликована база, и получить доступ к этой самой базе. Нет необходимости ни в скачивании, ни в установке какого-либо программного обеспечения.

Web-клиент может работать как с обычной файловой базой, так и с клиент-серверной архитектурой. Единственно, что в обоих случаях, как и в случае работы «тонкого клиента» посредством сети Internet, необходимо на стороне сервера установить специальное программное обеспечение – web-сервер (как правило, это Apache или IIS).

Принципы работы web-клиента в случае файловой базы и клиент-серверной архитектуры представлены на рис. 1.1.9 и 1.1.10



Рис. 1.1.9. Схема работы web-клиента в файловом варианте Рис. 1.1.10. Схема работы web-клиента в клиент-серверном варианте

«Толстый клиент»

Одна из особенностей «толстого клиента» то, что он поддерживает работу в обычном режиме, т.е. под «толстым клиентом» Вы можете запускать приложения, разработанные под платформами 8.1 и 8.0. – обычные приложения. А также в управляемых приложениях запускать обычные формы, что естественно нельзя сделать в «тонком клиенте».

Про обычные и управляемые приложения мы подробно поговорим в следующей главе.

«Толстый клиент» устанавливается обычным дистрибутивом и в операционной системе Windows запускается исполняемым файлом 1Cv8.exe.

Поскольку для работы с «толстым клиентом» необходимы значительные вычислительные мощности, то связываться с базой данных можно или напрямую, или посредством локальной сети Ethernet. Этот вид клиентского приложения может работать как с файловой базой данных, так и с клиент-серверной архитектурой (по протоколу TCP/IP).

В том случае, когда используется клиент-серверный вариант работы «толстого клиента» (рис. 1.1.13), то «толстый клиент» по локальной сети подключается к кластеру серверов «1С:Предприятия», а кластер серверов взаимодействует с SQL-сервером (СУБД). Причем кластер серверов и СУБД могут находиться на разных компьютерах, администратор имеет возможность их разнести, чтобы оптимизировать производительность серверов.


Рис. 1.1.11 Окно запуска «толстого клиента»



Рис. 1.1.12. Схема работы «толстого клиента» в файловом варианте Рис. 1.1.13. Схема работы «толстого клиента» в клиент-серверном варианте

И в заключение приведем таблицу, которая наглядно дает понять, чем отличаются эти три вида клиентских приложений: «толстый клиент», «тонкий клиент» и web-клиент.

Табл. 1.1.1 Отличия различных клиентских приложений.

Уникальная авторская методика!

Эта книга подойдёт тем, кто уже начал программировать и испытывает определенные сложности с этой темой и тем, кто уже давно программирует, но ни разу еще не работал с управляемыми формами 1С

  1. Без сложных технических терминов;
  2. Более 600 страниц практического материала;
  3. Каждый пример сопровождается рисунком (скриншот);
  4. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!

Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:

можно оплатить вручную:

Читайте также: