Главная » Файлы » Программируем в 1С » 1С Разное |
Скачивать материалы с сайта, могут только зарегистрированные пользователи.
Для регистрации заполните два поля ниже!
Через минуту Вы получите "Гостевой доступ"
2014 Июнь 17, 16:01 | |
Почему 1С отказывается от модальных окон ? Одно из принципиальных отличий 1С 8.3 от 8.2 это отказ от модальных окон. Для начала объясню , о каком окне идет речь. Друзья, модальные окна Вы видите ежедневно, например в своих веб браузерах (Chrome, Mozilla и другие) Модальные окна есть также и в Windows и Linux.
Конечно, они есть и в 1С Предприятии. Когда у пользователя вылетает подобного рода окно все что находиться у него на заднем плане блокируется, а выполнение кода останавливается до того момента пока пользователь не сделает какое-то действие, например клик по кнопке «ОК» И только после продолжится выполнение кода и закрытие этого окна. Теперь по умолчанию в 1С 8.3 модальные окна не работают!
Пример кода, который не сработает у Вас в режиме без использования модальности. ========================================= &НаКлиенте Ответ = Вопрос("Удалить элемент справочника ? ", РежимДиалогаВопрос.ДаНет); Если Ответ = КодВозвратаДиалога.Да Тогда // что-то делаем КонецЕсли; КонецПроцедуры ======================================= Вы получите такую ошибку: Конечно никто не запрещает использовать модальные окна в 1С 8.3, и для того чтоб они у Вас все же работали, делаем следующие: В конфигураторе идем в свойства конфигурации, находим там «Режим использования модальности» ставим - Использовать. Все! после этого Вы сможете использовать модальные окна в 1С 8.3 Теперь пример как пойти новым путем и сделать возможным вывод диалога, без использования модальности: ===================================== Процедура УдалитьЭлемент(Команда) Оповещение = Новый ОписаниеОповещения("УдалитьЭлементВопросЗавершение", ЭтотОбъект); ТекстВопроса = "Удалить элемент справочника ?"; ПоказатьВопрос(Оповещение, ТекстВопроса, РежимДиалогаВопрос.ДаНет); КонецПроцедуры ===================================== &НаКлиенте Процедура УдалитьЭлементВопросЗавершение (Результат, ДополнительныеПараметры) Если Результат = КодВозвратаДиалога.Да Тогда Сообщить("Удален!"); КонецЕсли; КонецПроцедуры =====================================
Таким образом, процедура УдалитьЭлемент() продолжает выполняться и не ждет от пользователя каких-то действий. А в процедуре УдалитьЭлементВопросЗавершение() мы пишем код который будет выполняться после действий пользователя.
Так почему 1С решила отказаться от использования модальных окон ?
Причина тому «Web Клиент» и «Мобильное приложение» в последние время 1с активно развивает эти направления, и чтоб успешно двигаться вперед нужно решать такие проблемы как, блокировка всплывающих окон. С этими модальными окнами борются фактически все браузеры. По умолчанию в настройках, которых стоит блокировка «всплывающих окон». А почему браузеры блокируют эти окна понять не сложно, фактически вся надоедливая всплывающая реклама открывается в них, с рекламой браузеры и воюют. Надеюсь, данная статья была Вам полезной, если так пишите в комментарии.
С уважением, Богдан. | |
Просмотров: 5018 | Загрузок: 0 | Комментарии: 2 | |
Выразить благодарность - Поделиться с друзьями!
Всего комментариев: 2 | |
| |