Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1C_ПрикладноеПрограммирование8.doc
Скачиваний:
45
Добавлен:
22.09.2019
Размер:
51.67 Mб
Скачать

1.5.2.1 Сервер 1с:Предприятия

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

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

  • Чтение и сохранение конфигураций и настроек пользователя;

  • Операции над базой данных, включая ограничения доступа к данным;

  • Хранение значений параметров сеанса;

  • Ведение журнала регистрации;

  • Поддержка оперативной отметки времени;

  • Другие функции (управление объектными блокировками, идентификаторы и т.п.) .

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

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

1.5.2.2 Безопасная зона

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

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

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

Рис. 5 Безопасная зона

Однако следует понимать, что вопрос безопасности данных не может на 100% быть решен самой системой. Существует два момента, в которых нельзя исключить влияние «человеческого фактора». Если этим моментам не уделять должного внимания, то существование безопасной зоны может быть нарушено. Первый момент связан с существованием привилегированных модулей, а второй – собственно с администрированием прикладного решения.

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

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