1c отказ от модальности

Чтобы быстро исправить ошибку, просто измените режим модальности в свойствах конфигурации. Для этого войдите в систему в режиме конфигуратора, откройте конфигурацию: В открытой конфигурации вызовите контекстное меню, щелкнув правой кнопкой мыши по корню конфигурации, выберите пункт Свойства: Получите видеоуроки по 1С бесплатно: Откройте свойства конфигурации, где в подвале находится интересующее нас свойство - "Использовать модальность режима", выберите "Использовать": После этого сохраняем и применяем изменения, нажав клавишу "F7".

Правильный способ решения этой проблемы - изменение конфигурации или front-end обработки в соответствии с новыми требованиями. Предупреждения, вопросы, диалоги и другие модальные окна должны быть переписаны.

Встроенные утверждения, которые вызывали модальные окна, необходимо заменить избыточными функциями. В этом случае появился специализированный объект DescriptionOperations.

Встроенные утверждения необходимо заменить на: Добавить аналогичную процедуру на клиенте, которая будет выполняться при вводе значения пользователем: Формы, разработанные внутри конфигурации, открываются точно таким же образом. Просто замените метод "OpenFormModal" на метод "OpenForm", прописав описание уведомления и необходимую для него новую процедуру.

Для того чтобы закрыть доступ открывающейся форме к вызываемой форме, достаточно указать в свойстве формы "РежимОткрытияОкна" значение "Блокировать окно владельца": Другие статьи по 1С: Если вы начинаете изучать программирование 1С, рекомендуем наш бесплатный курс, не забудьте подписаться на YouTube - новые видео выкладываются регулярно: К сожалению, мы физически не можем бесплатно консультировать всех желающих, но наша команда будет рада оказать услуги по внедрению и сопровождению 1С.

Мы работаем в Москве и области. Вступайте в мою группу "Помощник программиста". В ней мы обсуждаем программирование в 1С. Работаем с Диалогами в 1С 8. Подпишитесь и получайте новые статьи и обработки на почту не чаще одного раза в неделю. Как помочь сайту: расскажите о нем своим друзьям и коллегам. Сделайте это один раз, и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня остается на его поддержку.

Нажмите одну из кнопок, чтобы поделиться: В целом, цель отказа от модальности заключается в замене модальных методов их асинхронными аналогами.

Старая процедура, которая открывала модальное окно и обрабатывала полученные данные, выглядела бы следующим образом: В новой версии вы установите свойствоOpenMode для FormText, который вы хотите открыть в блокирующем окне, в LockBlockAllInterface.

Это сделает его модальным.

Это сделает его модальным для пользователя: И в программном коде будет две процедуры вместо одной, как раньше: В первой процедуре мы открываем форму. В последнем параметре мы передаем расположение второй процедуры, которая будет выполнена после того, как пользователь закроет окно.

В данном случае процедура находится в том же модуле, но может быть и в другом. Когда пользователь вводит данные и закрывает форму, они будут обработаны во второй указанной нами процедуре, куда мы просто перенесли "старый" код для обработки данных. Помимо форм, которые разработчик может открывать в модальном режиме по своему желанию, существуют встроенные методы языка, которые всегда открывали модальные формы для ввода или выбора данных, независимо от желания разработчика.

Например, метод InputValue. Использовать эти методы в немодальном режиме еще проще. Для всех этих методов можно также использовать автономные методы, поэтому при их вызове необходимо также указать местоположение процедуры, которая будет выполнена, когда пользователь закроет окно. Например, ниже показано, как использовать старый метод EnterValue и его новый метод-дублер ShowValue : Q8.

В общем случае эта переменная может быть использована позже в той же процедуре: Другой случай. Например, преобразуемый вами фрагмент содержит две ветви выполнения, одна из которых включает модальный код, а другая - нет. Платформа преобразует такой фрагмент в две процедуры: Однако если вы конвертируете код, который находится, например, в модуле управляемого приложения, вы не сможете выполнить полностью автоматическое преобразование: Причина в том, что глобальный контекст не имеет свойства, позволяющего ссылаться на сам объект ThisObject.

Это означает, что процедура, обрабатывающая оповещение, не может быть размещена прямо здесь, в модуле управляемого приложения. Вы можете, например, поместить ее в общий модуль. Это нужно сделать вручную.

Навигация

thoughts on “1c отказ от модальности

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

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