1с параметры сеанса язык

Использование параметров сеанса

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

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

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

Также они могут использоваться в текстах ограничений доступа, например:

ГДЕ Документ.Автор = &ТекущийПользователь

В последнем случае для получения значения параметра сеанса наличия у текущего пользователя соответствующего права не требуется.

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

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

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

Установка параметров сеанса «по требованию»

2.1. Не следует производить инициализацию параметров сеанса при запуске программы, так как:

Правильным способом установки значений параметров сеанса является установка значений «по требованию» в обработчике УстановкаПараметровСеанса модуля сеанса. Т.е. параметры сеанса должны быть инициализированы только в тот момент, когда к ним происходит первое обращение, как к неустановленным.

Пример установки параметров сеанса «по требованию»:

Если ИменаПараметровСеанса = Неопределено Тогда
// Раздел установки параметров сеанса при начале сеанса (ИменаПараметровСеанса = Неопределено)
// Выполняется установка параметров сеанса, которые можно инициализировать
// при начале работы системы

Иначе
// Установка параметров сеанса «по требованию»

// Параметры сеанса, инициализация которых требует обращения к одним и тем же данным
// следует инициализировать сразу группой. Для того, чтобы избежать их повторной инициализации,
// имена уже установленных параметров сеанса сохраняются в массиве УстановленныеПараметры
УстановленныеПараметры = Новый Массив;
Для Каждого ИмяПараметра Из ИменаПараметровСеанса Цикл
УстановитьЗначениеПараметраСеанса(ИмяПараметра, УстановленныеПараметры);
КонецЦикла;

Если ИмяПараметра = «ТекущийПользователь» Тогда
ПараметрыСеанса.ТекущийПользователь = ;
ПараметрыСеанса. = ;
УстановленныеПараметры.Добавить(ИмяПараметра);
УстановленныеПараметры.Добавить(» «);
КонецЕсли;

Источник

Про языки интерфейса в 1С

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

Виды языков 1С и для чего они используются

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

Несколько языков в одной программе

Разберем детально каждый из языков 1С и выясним как изменить тот или иной язык 1С

Язык разработки

Язык разработки (Вариант встроенного языка) – язык, используемый для написания исходного кода конфигурации.

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

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

Настройка: Язык разработки указывается в свойствах конфигурации в поле “Вариант встроенного языка”

Встроенный язык 1С

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

Менять данный язык после начала разработки нельзя. Никаких изменений в интерфейсе это не принесет, но может сделать неработоспособным написанный ранее код.

Язык интерфейса платформы

Язык интерфейса платформы – эта настройка определяет, на каком языке будут отображаться элементы интерфейса плафтормы и выдаваться сообщения.

В стандартный дистрибутив платформы входят следующие языки интерфейса платформы:

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

Определить текущий язык интерфейса платформы мы можем с помощью функции:

Настройка: Есть несколько способов установить язык платформы. Наиболее простой и наиболее часто используемый это указать язык платформы в целом для всех баз 1С на данном компьютере, прописав его в файле conf.cfg.

Способ 1. Эту настройку легче всего указать при установке платформы. Для этого достаточно на этапе “Язык интефейса по умолчанию” указать нужный язык.

Способ 2. Если платформа уже установлена, то можно перезапустить установку параметров. Для этого выбираем “Пуск”-“Панель управления”-“Программы и компоненты”. Находим нужную установку 1С и нажимаем “Изменить”

Способ 3. Еще можно напрямую прописать настройку в файл. Обычно он лежит по адресу “C:\Program Files (x86)\1cv8\conf\conf.cfg”. Открываем файл, добавляем строчку “SystemLanguage=RU”, сохраняем.

Способ 4. Если язык платформы не прописан, то используются настройки операционной системы по умолчанию. Для их изменения выбираем “Пуск”-“Панель управления”-“Язык и региональные стандарты”.

Читайте также:  Интересные выражения русского языка

Способ 5. При работе в веб-клиенте по умолчанию используется язык, установленный как “предпочитаемый язык” в браузере. Соответственно и менять его нужно в настройках браузера.

Все прошлые способы устанавливают язык платформы в целом для всех баз на компьютере пользователя. Рассмотрим указание языка для конкретного сеанса.

