нужно по нажатию кнопки обновить список
код
МассивСоединений = ПолучитьСоединенияИнформационнойБазы();
Для каждого Соединение Из МассивСоединений Цикл
РегистрСведений = РегистрыСведений.АктивныеПользователиЧата.СоздатьНаборЗаписей();
//РегистрСведений.Отбор.Пользователь.Установить(Соединение.Пользователь.Имя);
НоваяЗапись = НаборЗаписей.Добавить();
НоваяЗапись.Пользователь = Соединение.Пользователь.Имя;
Сообщить("Имя: "+Соединение.Пользователь.Имя);
КонецЦикла;
РегистрСведений.Записать();
! | http://pro1c.org.ua/index.php?act=announce&id=2: 5 |
СоздатьНабор вынесите за цикл
ну и РегистрСведений.Добавить()
kanibal23 @ Сегодня, 16:03
,
что за переменная
Типа этого
МассивСоединений = ПолучитьСоединенияИнформационнойБазы();
РегистрСведений = РегистрыСведений.АктивныеПользователиЧата.СоздатьНаборЗаписей();
НоваяЗапись = РегистрСведений.Добавить();
Для каждого Соединение Из МассивСоединений Цикл
РегистрСведений.Отбор.Пользователь.Установить(Соединение.Пользователь.Имя);
НоваяЗапись.Пользователь = РегистрСведений.Отбор.Пользователь;
Сообщить("Имя: "+Соединение.Пользователь.Имя);
КонецЦикла;
РегистрСведений.Записать();
НоваяЗапись = ....Добавить()
в цикл
МассивСоединений = ПолучитьСоединенияИнформационнойБазы();
НаборЗаписей = РегистрыСведений.АктивныеПользователиЧата.СоздатьНаборЗаписей();
НаборЗаписей.Прочитать();
Для каждого Соединение Из МассивСоединений Цикл
НоваяЗапись = НаборЗаписей.Добавить();
НоваяЗапись.Пользователь = Соединение.Пользователь.Имя;
Сообщить("Имя: "+Соединение.Пользователь.Имя);
КонецЦикла;
НаборЗаписей.Записать();
Bernet @ Сегодня, 9:35
,
побывал и так
так выпадает ошибка
Запись с такими ключевыми полями существует! : АктивныеПользователиЧата: (Регистр сведений: Активные пользователи чата; Номер строки: 2)
kanibal23 @ Сегодня, 12:23
,
Либо чистить регистр перед каждой записью, либо делать его периодическим, либо как вариант попробуйте
НаборЗаписей.Записать(Истина);
&НаСервереБезКонтекста
Процедура ОбновитьПользователей()
НаборЗаписей = РегистрыСведений.АктивныеПользователиЧата.СоздатьНаборЗаписей();
НаборЗаписей.Записать();
МассивСоединений = ПолучитьСоединенияИнформационнойБазы();
РегистрСведений= РегистрыСведений.АктивныеПользователиЧата.СоздатьНаборЗаписей();
УстановитьПривилегированныйРежим(Истина);
РегистрСведений .Прочитать();
Для каждого Соединение Из МассивСоединений Цикл
НоваяЗапись = РегистрСведений.Добавить();
НоваяЗапись.Пользователь = Соединение.Пользователь.Имя;
Сообщить("Имя: "+Соединение.Пользователь.Имя);
КонецЦикла;
РегистрСведений.Записать();
УстановитьПривилегированныйРежим(Ложь);
КонецПроцедуры
&НаКлиенте
Процедура Обновить(Команда)
ОбновитьПользователей();
КонецПроцедуры
От ошибки избавился
&НаСервереБезКонтекста
Процедура ОбновитьПользователей()
НаборЗаписей = РегистрыСведений.АктивныеПользователиЧата.СоздатьНаборЗаписей();
НаборЗаписей.Прочитать();
НаборЗаписей.Очистить();
НаборЗаписей.Записать();
МассивСоединений = ПолучитьСоединенияИнформационнойБазы();
РегистрСведений= РегистрыСведений.АктивныеПользователиЧата.СоздатьНаборЗаписей();
УстановитьПривилегированныйРежим(Истина);
РегистрСведений .Прочитать();
Для каждого Соединение Из МассивСоединений Цикл
Если НЕ ПредставлениеПриложения(Соединение.ИмяПриложения)="Конфигуратор" Тогда
НоваяЗапись = РегистрСведений.Добавить();
НоваяЗапись.Пользователь = Соединение.Пользователь.Имя;
Сообщить("Имя: "+Соединение.Пользователь.Имя);
КонецЕсли;
КонецЦикла;
РегистрСведений.Записать(Истина);
УстановитьПривилегированныйРежим(Ложь);
КонецПроцедуры
попробуйте через менеджер записать по одной записи
МенеджерЗаписиАктивныеПользователи = РегистрыСведений.АктивныеПользователиЧата.СоздатьМенеджерЗаписи();
УстановитьПривилегированныйРежим(Истина);
МенеджерЗаписиАктивныеПользователи.Пользователь = ПараметрыСеанса.ТекущийПользователь;
Попытка
МенеджерЗаписиАктивныеПользователи.Записать();
Исключение
КонецПопытки;
УстановитьПривилегированныйРежим(Ложь);
МенеджерЗаписи = РегистрыСведений.АктивныеПользователиЧата.СоздатьМенеджерЗаписи();
УстановитьПривилегированныйРежим(Истина);
МенеджерЗаписи.Пользователь = ПараметрыСеанса.ТекущийПользователь;
МенеджерЗаписи.Прочитать();
МенеджерЗаписи.Удалить();
УстановитьПривилегированныйРежим(Ложь);
НаборЗаписей = РегистрыСведений.АктивныеПользователиЧата.СоздатьНаборЗаписей();
НаборЗаписей.Прочитать();
НаборЗаписей.Очистить();
НаборЗаписей.Записать();
МассивСоединений = ПолучитьСоединенияИнформационнойБазы();
РегистрСведений= РегистрыСведений.АктивныеПользователиЧата.СоздатьНаборЗаписей();
УстановитьПривилегированныйРежим(Истина);
РегистрСведений .Прочитать();
Для каждого Соединение Из МассивСоединений Цикл
Сообщить("Имя: "+Соединение.Пользователь.Имя+"/ приложение "+ПредставлениеПриложения(Соединение.ИмяПриложения));
Если НЕ ПредставлениеПриложения(Соединение.ИмяПриложения)= "Конфигуратор" Тогда
НоваяЗапись = РегистрСведений.Добавить();
НоваяЗапись.Пользователь = Справочники.Пользователи.НайтиПоНаименованию(Соединение.Пользователь.Имя, Истина);
КонецЕсли;
КонецЦикла;
РегистрСведений.Записать(Истина);
УстановитьПривилегированныйРежим(Ложь);
&НаСервереБезКонтекста
Процедура ОбновитьПользователей()
НаборЗаписей = РегистрыСведений.АктивныеПользователиЧата.СоздатьНаборЗаписей();
НаборЗаписей.Прочитать();
НаборЗаписей.Очистить();
НаборЗаписей.Записать();
МассивСоединений = ПолучитьСоединенияИнформационнойБазы();
РегистрСведений= РегистрыСведений.АктивныеПользователиЧата.СоздатьНаборЗаписей();
УстановитьПривилегированныйРежим(Истина);
РегистрСведений .Прочитать();
Для каждого Соединение Из МассивСоединений Цикл
Сообщить("Имя: "+Соединение.Пользователь.Имя+"/ приложение "+Соединение.ИмяПриложения);
Если НЕ ПредставлениеПриложения(Соединение.ИмяПриложения)= "Конфигуратор" И НЕ Соединение.ИмяПриложения = "BackgroundJob" Тогда
НоваяЗапись = РегистрСведений.Добавить();
НоваяЗапись.Пользователь = Справочники.Пользователи.НайтиПоНаименованию(Соединение.Пользователь.Имя, Истина);
КонецЕсли;
КонецЦикла;
РегистрСведений.Записать(Истина);
УстановитьПривилегированныйРежим(Ложь);
КонецПроцедуры
НаборЗаписей.Прочитать();
НаборЗаписей.Очистить();
НаборЗаписей.Записать();
// !!! РегистрСведений .Прочитать();
Для каждого Соединение Из МассивСоединений Цикл
Сообщить("Имя: "+Соединение.Пользователь.Имя+"/ приложение "+ПредставлениеПриложения(Соединение.ИмяПриложения));
Если НЕ ПредставлениеПриложения(Соединение.ИмяПриложения)= "Конфигуратор" Тогда
НоваяЗапись = РегистрСведений.Добавить();
НоваяЗапись.Пользователь = Справочники.Пользователи.НайтиПоНаименованию(Соединение.Пользователь.Имя, Истина);
КонецЕсли;
КонецЦикла;
РегистрСведений.Записать(Истина);
andr_andrey @ 08.06.18, 12:30
,
МассивСоединений = ПолучитьСоединенияИнформационнойБазы();
РегистрСведений= РегистрыСведений.АктивныеПользователиЧата.СоздатьНаборЗаписей();
УстановитьПривилегированныйРежим(Истина);
РегистрСведений .Прочитать();
Для каждого Соединение Из МассивСоединений Цикл
//Сообщить("Имя: "+Соединение.Пользователь.Имя+"/ приложение "+Соединение.ИмяПриложения);
Если ЛЕВ(Соединение.ИмяПриложения,4)="1CV8" Тогда //НЕ ПредставлениеПриложения(Соединение.ИмяПриложения)= "Конфигуратор" И НЕ Соединение.ИмяПриложения = "BackgroundJob"
НоваяЗапись = РегистрСведений.Добавить();
НоваяЗапись.Пользователь = Справочники.Пользователи.НайтиПоНаименованию(Соединение.Пользователь.Имя, Истина);
КонецЕсли;
КонецЦикла;
РегистрСведений.Записать(Истина);
УстановитьПривилегированныйРежим(Ложь);
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua