Скачиваний:
1
Добавлен:
26.09.2025
Размер:
3.66 Mб
Скачать

Рис. 3.23. Выбор основной роли

Модули.

Модуль управляемого (или обычного) приложения — модуль, в котором описываются глобальные переменные конфигурации и глобальные обработчики конфигурации — ПередНачаломРаботыСистемы, ПриНачалеРаботыСистемы, ПередЗавершениемРаботыСистемы, ПриЗавершенииРаботыСистемы, ОбработкаВнешнегоСобытия.

Модуль сеанса — обработчик, отрабатывающий при старте системы, в котором принято инициализировать параметры сеанса.

Модуль внешнего соединения — модуль, доступный при внешнем соединении, содержит в себе обработчики — ПриЗавершенииРаботыСистемы, ПриНачалеРаботыСистемы.

Вдальнейшем вами будет изучен подробнее «Модуль приложения».

b)Представление.

Рассмотрим второй раздел палитры свойств конфигурации «Предсталвение».

Рис. 3.24. Палитра свойств конфигурации «Представление»

Рассмотрим пункт данного раздела – «Режим основного окна клиентского приложения.

Возможные режимы

Возможных режимов работы получилось четыре. Обычный – для работы как раньше, и три новых режима: РабочееМесто, ПолноэкранноеРабочееМесто и Киоск.

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

В режиме РабочееМесто скрываются все панели и область системных команд (главное меню и набор вспомогательных команд). Скрывается надпись «Начальная страница», кнопки навигации «Вперед/Назад», а также отключются сочетания клавиш, которые используются в этих скрытых элементах интерфейса

(рис.3.25).

Рис.3.25. Режим основного окна клиентского приложения – «Рабочее место»

Режим ПолноэкранноеРабочееМесто скрывается всё то же самое, что и при режиме РабочееМесто, но дополнительно к этому основное окно будет разворачиваться на весь экран, и будут скрываться кнопки управления окном (Свернуть, Восстановить, Закрыть) рис.3.26.

Рис. 3.26. Режим основного окна клиентского приложения – «ПолноэкранноеРабочееМесто»

В режиме Киоск дополнительно ко всему перечисленному будут скрыты гиперссылка с именем пользователя и кнопка О программе. Этот режим мы

позиционируем для «внешних» пользователей, поэтому персональная информация тут не используется и не нужна (рис.3.27).

Рис.3.27. Режим основного окна клиентского приложения – «Киоск» Основной язык — язык интерфейса по умолчанию.

Самостоятельно проанализируйте и изучите следующие пункты: Краткая информация, Подробная информация, Логотип, Заставка, Авторские права — информационные поля свойств для сведений о конфигурации. Адрес информации о поставщике и конфигурации — свойства, где необходимо указать информацию о разработчике и страничку о данном решении.

c)Совместимость.

Режим управления блокировкой данных

Конфигурация имеет свойство Режим управления блокировкой данных. Каждый прикладной объект конфигурации также имеет свойство Режим управления блокировкой данных/

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

конфигурации будет использован тот режим, который указан в его свойстве Режим управления блокировкой данных: Автоматический или Управляемый.

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

Если же, например, операция записи объекта выполняется в транзакции, инициированной разработчиком (метод НачатьТранзакцию()), то режим управления блокировкой данных будет определяться значением параметра РежимБлокировок метода НачатьТранзакцию(), а не значением свойства объекта метаданных Режим управления блокировкой данных.

По умолчанию параметр РежимБлокировок имеет значение РежимУправленияБлокировкойДанных.Автоматический, поэтому для того, чтобы в явной транзакции использовать режим управляемых блокировок, следует указывать значение этого параметра РежимУправленияБлокировкойДанных.Управляемый.

Блокировка данных — обязательный элемент любой системы, количество пользователей в которой больше одного.

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

— это неизбежная мера в многопользовательской системе для разделения ресурсов.

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

Типы блокировок

Блокировки в 1С делятся условно на объектные и транзакционные.

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

1. Объектные блокировки 1С

Данный вид блокировок полностью реализован на уровне платформы 1С и никак не затрагивает СУБД.

- Пессимистические блокировки

Эта блокировка срабатывает, когда один пользователь что-то изменил в форме справочника, а второй пытается так же изменить объект в форме.

- Оптимистические блокировки

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

2. Транзакционные блокировки 1С

Механизм тразакционных блокировок 1С гораздо интереснее и более функционален, чем механизм объектных блокировок. В этом механизме активно участвуют блокировки на уровне СУБД.

Неверная работа транзакционных блокировок может привести с следующим проблемам:

-проблема потерянного изменения;

-проблема грязного чтения;

-неповторяемость чтения;

-чтение фантомов.

Автоматические транзакционные блокировки 1С и СУБД