Способ 6. Если для разных баз нужно использовать разные языки интерфейса, то нужный код языка можно указать в строке запуска 1C после ключа /L.

Способ 7. Если при запуске информационной базы выполняется выбор базы через 1CEStart.exe. То параметрзапуска /L можно указать в окне “Редактирование информационной базы” в поле “Дополнительные параметры запуска”

Параметр запуска языка 1С

Способ 8. При запуске отладки из конфигуратора язык запуска можно указать в параметрах конфигуратора. “Сервис” – “Параметры” – “Запуск 1С:Предприятия” – “Дополнительные” – “Яык интерфейса системы”.

Способ 9. При работе в браузере язык, отличный от языка по умолчанию, можно указать суффиксом адресной строки вида “/en_US/”

Способ 10. На самом деле указание кода языка в строке запуска это самый надежный вариант. Он работает всегда. Если он не сработал, значит, нужный язык просто не установлен в платформе. Возвращаемся на этап установки платформы и выбираем нужный язык.

Язык конфигурации

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

Языки интерфейса конфигурации

Коды языков никак не связаны с кодами интерфейса платформы. Мы можем использовать любой удобный код языка. Язык интерфейса также никак не связан с настройками операционной системы. Он зависит только от разработчика конфигурации и администратора.

Определить текущий язык интерфейса платформы мы можем с помощью функции:

Есть всего два способа установки языка интерфейса:

Способ 1. Указать язык для конкретного пользователя в свойствах пользователя информационной базы.

Способ 2. Если у пользователя язык по умолчанию не указан, то будет использоваться язык, указанный в свойствах конфигурации в реквизите “Основной язык”.

Основной язык конфигурации

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

Способ 3: Выбрать в меню пункт “Конфигурация” – “Язык редактирования конфигурации”. Выбрать язык, со значениями которого мы хотим работать в ближайшее время.

Способ 4: Также язык можно переключить мышкой в строке статуса в правом нижнем углу окна конфигуратора.

Способ 5: Для множественного редактирования полезно использовать режим конфигуратора “Правка” – “Редактирование текстов интерфейсов”

Региональные настройки

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

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

Используемые базой региональные настройки можно определить с пощью функци:

Способ 1: При создании базы. На этапе “Добавление информационной базы” необходимо выбрать язык, который будт использоваться для хранения данных.

Региональные настройки языка ИБ

Способ 2. Из конфигуратора. В пункте меню Администрирование – Региональные установки ИБ. Для смены языка информационной базы обязательно использование монопольного режима.

Примечания: Если в качестве СУБД используется PostgreSQL, то для существующей информационной базы изменение языка (страны) не может быть выполнено произвольным образом. Установленное значение языка (страны) можно изменить только на такое, которое будет использовать тот же порядок сортировки строк (collation) СУБД, что и существующее значение. Например, русский (Россия) может быть изменен на белорусский (Беларусь), но не может быть изменен на украинский (Украина).
Если в качестве СУБД используется IBM DB2, то смена значения языка (страны) не поддерживается.

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

Способ 1: Установка общих настроек для всех сеансов. Для вызова режима нужно выбрать пункт Администрирование – Региональные установки ИБ и указать региональные параметры.

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

Способ 3. Если для разных баз нужно использовать разные региональные настройки, то нужный код языка можно указать в строке запуска 1C после ключа /VL.

Способ 4. Если при запуске информационной базы выполняется выбор базы через типовой стартер. То ключ запуска /VL можно указать в окне “Редактирование информационной базы” в поле “Дополнительные параметры запуска”

Читайте также:  Грамматика английский язык проверить

Региональные настройки сеанса

Способ 5. При запуске отладки из конфигуратора язык запуска можно указать в параметрах конфигуратора. “Сервис” – “Параметры” – “Запуск 1С:Предприятия” – “Дополнительные” – “Код локализации сеанса”.

В процессе работы региональные настройки текущего сеанса можно определить с помощью функции:

Источник

Программирование в 1С для всех

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

Для примера, создадим параметр сеанса, который назовем ИмяТекущегоКомпьютера., в этом параметре будем хранить имя текущего компьютера. Для этого нужно выделить ветку «Параметры сеанса» в группе «Общие» дерева метаданных, вызвать контекстное меню, и в контекстном меню выполнить команду «Добавить».

