РедактироватьАсинх возвращает Обещание. Ждать получает конечный результат: период по ОК или Неопределено по отмене.
Где и как запускать
Полный клиентский код модуля управляемой формы собственной учебной обработки. Процедуры уже включены; не вставляйте их в тело другого обработчика.
Подготовка
Создайте новую внешнюю обработку УчебныйПериод85 с управляемой формой. Используйте только учебную базу; сведения из документов/регистров не нужны.
В редакторе формы создайте реквизит ВыбранныйПериод типа СтандартныйПериод. Добавьте поле формы, связанное с этим реквизитом, чтобы видеть текущий выбор.
Создайте команду ВыбратьПериод, выведите её кнопкой и назначьте обработчик ВыбратьПериод. Вставьте полный код данного примера в модуль формы отдельно от прочих процедур.
Первое нажатие инициализирует пустой реквизит фиксированным февралем 2024. Последующие открытия редактируют отдельную рабочую копию ранее выбранного периода.
Используйте тонкий или толстый клиент платформы 8.5.1.1343. В локальной справке РедактироватьАсинх не указан для веб-клиента; для него используйте пример Показать с оповещением.
&НаКлиенте
Асинх Процедура ВыбратьПериод(Команда)
Если ТипЗнч(ВыбранныйПериод) <> Тип("СтандартныйПериод") Тогда
ВыбранныйПериод = Новый СтандартныйПериод(Дата(2024, 2, 1), КонецМесяца(Дата(2024, 2, 1)));
ИначеЕсли Не ЗначениеЗаполнено(ВыбранныйПериод.ДатаНачала)
Или Не ЗначениеЗаполнено(ВыбранныйПериод.ДатаОкончания) Тогда
ВыбранныйПериод = Новый СтандартныйПериод(Дата(2024, 2, 1), КонецМесяца(Дата(2024, 2, 1)));
КонецЕсли;
РабочийПериод = Новый СтандартныйПериод(ВыбранныйПериод.Вариант);
Если ВыбранныйПериод.Вариант = ВариантСтандартногоПериода.ПроизвольныйПериод Тогда
РабочийПериод.ДатаНачала = ВыбранныйПериод.ДатаНачала;
РабочийПериод.ДатаОкончания = ВыбранныйПериод.ДатаОкончания;
КонецЕсли;
Диалог = Новый ДиалогРедактированияСтандартногоПериода;
Диалог.Период = РабочийПериод;
Результат = Ждать Диалог.РедактироватьАсинх();
Если Результат = Неопределено Тогда
Сообщить("Отмена: выбранный период не изменён");
Возврат;
КонецЕсли;
ВыбранныйПериод = Результат;
Сообщить("Выбран вариант: " + Строка(ВыбранныйПериод.Вариант));
Сообщить(Формат(ВыбранныйПериод.ДатаНачала, "ДФ=dd.MM.yyyy HH:mm:ss"));
Сообщить(Формат(ВыбранныйПериод.ДатаОкончания, "ДФ=dd.MM.yyyy HH:mm:ss"));
КонецПроцедуры
Разбор по шагам
Обработчик объявлен Асинх Процедура: в нём разрешён оператор Ждать.
Рабочий период отделён от подтверждённого выбора формы. Диалог редактирует рабочую копию.
Ждать получает результат обещания, поэтому после этой строки можно проверять отмену и свойства периода.
При отмене выходим до присваивания реквизита. При ОК сохраняем результат и выводим его обе границы.
Как проверить результат
ОК с новым интервалом обновляет поле ВыбранныйПериод и выводит даты.
Отмена после изменения рабочей копии не меняет подтверждённый реквизит формы.
В переменную Результат попадает конечный период или Неопределено, а не само Обещание.
Ожидаемый результат
Современный клиентский вариант последовательного кода выбора периода без callback-процедуры.
На что обратить внимание
Без Ждать переменная содержала бы обещание; обращаться к нему как к СтандартныйПериод нельзя.
Не копируйте код в серверную процедуру: диалог интерактивный и клиентский.
Доступность веб-клиента у разных асинхронных диалогов различается; проверяйте именно выбранный метод.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.