В автоматическом режиме работы за блокировки целиком и полностью отвечает СУБД. Разработчик в данном случае абсолютно не участвует в процессе. Это облегчает труд программиста 1С, однако создание информационной системы для большого количества пользователей на автоматических блокировках нежелательно (особенно для СУБД PostgreSQL, Oracle BD — при модификации данных они полностью блокируют таблицу).

Для разных СУБД в автоматическом режиме используются разные степени изоляции:

- SERIALIZABLE на всю таблицу – файловый режим 1С, PostgreSQL, Oracle;

-SERIALIZABLE на записи – MS SQL, IBM DB2 при работе с не объектными сущностями;

-REPEATABLE READ на записи – MS SQL, IBM DB2 при работе с объектными сущностями.

Управляемые режим транзакционных блокировок 1С и СУБД

В режиме управляемых блокировок всю ответственность на себя берет разработчик прикладного решения на уровне 1С. При этом СУБД устанавливает достаточно высокий уровень изоляции для транзакций — READ COMMITED (SERIALIZABLE для файловой СУБД).

При выполнении любой операции с БД менеджер блокировок 1С анализирует возможность блокировки (захвата) ресурса. Блокировки одного и того же пользователя всегда совместимы.

Две блокировки НЕ совместимы, если: установлены разными пользователями, имеют несовместимые виды (исключительная/разделяемая) и установлены на один и тот же ресурс.

Физическая реализация блокировок в СУБД

Физически блокировки представляют собой таблицу, которая находится в БД под названием master. Сама таблица блокировок носит имя syslockinfo.

Таблица условно имеет четыре поля:

-ИД блокирующей сессии SPID;

-что именно заблокировано RES ID;

-тип блокировки — S,U или X MODE (на самом деле в MS SQL их 22 типа, однако в связки с 1С используется только три);

-состояние блокировки — может принимать значение GRANT (установлена)

иWAIT (ожидает своей очереди).

Для завершения транзакции на уровне SQL можно использовать команду KILL с указанием идентификатора сессии:

KILL SPID

Таблица совместимости разных типов блокировок

Где:

S — разделяемая блокировка (чтения);

U — блокировка обновления (установленная в запросе конструкцией «ДЛЯ ИЗМЕНЕНИЯ»);

X — исключительная (эксклюзивная) блокировка (на запись).

Режим автонумерации объектов

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

Значение данного свойства ОсвобождатьАвтоматически используется для обеспечения режима работы нумерации, аналогичного версии «1С:Предприятие 8.0». Полученные автоматически номера и коды будут в дальнейшем использоваться, если объект, для которого они получены, не записан.

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

Если номер объекта (документа, элемента справочника, плана видов характеристик, бизнес-процесса или задачи) выделялся в транзакции, то он будет повторно использоваться даже в том случае, если установлен режим автонумерации НеОсвобождатьАвтоматически, в том числе в ситуации, когда объект в транзакции не записывался.

Режим автонумерации НеОсвобождатьАвтоматически действует только на номера, которые выданы вне транзакции. Т.е. если номер выдан вне транзакции и код не был использован (объект не был записан), то в режиме НеОсвобождатьАвтоматическиномер не будет переиспользован, а в режим ОсвобождатьАвтоматически номер будет переиспользован.

Режим использования модальности

Режим использования модальности указывает, можно в прикладном решении использовать методы, приводящие к открытию модальных окон или нельзя. Если свойство имеет значение Использовать модальные окна можно использовать без ограничений. Если свойство имеет значение Не использовать модальные окно нельзя использовать в данном прикладном решении. При попытке использования методов будет диагностироваться ошибка (в том числе и при синтаксическом контроле текста на встроенном языке). Вместо модальных окон следует использовать блокирующие окна (см. здесь). Если свойство имеет значение Использовать с предупреждением, то при использовании модальных окон ошибки диагностироваться не будут, но в окно сообщений будет выводиться сообщение о том, что использование модальных окон в данном режиме запрещено. При работе в таком режиме также следует заменить модальные окна блокирующие.

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

Если «1С:Предприятие» запускается из конфигуратора (см. здесь), то параметр командной строки запуска /EnableCheckModalустанавливается принудительно, без возможности настройки такого поведения.

Режим использования синхронных вызовов расширений платформы и внешних компонент

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

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

При работе веб-клиента, под управлением веб-браузеров Google Chrome или Mozilla Firefox, реализовано следующее поведение:

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

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

Необходимо помнить, что поддержка синхронных вызовов в веб-браузере Google Chrome по умолчанию отключена в версии 42 (апрель 2015 года), а полностью удалена в версии 45 (сентябрь 2015 года). Веб-браузер Mozilla Firefox не поддерживает синхронные вызовы в веб-браузере начиная с версии 43 (декабрь

2015 года).

При этом описанное поведение будет наблюдаться только в том случае, если используется параметр /EnableCheckExtensionsAndAddInsSyncCalls командной строки запуска клиентского приложения.

Если «1С:Предприятие» запускается из конфигуратора (см. здесь), то параметр командной строки запуска /EnableCheckExtensionsAndAddInsSyncCalls

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