Имя: Пароль:
1C
1С v8
Как сделать запуск фонового задания через регламентные операции?
,
0 mrOrange1
 
29.04.21
09:21
В стандартной УНФ есть встроенный чат бот, который запускается из формы настроек "Настройки программы" - "Настройки чат бота".

При нажатии на кнопку активировать срабатывает Процедура "Активировать в коробке".

Как сделать так, чтобы бот запускался при запуске сервера 1С. База серверная?

&НаКлиенте
Процедура АктивироватьВКоробке(Команда)

Если Модифицированность Тогда
СохранитьНастройкиЧатБота();
Модифицированность = Ложь;
КонецЕсли;

ЧатБотЗапущен = НЕ ЧатБотЗапущен;
ОбновитьВидимость();
Если ЧатБотЗапущен Тогда
ПодключитьОбработчикОжидания("ПроверитьСообщения", 0.1, Истина);
КонецЕсли;

КонецПроцедуры

&НаКлиенте
Процедура ПроверитьСообщения()

Если НЕ ЧатБотЗапущен Тогда
Возврат;
КонецЕсли;

Если НЕ ФайловаяБаза Тогда
Возврат;
КонецЕсли;

ДлительнаяОперация = ЗапуститьЧатБотВФоне();
Если ДлительнаяОперация = Неопределено Тогда
Возврат;
КонецЕсли;
ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект);
ПараметрыОжидания.Вставить("ВыводитьОкноОжидания", Ложь);

ОповещениеОЗавершении = Новый ОписаниеОповещения("ВыполнитьДействиеЗавершение", ЭтотОбъект);
ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, ОповещениеОЗавершении, ПараметрыОжидания);

КонецПроцедуры

&НаКлиенте
Процедура ВыполнитьДействиеЗавершение(Результат, ДополнительныеПараметры) Экспорт

Если ЧатБотЗапущен Тогда
ПодключитьОбработчикОжидания("ПроверитьСообщения", 1, Истина);
КонецЕсли;

КонецПроцедуры

&НаСервере
Функция ЗапуститьЧатБотВФоне()

ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("ИмяМетода", "ЧатботСервер.ПолучитьСообщенияЧатботаТест");
ПараметрыОтбора.Вставить("Состояние", СостояниеФоновогоЗадания.Активно);
МассивФоновыхЗаданий = ФоновыеЗадания.ПолучитьФоновыеЗадания(ПараметрыОтбора);
Если МассивФоновыхЗаданий.Количество() > 0 Тогда
Возврат Неопределено;
КонецЕсли;

ПараметрыВыполнения = Новый Структура;
ПараметрыВыполнения.Вставить("ОжидатьЗавершение", 0);
ПараметрыВыполнения.Вставить("НаименованиеФоновогоЗадания", "ПолучитьСообщенияЧатботаТест");
ПараметрыВыполнения.Вставить("КлючФоновогоЗадания", "");
ПараметрыВыполнения.Вставить("ЗапуститьНеВФоне", Ложь);
ПараметрыВыполнения.Вставить("ЗапуститьВФоне", Истина);
ПараметрыВыполнения.Вставить("БезРасширений", Ложь);

Возврат ДлительныеОперации.ВыполнитьПроцедуру(ПараметрыВыполнения, "ЧатботСервер.ПолучитьСообщенияЧатботаТест");

КонецФункции
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс