Закажите бесплатный расчет стоимости вашей задачи по 1С!
Перезвоним за 10 минут!

Вопрос в 1С 8.3 — отказываемся от модальности в управляемых формах с помощью асинхронных вызовов

Когда появилась возможность публиковать 1С в интернете, или устанавливать платформу 1С 8.3 на мобильные приложения возникла проблема с модальными окнами.

Дело в том, что в мобильных приложениях (web интерфейсах) они не открываются вообще, а на настольных компьютерах в браузере они воспринимаются как всплывающие окна и чаще всего заблокированы пользователем.

Какое то время фирма 1С боролась с таким положением вещей, и даже разработала сложный и не надежный механизм для модальных окон. Но, например, на iPhone он до сих пор не работает (из источников на сайте 1С).

В связи с этим, фирма 1С решила вообще отказаться от модальных окон. Точнее пока оставили такую возможность, но и появилась настройка, запрещающая полностью использовать модальность. В 1С 8.3 появилась возможность производить асинхронный вызов модальных окон.

Эту настройку можно найти в свойствах конфигурации.

Заходим в Конфигуратор, нажимаем правой кнопкой мышки на самую первую строчку, и выбираем «Свойства». У кого все свойства не уместились на экране, прокручиваем до самого низа:

режим использования модальности

Получите 267 видеоуроков по 1С бесплатно:

На данный момент существует три режима применения модальных окон:

  • Использовать — позволяет использовать модальные окна в полной мере;
  • Использовать с предупреждением — так же позволит появиться модальному окну, но выйдет предупреждение, что модальные окна использовать запрещено!;
  • Не использовать — полностью исключает использование модальных окон.

 

Теперь разберемся, как оформить новый функционал программно.

Задаем вопрос в 1С Предприятие 8.3

Начну с того, что нужно будет делать две процедуры. Первая, это где задается сам вопрос, вторая, где он обрабатывается.

Я сразу напишу пример, а в комментариях будут пояснения. Так проще и наглядней:

&НаКлиенте

Процедура ЗадатьВопрос(Команда)



Оповещение = Новый ОписаниеОповещения("ПослеОтветаНаВопрос",
ЭтотОбъект); // Прописываем название процедуры-обработчика.



ПоказатьВопрос(Оповещение, "Сегодня хорошая погода?",  // вместо привычного "Вопрос", теперь "ПоказатьВопрос"

РежимДиалогаВопрос.ДаНетОтмена,

0,  // задержка (секунды). необязательно

КодВозвратаДиалога.Да, // задает кнопку по умолчанию. необязательно

"Демонстрируем немодальные окна." // устанавливаем заголовок. необязательно

);

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



&НаКлиенте

Процедура ПослеОтветаНаВопрос(Результат, Параметры) Экспорт // здесь, думаю, комментировать нечего



Если Результат = КодВозвратаДиалога.Да Тогда

Сообщить("Приятного отдыха на свежем воздухе!");

Иначе

Сообщить("Оставайтесь дома!");

КонецЕсли;



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

На этом все, приятного программирования!

P.S. Наша компания предоставляет услуги по настройке, доработке и комплексному внедрению 1С. Закажите бесплатный расчет стоимости вашей задачи на странице Услуги 1С или по телефону +7 (499) 350 29 00.

Остались вопросы?

СПРОСИТЕ в комментариях!

Комментариев: 2 на “Вопрос в 1С 8.3 — отказываемся от модальности в управляемых формах с помощью асинхронных вызовов
  1. Добрый вечер. Подскажите пожалуйста нет ли у вас готовой конфигурации по созданию тестирования людей для примера, написанной на управляемых формах?

    Ответить

    • Здравствуйте!

      Нет, на управляемых формах, к сожалению, нет.

      Ответить

Добавить комментарий:

Ваш e-mail не будет опубликован. Обязательные поля помечены *


*