Глобальный контекст.НомерСеансаИнформационнойБазы

Методы · InfoBaseSessionNumber

Получает номер текущего сеанса информационной базы.

Синтаксис

НомерСеансаИнформационнойБазы()
Полное описание, параметры и ограничения

Глобальный контекст.НомерСеансаИнформационнойБазы (Global context.InfoBaseSessionNumber)

Глобальный контекст (Global context)

НомерСеансаИнформационнойБазы (InfoBaseSessionNumber)

Доступен, начиная с версии 8.2.

Синтаксис:
НомерСеансаИнформационнойБазы()
Возвращаемое значение:
Тип: Число.

Описание:

Получает номер текущего сеанса информационной базы.

Доступность:

Сервер, толстый клиент, внешнее соединение.

См. также:
СеансИнформационнойБазы, свойство НомерСеанса

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

Доступен, начиная с версии 8.2.

Методическая информация

Практические примеры

Отправить уведомление только текущему сеансу

Сервер вычисляет 50 + 75 и отправляет результат по собственному ключу, явно ограничивая адресатов текущим сеансом.

Где и как запускать

Клиент вызывает свою процедуру; ОтправитьУведомление исполняется на обычном сервере 1С.

Подготовка

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

  2. Обычная клиент-серверная база с настроенным сервисом уведомлений. Сначала подключите обработчик learning.sum из соседнего примера, затем выполните свою кнопку расчета.

&НаКлиенте
Процедура ЗапроситьУчебныйРасчет()
    ОтправитьРасчетТекущемуСеансу();
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ОтправитьРасчетТекущемуСеансу()
    Адресаты = Новый Массив;
    Адресаты.Добавить(НомерСеансаИнформационнойБазы());
    Сумма = 50 + 75;
    УведомленияКлиента.ОтправитьУведомление("learning.sum", Сумма, Адресаты);
КонецПроцедуры

Разбор по шагам

  1. Получите на сервере номер своего сеанса.

  2. Поместите его в массив адресатов.

  3. Отправьте вычисленный результат по тому же ключу.

Как проверить результат

  1. Полученный обработчиком результат равен вычисленным 125.

  2. Третий аргумент не опущен: отправка не адресуется всем сеансам.

Ожидаемый результат

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

На что обратить внимание

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

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

Отличить свой клиентский компьютер, сервер, сеанс и соединение

Одинаковая функция ИмяКомпьютера выполняется в двух разных контекстах. Номер сеанса и номер соединения тоже не следует считать одним идентификатором.

Где и как запускать

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

Подготовка

  1. Работайте только в отдельной собственной конфигурации УчебнаяКонфигурацияСинтаксиса. Диагностику рабочих серверов и копирование реальных идентификаторов в общий учебник эти уроки не предусматривают.

  2. Для первого урока вставьте полный модуль в свою управляемую форму и создайте команду ПроверитьСреду с одноимённым обработчиком. Для остальных создайте серверный общий модуль УчебнаяДиагностика, вставьте полный модуль урока и вызовите ВыполнитьПример из серверного обработчика команды.

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

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

  5. Фактические значения зависят от файловой или клиент-серверной базы, текущего режима и прав. Код проверяет типы и явно подписывает наблюдения, не обещает фиксированные номера или имена.

  6. Проверки BSL-модулей в реальном запущенном клиенте 1С не проводились автоматически. Статическая сверка со справкой не подтверждает состояние вашей базы.

&НаКлиенте
Процедура ПроверитьСреду(Команда)
    Снимок = ПрочитатьСвойСерверныйСнимок();
    КлиентскийКомпьютер = ИмяКомпьютера();
    Сообщить(ТипЗнч(КлиентскийКомпьютер) = Тип("Строка"));
    Сообщить(ТипЗнч(Снимок.КомпьютерСервера) = Тип("Строка"));
    Сообщить(ТипЗнч(Снимок.НомерСеанса) = Тип("Число"));
    Сообщить(ТипЗнч(Снимок.НомерСоединения) = Тип("Число"));
    Сообщить(ТипЗнч(Снимок.ПолноеИмя) = Тип("Строка"));
    Сообщить("Клиентский компьютер своей базы: " + КлиентскийКомпьютер);
    Сообщить("Серверный компьютер своей базы: " + Снимок.КомпьютерСервера);
    Сообщить("Номер своего сеанса: " + Строка(Снимок.НомерСеанса));
    Сообщить("Номер своего соединения: " + Строка(Снимок.НомерСоединения));
    Сообщить("Полное имя учебного пользователя заполнено: " + Строка(СтрДлина(Снимок.ПолноеИмя) > 0));
КонецПроцедуры

&НаСервереБезКонтекста
Функция ПрочитатьСвойСерверныйСнимок()
    Возврат Новый Структура("КомпьютерСервера,НомерСеанса,НомерСоединения,ПолноеИмя",
        ИмяКомпьютера(), НомерСеансаИнформационнойБазы(), НомерСоединенияИнформационнойБазы(), ПолноеИмяПользователя());
КонецФункции

Разбор по шагам

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

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

  3. После возврата на клиент вызвать ИмяКомпьютера ещё раз: теперь это имя клиентской машины.

  4. Проверить типы, вывести подписанные собственные имена и номера. Полное имя пользователя не печатать, вывести лишь факт заполненности.

  5. Сравнить файловый локальный запуск и свою клиент-серверную учебную базу, если она есть. Не считать совпадение имён доказательством одного контекста.

Как проверить результат

  1. Пять проверок типов Истина; затем фактические подписанные значения, без заранее обещанных имён или номеров.

  2. В файловой или локально размещённой учебной среде имена могут совпасть; на удалённом сервере обычно разные.

Ожидаемый результат

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

На что обратить внимание

  1. ИмяКомпьютера на сервере не возвращает автоматически имя компьютера пользователя.

  2. Не передавайте номер сеанса методу, ожидающему номер соединения.

  3. Номера не являются постоянными идентификаторами пользователя и могут меняться между запусками.

  4. ПолноеИмяПользователя читает данные пользователя текущего сеанса, не учётную запись Windows.

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

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.