Как определить в каком режиме запущена программа(тонкий, толстый, web-клиент)? Код 1C v 8.2 УП &НаСервереБезКонтекста
Функция ПолучитьТипКлиента()
Соединения=ПолучитьСоединенияИнформационнойБазы();
ТекущееСоединение=Соединения.Получить(НомерСоединенияИнформационнойБазы()-1);
Если ТекущееСоединение=Неопределено Тогда
Возврат "";
КонецЕсли;
Возврат (ПредставлениеПриложения(ТекущееСоединение.ИмяПриложения));
КонецФункции
&НаКлиенте
Процедура Тест(Команда)
Сообщить(ПолучитьТипКлиента());
КонецПроцедуры
еще вариант:
Код 1C v 8.2 УП Функция ПолучитьТекущуюСредуВыполнения() Экспорт
#Если ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда
Возврат "Толстый клиент";
#ИначеЕсли Сервер Тогда
Возврат "Сервер";
#ИначеЕсли ВнешнееСоединение Тогда
Возврат "Внешнее соединение";
#ИначеЕсли ТонкийКлиент Тогда
Возврат "Тонкий клиент";
#ИначеЕсли ВебКлиент Тогда
Возврат "Веб-клиент";
#Иначе
Возврат "Ошибка определения среды выполнения";
#КонецЕсли
КонецФункции
Категория:
Полезные, Универсальные Функции Как получить список пользователей, которые работают с данной информационной базой? Для этого можно расположить в форме табличное поле (например, с именем Пользователи) и воспользоваться методом глобального контекста ПолучитьСоединенияИнформационнойБазы(), который возвращает массив, состоящий из описаний соединений с текущей информационной базой:
Код 1C v 8.х МассивСоединений = ПолучитьСоединенияИнформационнойБазы();
Колонки = Пользователи.Колонки;
Колонки.Добавить("Пользователь", , , 10);
Колонки.Добавить("Приложение" , , , 10);
Колонки.Добавить("НачалоРаботы", , , 10);
Колонки.Добавить("Компьютер" , , , 10);
Колонки.Добавить("Соединение" , , , 10);
Для Каждого Соединение из МассивСоединений цикл
НоваяСтрока = Пользователи.Добавить();
НоваяСтрока.Компьютер = Соединение.ИмяКомпьютера;
НоваяСтрока.Приложение = ПредставлениеПриложения(Соединение.ИмяПриложения);
НоваяСтрока.НачалоРаботы = Соединение.НачалоСеанса;
НоваяСтрока.Соединение = Соединение.НомерСоединения;
НоваяСтрока.Пользователь = Соединение.Пользователь.Имя;
КонецЦикла;
ЭлементыФормы.Пользователи.СоздатьКолонки();
Категория:
Пользователь, роль доступа, интерфейс Программно получить список активных пользователей Код 1C v 8.х
Процедура ПолучениеСпискаАктивныхПользователей()
ИтогСписокСоединений.Очистить();
СоединенияИнформационнойБазы = ПолучитьСоединенияИнформационнойБазы();
Для Каждого Соединение Из СоединенияИнформационнойБазы Цикл
ТЗ=ИтогСписокСоединений.Добавить();
ТЗ.Пользователь=Соединение.Пользователь.Имя;
ТЗ.Приложение=ПредставлениеПриложения(Соединение.ИмяПриложения);
ТЗ.НачалоРаботы=Соединение.НачалоСеанса;
ТЗ.Компьютер=Соединение.ИмяКомпьютера;
ТЗ.Соединение=Соединение.НомерСоединения;
КонецЦикла;
нНомерТекущегоСоединения=НомерСоединенияИнформационнойБазы();
//В итоге получаем ТЗ со списком пользователей и Номер Текущего Соединения
КонецПроцедуры
Категория:
Полезные, Универсальные Функции