Сервер находит существующее обсуждение, клиент ожидает его дату и вычисляет оставшиеся секунды.
Где и как запускать
Модуль управляемой формы: клиентская асинхронная процедура и серверная функция поиска обсуждения.
Подготовка
Поместите весь блок в модуль собственной управляемой формы. КлючОбсуждения — строковый реквизит с действительным ключом своего WhatsApp-обсуждения.
Настройте собственную интеграцию и учебного адресата заранее; процедура ничего не отправляет.
&НаКлиенте
Асинх Процедура ПроверитьОкноАсинхронно()
Идентификатор = ОбсуждениеНаСервере();
Окончание = Ждать СистемаВзаимодействия.ПолучитьВремяОкончанияДоступностиОтветаАсинх(Идентификатор);
Если Окончание = Неопределено Тогда
Сообщить("Для обсуждения дата окна недоступна");
Возврат;
КонецЕсли;
Сообщить("Окончание: " + Строка(Окончание));
Сообщить("Осталось секунд: " + Строка(Окончание - ТекущаяДата()));
КонецПроцедуры
&НаСервере
Функция ОбсуждениеНаСервере()
Обсуждение = СистемаВзаимодействия.ПолучитьОбсуждение(КлючОбсуждения);
Если Обсуждение = Неопределено Тогда
ВызватьИсключение "Учебное обсуждение не найдено";
КонецЕсли;
Возврат Обсуждение.Идентификатор;
КонецФункцииРазбор по шагам
Найдите идентификатор обсуждения на сервере.
Ждать извлекает дату из обещания.
Сравните дату с текущим временем клиента.
Как проверить результат
Положительная разность означает время до указанной даты, отрицательная — прошедшую дату.
Проверьте отдельную ветку Неопределено для другого типа интеграции.
Ожидаемый результат
Дата окончания и фактическая разность времени на клиенте.
На что обратить внимание
Асинхронный метод описывает дату в часовом поясе компьютера. Не смешивайте ее с серверной датой из другого часового пояса; состояние сети и права отправки проверяются отдельно.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.