Использование модальных окон в данном режиме запрещено! Модальные окна не работают, как быть? В конфигураторе в свойства конфигурации, есть параметр «Режим использования модальности»
Если установить Не использовать , то - принципе весь код, который после ОткрытьФормуМодально() Вопрос(), Предупреждение(), Выборов и диалогов открытия-сохранения станет работать с ошибками!
Рассмотрим пример с Использовать :
Код 1C v 8.3 &НаКлиенте
Процедура КомандаВопрос(Команда)
Ответ = Вопрос( "Ну что скажешь? " , РежимДиалогаВопрос. ДаНет) ;
Если Ответ = КодВозвратаДиалога. Да Тогда
Сообщить( "Ответили ДА!" ) ;
КонецЕсли ;
КонецПроцедуры
В режиме Предприятие получаем
Если мы поставим Режим использования модальности = Не использовать то получим ошибку: Использование модальных окон в данном режиме запрещено
Теперь код нужно писать по новому:
Код 1C v 8.3 &НаКлиенте
Процедура КомандаВопросПоНовому(Команда)
Оповещение = Новый ОписаниеОповещения( "ОтветНаВопросЗавершение" , ЭтотОбъект) ;
ТекстВопроса = "Ну что скажешь?" ;
ПоказатьВопрос( Оповещение, ТекстВопроса, РежимДиалогаВопрос. ДаНет) ;
КонецПроцедуры
&НаКлиенте
Процедура ОтветНаВопросЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат = КодВозвратаДиалога. Да Тогда
Сообщить( "Ответили ДА" ) ;
КонецЕсли ;
КонецПроцедуры
в результате
Почему 1С решила отказаться от использования модальных окон ?
В наш век развития мобильных технологий все идет к тому - что скоро все будут работать на планшетах и телефонах . 1С сделала для этого «Web Клиент» и «Мобильное приложение». И чтобы успешно двигаться вперед нужно решать такие проблемы как, блокировка всплывающих окон. Ведь даже обычные браузеры по умолчанию блокируют модальные (всплывающие) окна!
Категория:
1С Общие вопросы - Управляемые формы и Такс… Как в 1С автоматически переключать раскладку клавиатуры? Для этого можно использовать функционал следующих внешних компонент:
1. FormEx смотрите тут.
Код 1C v 7.x Сервис= СоздатьОбъект( "Сервис" ) ;
Сервис. РаскладкаКлавиатуры( "Russian" ) ;
2. Miracle смотрите тут.
3. NetaTable смотрите тут.
Код 1C v 7.x Если ( ЗагрузитьВнешнююКомпоненту( "NetaTable.dll" ) = 1 ) Тогда
РовнаяТаблица= СоздатьОбъект( "AddIn.NTable" ) ;
Иначе
Предупреждение( "Внешняя компонента AddIn.NetaTable НЕ подключена!!!" + РазделительСтрок+ "Работа программы невозможна!!!" ) ;
СтатусВозврата( 0 ) ;
Возврат
КонецЕсли ;
Процедура ПриНачалеВыбораЗначения(ИдентЭлемента,ФлагОтбора)
Если ИдентЭлемента = "Диагноз" Тогда
РовнаяТаблица. УстановитьРаскладку( 67699721 ) ;
ИначеЕсли ИдентЭлемента = "ИсточникФинансирования" Тогда
РовнаяТаблица. УстановитьРаскладку( 68748313 ) ;
КонецЕсли ;
КонецПроцедуры
А можно и без внешних компонент:
Код 1C v 7.x
Процедура СменитьРаскладку(Реж)
Если Не ( Константа. ВключатьНамЛоокВТелефонах = Истина ) Тогда
Возврат ;
КонецЕсли ;
wshShell= createObject( "wScript.shell" ) ;
Если Реж = "RUS" Тогда
wshShell. SendKeys( "^(8)" , 0 ) ;
ИначеЕсли Реж = "EN" Тогда
wshShell. SendKeys( "^(9)" , 0 ) ;
КонецЕсли ;
КонецПроцедуры
текст = СоздатьОбъект( "текст" ) ;
текст. ДобавитьСтроку( "Windows Registry Editor Version 5.00" ) ;
текст. ДобавитьСтроку( "" ) ;
текст. ДобавитьСтроку( "[HKEY_CURRENT_USER\Control Panel\Input Method\Hot Keys\00000100]" ) ;
текст. ДобавитьСтроку( """ Virtual Key"" =hex:39,00,00,00" ) ;
текст. ДобавитьСтроку( """ Key Modifiers"" =hex:02,c0,00,00" ) ;
текст. ДобавитьСтроку( """ Target IME"" =hex:09,04,09,04" ) ;
текст. ДобавитьСтроку( "" ) ;
текст. ДобавитьСтроку( "[HKEY_CURRENT_USER\Control Panel\Input Method\Hot Keys\00000101]" ) ;
текст. ДобавитьСтроку( """ Virtual Key"" =hex:38,00,00,00" ) ;
текст. ДобавитьСтроку( """ Key Modifiers"" =hex:02,c0,00,00" ) ;
текст. ДобавитьСтроку( """ Target IME"" =hex:19,04,19,04" ) ;
ИмяФайла = КаталогИБ( ) + "LangHotKey.reg" ;
Попытка
текст. Записать( ИмяФайла) ;
wshShell= createObject( "wScript.shell" ) ;
StrComand = "regedit /S " + СокрЛП( ИмяФайла) ;
wshShell. Run( StrComand, 1 ) ;
Для Сч= 1 По 50000 Цикл
КонецЦикла ;
ФС. УдалитьФайл( ИмяФайла) ;
Исключение
КонецПопытки ;
Категория:
Полезные, Универсальные Функции