В правой части экрана откроется палитра свойств параметра сеанса, где следует указать название, синоним и тип (в моем случае это будет тип Строка).

На всякий случай, проверим, есть ли права у нужной роли на этот параметр сеанса. Посмотреть на роли параметра сеанса можно в окне «Дополнительно». Откроем его: выделим созданный параметр сеанса, вызовем контекстное меню и выполним команду «Дополнительно».

В окне «Дополнительно» интересует закладка «Права», в которой следует проверить флажки у прав Получение и Установка для нужной роли.

Получение ­– это право на получение значения параметра сеанса;

Установка – это право на установку значения параметра сеанса;

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

Модуль сеанса в 1С

Модуль сеанса необходим для установки значений параметров сеанса. Мы уже создали единственный параметр сеанса в конфигурации – «Имя текущего компьютера».

Научимся устанавливать значение в этот параметр сеанса при запуске сеанса пользователя. Делается это в модуле сеанса. Откроем его. Модуль сеанса открывается достаточно просто: выделяется самый верхний узел конфигурации, вызывается контекстное меню, в котором необходимо выполнить команду «Открыть модуль сеанса».

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

В открывшемся окне нужно выделить единственную процедуру и нажать на кнопку «Перейти».

Будет создана процедура «УстановкаПараметровСеанса»

В этой процедуре параметру сеанса ИмяТекущегоКомпьютера установим имя текущего компьютера.

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

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

Осталось проверить работу обработки.

Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»

Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»

Книга написана понятным и простым языком — для новичка.

О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»

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

Промо-код на скидку в 15% — 48PVXHeYu

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


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

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

Яндекс.Деньги — 410012882996301
Web Money — R955262494655

Источник

Параметры сеанса.

Что из себя представляют параметры сеанса.

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

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

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

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

Читайте также:  Знак помогите на языке жестов

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

Например, для того, чтобы пользователь имел право Итерактивное удаление помеченных, ему необходимо обладать интерактивными правом Редактирование. Это право, в свою очередь, требует наличия интерактивного права Просмотр.

Право Интерактивное удаление помеченных требует наличия основного права Удаление. Интерактивное право Редактирование требует наличия основного права Изменение. Интерактивное право Просмотр требует наличия основного права Чтение.

Кроме этого основные права Изменение и Удаление требуют наличия основного права Чтение.

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

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

При этом в самих запросах значение параметров сеанса не устанавливается. Система точно знает, что это параметр сеанса.

Посмотрим на типы данных, которые могут принимать параметры сеансов:

Среди доступных типов мы можем видеть не только стандартные типы (ссылочные типы, примитивные типы данных), но и такие типы как «Фиксированный массив», «Фиксированная структура», «Фиксированное соответствие».

Важно отметить, что «Модуль сеанса» всегда исполняется в привилегированном режиме, т.е. контроля прав в этом модуле не существует.

Вообще, касательно привелегированных модулей:

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

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

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

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

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

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

Поскольку параметры сеанса являются объектами конфигурации, мы можем выставить для них права доступа:

Для каждой роли мы можем указать возможность получения параметра сеанса и возможность установки. Таким образом для обычного пользователя мы можем указать, что он может параметры сеанса получать, т.е. обращаться к нему, но поменять значение параметра сеанса он не сможет. Это очень важный момент, поскольку при ограничении прав доступа на уровне записей мы позволяем себе опираться на значения которые содержатся в параметрах сеанса. И если вдруг пользователь смог бы превысить свои полномочия, т.е. переустановит параметры сеанса (в нашем случае добавить еще один регион), он мог бы увидеть те документы, которые не должен.

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

Мы рассмотрели объект параметры сеанса и может возникнуть такой соблазн, использовать параметры сеанса как глобальные переменные. Действительно ведь у нас, те переменные, которые объявляются в модуле управляемого приложения доступны только на «клиенте», а как таковых серверных глобальных переменны у нас нет. А параметры сеанса как раз доступны на «сервере».

Например, при создании документа, неплохо было бы знать его автора. Создаем новый параметр и задаем ему имя «ТекущийПользователь»:

Заполняем свойства параметра:

Теперь нам необходимо задать параметру имя текущего пользователя. Открываем модуль сеанса:

Источник

Поделиться с друзьями
Расскажем обо всем понемногу
Adblock
detector