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