0
mrOrange1
29.04.21
✎
09:21
|
В стандартной УНФ есть встроенный чат бот, который запускается из формы настроек "Настройки программы" - "Настройки чат бота".
При нажатии на кнопку активировать срабатывает Процедура "Активировать в коробке".
Как сделать так, чтобы бот запускался при запуске сервера 1С. База серверная?
&НаКлиенте
Процедура АктивироватьВКоробке(Команда)
Если Модифицированность Тогда
СохранитьНастройкиЧатБота();
Модифицированность = Ложь;
КонецЕсли;
ЧатБотЗапущен = НЕ ЧатБотЗапущен;
ОбновитьВидимость();
Если ЧатБотЗапущен Тогда
ПодключитьОбработчикОжидания("ПроверитьСообщения", 0.1, Истина);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьСообщения()
Если НЕ ЧатБотЗапущен Тогда
Возврат;
КонецЕсли;
Если НЕ ФайловаяБаза Тогда
Возврат;
КонецЕсли;
ДлительнаяОперация = ЗапуститьЧатБотВФоне();
Если ДлительнаяОперация = Неопределено Тогда
Возврат;
КонецЕсли;
ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект);
ПараметрыОжидания.Вставить("ВыводитьОкноОжидания", Ложь);
ОповещениеОЗавершении = Новый ОписаниеОповещения("ВыполнитьДействиеЗавершение", ЭтотОбъект);
ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, ОповещениеОЗавершении, ПараметрыОжидания);
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьДействиеЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если ЧатБотЗапущен Тогда
ПодключитьОбработчикОжидания("ПроверитьСообщения", 1, Истина);
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ЗапуститьЧатБотВФоне()
ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("ИмяМетода", "ЧатботСервер.ПолучитьСообщенияЧатботаТест");
ПараметрыОтбора.Вставить("Состояние", СостояниеФоновогоЗадания.Активно);
МассивФоновыхЗаданий = ФоновыеЗадания.ПолучитьФоновыеЗадания(ПараметрыОтбора);
Если МассивФоновыхЗаданий.Количество() > 0 Тогда
Возврат Неопределено;
КонецЕсли;
ПараметрыВыполнения = Новый Структура;
ПараметрыВыполнения.Вставить("ОжидатьЗавершение", 0);
ПараметрыВыполнения.Вставить("НаименованиеФоновогоЗадания", "ПолучитьСообщенияЧатботаТест");
ПараметрыВыполнения.Вставить("КлючФоновогоЗадания", "");
ПараметрыВыполнения.Вставить("ЗапуститьНеВФоне", Ложь);
ПараметрыВыполнения.Вставить("ЗапуститьВФоне", Истина);
ПараметрыВыполнения.Вставить("БезРасширений", Ложь);
Возврат ДлительныеОперации.ВыполнитьПроцедуру(ПараметрыВыполнения, "ЧатботСервер.ПолучитьСообщенияЧатботаТест");
КонецФункции
|
|