Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи); ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень()); КонецЦикла;
ТабДок.ЗакончитьАвтогруппировкуСтрок();
КонецПроцедуры
Работает почти как часики но загвоздка в том что если в списке стоит группировка и при выборе строки группировки выдоит ошибку
{ОбщаяФорма.УчетМастерской.Форма(128)}: Ошибка при вызове метода контекста (Выполнить) РезультатЗапроса = Запрос.Выполнить(); по причине: {(43, 35)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля неограниченной длины и поля несовместимых типов. ДокументПриёмОборудования.Ссылка <<?>>= &Ссылка
как и где что добавить что б этой ошибки не было что бы оно не обращало внимание на строку группировки
МассивСоединений = ПолучитьСоединенияИнформационнойБазы(); РегистрСведений= РегистрыСведений.АктивныеПользователиЧата.СоздатьНаборЗаписей(); УстановитьПривилегированныйРежим(Истина); РегистрСведений .Прочитать(); Для каждого Соединение Из МассивСоединений Цикл //Сообщить("Имя: "+Соединение.Пользователь.Имя+"/ приложение "+Соединение.ИмяПриложения); Если ЛЕВ(Соединение.ИмяПриложения,4)="1CV8" Тогда //НЕ ПредставлениеПриложения(Соединение.ИмяПриложения)= "Конфигуратор" И НЕ Соединение.ИмяПриложения = "BackgroundJob" НоваяЗапись = РегистрСведений.Добавить(); НоваяЗапись.Пользователь = Справочники.Пользователи.НайтиПоНаименованию(Соединение.Пользователь.Имя, Истина); КонецЕсли;
МассивСоединений = ПолучитьСоединенияИнформационнойБазы(); РегистрСведений= РегистрыСведений.АктивныеПользователиЧата.СоздатьНаборЗаписей(); УстановитьПривилегированныйРежим(Истина); РегистрСведений .Прочитать(); Для каждого Соединение Из МассивСоединений Цикл Сообщить("Имя: "+Соединение.Пользователь.Имя+"/ приложение "+ПредставлениеПриложения(Соединение.ИмяПриложения)); Если НЕ ПредставлениеПриложения(Соединение.ИмяПриложения)= "Конфигуратор" Тогда НоваяЗапись = РегистрСведений.Добавить(); НоваяЗапись.Пользователь = Справочники.Пользователи.НайтиПоНаименованию(Соединение.Пользователь.Имя, Истина); КонецЕсли; КонецЦикла; РегистрСведений.Записать(Истина); УстановитьПривилегированныйРежим(Ложь);
Кабы работает но первые несколько минут Потом появляются Фоновые задания и тогда записывает пустого пользователя как их отсеч
МассивСоединений = ПолучитьСоединенияИнформационнойБазы(); РегистрСведений= РегистрыСведений.АктивныеПользователиЧата.СоздатьНаборЗаписей(); УстановитьПривилегированныйРежим(Истина); РегистрСведений .Прочитать(); Для каждого Соединение Из МассивСоединений Цикл Сообщить("Имя: "+Соединение.Пользователь.Имя+"/ приложение "+Соединение.ИмяПриложения); Если НЕ ПредставлениеПриложения(Соединение.ИмяПриложения)= "Конфигуратор" И НЕ Соединение.ИмяПриложения = "BackgroundJob" Тогда НоваяЗапись = РегистрСведений.Добавить(); НоваяЗапись.Пользователь = Справочники.Пользователи.НайтиПоНаименованию(Соединение.Пользователь.Имя, Истина); КонецЕсли;
все работает Но это стоит при старте и закрытий формы Но бывает если я всех кикаю из базы пользователи остаются в чате активными вот и хачю сделать модуль обновления списка
МассивСоединений = ПолучитьСоединенияИнформационнойБазы(); РегистрСведений= РегистрыСведений.АктивныеПользователиЧата.СоздатьНаборЗаписей(); УстановитьПривилегированныйРежим(Истина); РегистрСведений .Прочитать(); Для каждого Соединение Из МассивСоединений Цикл Если НЕ ПредставлениеПриложения(Соединение.ИмяПриложения)="Конфигуратор" Тогда НоваяЗапись = РегистрСведений.Добавить(); НоваяЗапись.Пользователь = Соединение.Пользователь.Имя; Сообщить("Имя: "+Соединение.Пользователь.Имя); КонецЕсли; КонецЦикла; РегистрСведений.Записать(Истина); УстановитьПривилегированныйРежим(Ложь); КонецПроцедуры
Но все ровно записывает пустое значение
Цитата(sava1 @ 06.06.18, 13:41)
это говорит лишь о том, что Вы не установили отбор по измерению.
ААА более о простом подумать не как Если убрала ошибку оно не понимала как Администратор находится в системе два раза
Bernet @ Сегодня, 9:35
, побывал и так так выпадает ошибка Запись с такими ключевыми полями существует! : АктивныеПользователиЧата: (Регистр сведений: Активные пользователи чата; Номер строки: 2)
МассивСоединений = ПолучитьСоединенияИнформационнойБазы(); РегистрСведений = РегистрыСведений.АктивныеПользователиЧата.СоздатьНаборЗаписей(); НоваяЗапись = РегистрСведений.Добавить(); Для каждого Соединение Из МассивСоединений Цикл РегистрСведений.Отбор.Пользователь.Установить(Соединение.Пользователь.Имя); НоваяЗапись.Пользователь = РегистрСведений.Отбор.Пользователь; Сообщить("Имя: "+Соединение.Пользователь.Имя); КонецЦикла;
РегистрСведений.Записать();
но вот только записывает одного пустого пользователя
Bernet @ Вчера, 16:47
, тут реально тупнул просто столько раз переписывал что и не заметил
МассивСоединений = ПолучитьСоединенияИнформационнойБазы(); Для каждого Соединение Из МассивСоединений Цикл РегистрСведений = РегистрыСведений.АктивныеПользователиЧата.СоздатьНаборЗаписей(); //РегистрСведений.Отбор.Пользователь.Установить(Соединение.Пользователь.Имя);
Vidocq05 @ Вчера, 19:03
, Ну почти все руль только во так заработало
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СообщенияЧата.Текст |ИЗ | РегистрСведений.СообщенияЧата КАК СообщенияЧата |ГДЕ | СообщенияЧата.ДатаВремя МЕЖДУ &ДатаНачала И &ДатаОкончания | |УПОРЯДОЧИТЬ ПО | СообщенияЧата.ДатаВремя УБЫВ |АВТОУПОРЯДОЧИВАНИЕ";
Запрос.УстановитьПараметр("ДатаНачала", НачалоДня(ТекущаяДата())); ДатаОкончания = КонецДня(ТекущаяДата()); Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончания); Выборка = Запрос.Выполнить().Выбрать(); ТекстСообщения = ""; Если Выборка.Следующий() Тогда ТекстСообщения = Выборка.Текст; КонецЕсли;
Возврат ТекстСообщения;
Только один нюанс как остановить спам (спамит последнюю запись) я понимаю что отработку модуля можно поставить и дольше 5 секунд (я предполагал поставить 120) но все ровно нужно чтоб новое сообщение выдавало аа старое нет как тут лучше поступить
Batchir @ Сегодня, 9:18
, невозможно провисеть кучю документов как только выдано все документ закрыт + правилом запрещены дубликаты
Вощим проблему ришил Вариант написать запрос так чтобы эти записи не выбирались сильно громоздкий нашло проще решение Через регистр тоже пробовал, тоже очень тяжёлый запрос ля динамического списка
Вот что получил в итоге отсталость только внешку подредактировать
ВЫБРАТЬ ДокументПриёмОборудования.Ссылка КАК Ссылка, ДокументПриёмОборудования.ПометкаУдаления, ДокументПриёмОборудования.Номер, ДокументПриёмОборудования.Дата, ДокументПриёмОборудования.Проведен, ДокументПриёмОборудования.Сотрудник, ДокументПриёмОборудования.Инв, ДокументПриёмОборудования.МОЛ, ДокументПриёмОборудования.Подразделение, ДокументПриёмОборудования.МастерскиеСклады, ДокументПриёмОборудования.SN, ДокументПриёмОборудования.Модель, ДокументПриёмОборудования.Паломка, ДокументПриёмОборудования.Данные, ДокументПриёмОборудования.Помещение, ДокументПриёмОборудования.Телефон, ДокументПриёмОборудования.НормерЗадачи, ДокументПриёмОборудования.Корпус, ДокументПриёмОборудования.Телефон1, ДокументПриёмОборудования.Телефон2, ДокументПриёмОборудования.Керівник, ДокументПриёмОборудования.Код, ДокументПриёмОборудования.Пользователь, ДокументПриёмОборудования.МоментВремени, ПриёмОборудования1.ПриОсмотреВыевленоЧчто, ЕСТЬNULL(ВыдачаОборудования.Количество, ИСТИНА) КАК выдоно, Резерв.Количество КАК Готово, РезервСписания.Количество КАК КСписанию, ЕСТЬNULL(СписаниеСБ.Количество, ИСТИНА) КАК СписаннСБ, ЕСТЬNULL(СписаниеУстоткуванняСписанияОборудования.Количество, ИСТИНА) КАК СписоноОб, ВыдачаОборудования.Дата КАК ДатаВыдона, Резерв.Дата КАК ДатаГотовности, РезервСписания.Дата КАК ДатаГотовности1, СписаниеСБ.Дата КАК ДатаВыдона1, СписаниеУстоткуванняСписанияОборудования.Ссылка.Дата КАК ДатаВыдона2, ДокументПриёмОборудования.Количество КАК Вроботе ИЗ Документ.ПриёмОборудования КАК ДокументПриёмОборудования ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПриёмОборудования1 КАК ПриёмОборудования1 ПО ДокументПриёмОборудования.Номер = ПриёмОборудования1.НомерРасписки ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВыдачаОборудования КАК ВыдачаОборудования ПО ДокументПриёмОборудования.Номер = ВыдачаОборудования.НомерРасписки ЛЕВОЕ СОЕДИНЕНИЕ Документ.СписаниеСБ КАК СписаниеСБ ПО ДокументПриёмОборудования.Номер = СписаниеСБ.НомерРасписки ЛЕВОЕ СОЕДИНЕНИЕ Документ.СписаниеУстоткування.СписанияОборудования КАК СписаниеУстоткуванняСписанияОборудования ПО ДокументПриёмОборудования.Номер = СписаниеУстоткуванняСписанияОборудования.НомерРасписки ЛЕВОЕ СОЕДИНЕНИЕ Документ.Резерв КАК Резерв ПО ДокументПриёмОборудования.Номер = Резерв.НомерРасписки ЛЕВОЕ СОЕДИНЕНИЕ Документ.РезервСписания КАК РезервСписания ПО ДокументПриёмОборудования.Номер = РезервСписания.НомерРасписки
СГРУППИРОВАТЬ ПО ДокументПриёмОборудования.Ссылка,
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!