//****************************************************************************** // ОчисткаТЗ() // Параметры: ТЗ, которую надо очистить // В ТЗ д.б. Колонки с идентификаторами "НадоУдалить" и "ОПС" (оригинальный порядок строк) // Описание: очищает ТЗ от ненужных строк Процедура глОчисткаТЗ(ТЗдляЧистки, ОПС="+ОПС", КолонкаУдалить="НадоУдалить", Режим=0) Экспорт Попытка НадоУдалить = ТЗдляЧистки.Итог(КолонкаУдалить); Исключение Возврат; КонецПопытки; ТЗКС = ТЗдляЧистки.КоличествоСтрок(); Если Режим <> 0 Тогда Сообщить("> ["+ТекущееВремя()+"]: *** удаляем "+НадоУдалить+" из "+ТЗКС+" ****"); КонецЕсли; Если НадоУдалить <= 0 Тогда Возврат; КонецЕсли; Если НадоУдалить >= ТЗКС Тогда ТЗдляЧистки.УдалитьСтроки(); Иначе ТЗРаб = СоздатьОбъект("ТаблицаЗначений"); ТЗдляЧистки.Выгрузить(ТЗРаб); ТЗРаб.Сортировать("+"+КолонкаУдалить); ТЗРаб.Выгрузить(ТЗдляЧистки,1,ТЗКС-НадоУдалить); ТЗРаб = 0; КонецЕсли; Если ПустаяСтрока(ОПС) = 1 Тогда Возврат; КонецЕсли; //сортировать не надо Если ОПС = "###" Тогда Возврат; КонецЕсли; //сортировать не надо //восстановим оригинальный порядок строк ТЗдляЧистки.Сортировать(ОПС); КонецПроцедуры //глОчисткаТЗ()
19 сент. 2016 г.
Правильное удаление строк из таблицы значений
Обмен сообщениями в 1С
При запуске 1С-ки в управляемом приложении подключается обработчик ожидания и обращается каждые 180 секунд к общему модулю, где в свою очередь идет обращение к функции, которая возвращает, есть ли для пользователя, который запустил 1С-ку сообщение, если сообщение есть, сообщения показывается на экран.
Отправка сообщения осуществляется с помощью обработки, в которой можно
- выбрать одного или несколько получателей для отправки им сообщения (уведомления)
- по кнопке "Открыть регистр сообщений" просмотреть сообщение которое будет отправлено для конкретного пользователя (пользователей)
-------------------------------------------------------------------------------------------------
!В конфигурации должен быть:
- Справочник.Пользователи
- ПараметрыСеанса.ТекушийПользователь
Для реализации обмена
сообщениями в 1С в конфигурацию я добавил
РегистрСведений СообщенияПользователям
Измерения: Пользователь
= СправочникСсылка.Пользователи
Ресурс: Сообщение
= Строка
Общий
модуль РаботаСПользователем (Глобальный, Клиент (упр. приложение),Клиент
(об. приложение))
где написал
Процедура ПроцедураУведомленияПользователя() Экспорт
СообщениеПользователю
= Привилегированный.ПолучитьСообщенияДляКонкретногоПользователя();
Если ЗначениеЗаполнено(СообщениеПользователю) Тогда
Привилегированный.УстановитьНовоеСообщениеДляПользователя("",Привилегированный.ПолучитьТекущегоПользователя());
Предупреждение(СообщениеПользователю,,"Внимание!");
КонецЕсли;
КонецПроцедуры
Общий
модуль Привилегированный (Сервер, Вызов из сервера, Привилегированный)
где написал
Функция
ПолучитьСообщенияДляКонкретногоПользователя() Экспорт
ТекущийПользователь
= Справочники.Пользователи.НайтиПоНаименованию(ПараметрыСеанса.ТекушийПользователь.Наименование,Истина);
Запрос
= Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СообщенияПользователям.Сообщение
|ИЗ
| РегистрСведений.СообщенияПользователям КАК
СообщенияПользователям
|ГДЕ
| СообщенияПользователям.Пользователь =
&Пользователь";
Запрос.УстановитьПараметр("Пользователь", ТекущийПользователь);
РезультатЗапроса
= Запрос.Выполнить().Выгрузить();
Если РезультатЗапроса.Количество() = 0 Тогда
Возврат "";
Иначе
Возврат РезультатЗапроса[0].Сообщение;
КонецЕсли;
КонецФункции
Процедура УстановитьНовоеСообщениеДляПользователя(СообщениеДляПользователя,ТекущийПользователь) Экспорт
НаборЗаписей
= РегистрыСведений.СообщенияПользователям.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Пользователь.Установить(ТекущийПользователь);
НовЗапись
= НаборЗаписей.Добавить();
НовЗапись.Пользователь = ТекущийПользователь;
НовЗапись.Сообщение = СообщениеДляПользователя;
НаборЗаписей.Записать(Истина);
КонецПроцедуры
Функция ПолучитьТекущегоПользователя() Экспорт
Возврат Справочники.Пользователи.НайтиПоНаименованию(ПараметрыСеанса.ТекушийПользователь.Наименование,Истина);
КонецФункции
В модуле управляемого приложения
Процедура ПриНачалеРаботыСистемы()
ПодключитьОбработчикОжидания("ПроцедураУведомленияПользователя",180,);
КонецПроцедуры
ПодключитьОбработчикОжидания("ПроцедураУведомленияПользователя",180,);
КонецПроцедуры
Обработка для общения скачать.
Подписаться на:
Сообщения (Atom)