- Как в общем модуле вызвать диалог Вопроса «Да.Нет»
- Вопрос в 1С 8.3 — отказываемся от модальности в управляемых формах с помощью асинхронных вызовов
- Задаем вопрос в 1С Предприятие 8.3
- 1С 8.3 Диалоги — Программист 1С Минск. Автоматизация бизнеса.
- 1С 8.3 Диалоги
- Функция Вопрос
- Синтаксис
- Параметры
- Возвращаемое значение
- Описание
- Пример использования
- 1С диалог да нет
- Работа с Диалогами в языке 1С 8.3, 8.2 (в примерах
Как в общем модуле вызвать диалог Вопроса «Да.Нет»
Подскажите плиз.
В общем модуле сделал процедуру :
Процедура ДЗР(Отказ,ДокументОбъект,ТекПользователь,ЭтаФорма) Экспорт
Если ДокументОбъект.Дата >РежимДиалогаВопрос.ДаНет;
<ОбщийМодуль.ОбщегоНазначения.Модуль(1760,17)>: Переменная не определена (КодВозвратаДиалога)
Как сделать правильно .
в модуле есть функция :
Функция ВопросДаНет(ТекстВопроса) Экспорт
#Если Клиент Тогда
КодВозврата = Вопрос(ТекстВопроса, РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Нет);
Возврат (КодВозврата = КодВозвратаДиалога.Да);
я в процедуре пишу так :
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
Режим = РежимДиалогаВопрос.ДаНет;
Ответ = Вопрос(«Закрыть без сохранения?», Режим, 0);
Если Ответ = КодВозвратаДиалога.Да Тогда
Отказ=Истина;
ЭтаФорма.Модифицированность=Ложь;
ЭтаФорма.Закрыть();
Иначе
//а тут ни фига 😉
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
Режим = РежимДиалогаВопрос.ДаНет;
Ответ = Вопрос(«Закрыть без сохранения?», Режим, 0);
Если Ответ = КодВозвратаДиалога.Да Тогда
Отказ=Истина;
ЭтаФорма.Модифицированность=Ложь;
ЭтаФорма.Закрыть();
Иначе
//а тут ни фига 😉
КонецЕсли;
КонецПроцедуры
Этот код не канает, мне надо код разместить в общем модуле.
Все оказалось намного проще :
1. В общем модуле
Функция ВопросДаНет(ТекстВопроса) Экспорт
#Если Клиент Тогда
КодВозврата = Вопрос(ТекстВопроса, РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Нет);
Возврат (КодВозврата = КодВозвратаДиалога.Да);
Процедура ДЗР(Отказ,ДокументОбъект,ТекПользователь,ЭтаФорма) Экспорт
Источник
Вопрос в 1С 8.3 — отказываемся от модальности в управляемых формах с помощью асинхронных вызовов
Когда появилась возможность публиковать 1С в интернете или устанавливать платформу 1С 8.3 на мобильные приложения, возникла проблема с модальными окнами.
Дело в том, что в мобильных приложениях (web интерфейсах) они не открываются вообще, а на настольных компьютерах в браузере они воспринимаются как всплывающие окна, и чаще всего заблокированы пользователем.
Какое-то время фирма 1С боролась с таким положением вещей и даже разработала сложный и ненадежный механизм для модальных окон. Но, например, на iPhone он до сих пор не работает (из источников на сайте 1С).
В связи с этим, фирма 1С решила вообще отказаться от модальных окон. Точнее, пока оставили такую возможность, но и появилась настройка, запрещающая полностью использовать модальность. В 1С 8.3 появилась возможность производить асинхронный вызов модальных окон.
Эту настройку можно найти в свойствах конфигурации.
Заходим в Конфигуратор, нажимаем правой кнопкой мышки на самую первую строчку и выбираем «Свойства». У кого все свойства не уместились на экране, прокручиваем до самого низа:
На данный момент существует три режима применения модальных окон:
- Использовать — позволяет использовать модальные окна в полной мере;
- Использовать с предупреждением — так же позволит появиться модальному окну, но выйдет предупреждение, что модальные окна использовать запрещено!;
- Не использовать — полностью исключает использование модальных окон.
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания — попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
Теперь разберемся, как оформить новый функционал программно.
Задаем вопрос в 1С Предприятие 8.3
Начну с того, что нужно будет делать две процедуры. Первая, где задается сам вопрос, вторая, где он обрабатывается.
Я сразу напишу пример, а в комментариях будут пояснения. Так проще и наглядней:
На этом все, приятного программирования!
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
Источник
1С 8.3 Диалоги — Программист 1С Минск. Автоматизация бизнеса.
1С 8.3 Диалоги
&НаКлиенте
Процедура МодальныеДиалогиНаКлиенте ( Команда )
Перем пВводДаты ;
Перем пВводЧисла ;
Перем пВводСтроки ;
// Вывод предупреждения пользователю (модально)
Предупреждение ( «Внимание! Константа изменена!» , 0 , «Предупреждение об изменении константы» );
// Вывод диалога вопроса с заголовком и нужными кнопками (модально)
ВашОтвет = Вопрос ( «Загрузить список банков?» , РежимДиалогаВопрос . ДаНетОтмена , 0 , КодВозвратаДиалога . Да , «Список банков 2020г.» );
Если ВашОтвет = КодВозвратаДиалога . Да Тогда
Сообщить ( «Список банков с сайта 1cnik.by загружен!» );
КонецЕсли;
// Открыть значение для работы с ним (модально)
ОткрытьЗначение ( 98.12 );
// Удаление сообщении и подача сигнала
Для Н = 1 По 5 Цикл
Сообщить ( Н );
КонецЦикла;
Предупреждение ( «Через 10 секунд все сообщения будут удалены!» , 10 );
ОчиститьСообщения ();
Сигнал ();
// Установка статуса сообщения
Сообщить ( «Внимание! Построение данного отчета временно запрещено!» , СтатусСообщения . ОченьВажное );
// Ввод даты пользователем (модально)
Если ВвестиДату ( пВводДаты , «Введите дату выгрузки информации на портал 1cnik.by» , ЧастиДаты . Дата ) = Истина Тогда
Сообщить ( «Информация выгружена на дату: » + пВводДаты );
КонецЕсли;
// Ввод значения определенного типа пользователем (модально)
Если ВвестиЗначение ( пВводЧисла , «Введите значение» , «Число» ) Тогда
Сообщить ( пВводЧисла );
КонецЕсли;
// Ввод строки пользователем (модально)
Если ВвестиСтроку ( пВводСтроки , «Введите строку» , 0 , Истина) Тогда
Сообщить ( пВводСтроки );
КонецЕсли;
// Ввод числа определенного формата пользователем (модально)
Если ВвестиЧисло ( пВводЧисла , «Введите число» , 3 , 1 ) Тогда
Сообщить ( пВводЧисла );
КонецЕсли;
&НаСервере
Процедура МодальныеДиалогиНаСервере ( Команда )
ОткрытьЗначение ( Справочники . МестаХранения . НайтиПоНаименованию ( «Основной» ));
Источник
Функция Вопрос
Функция выводит диалоговое окно, содержащее вопрос пользователю системы
Синтаксис
Функция Вопрос() имеет следующий синтаксис:
А также альтернативный англоязычный синтаксис:
Параметры
Описание параметров функции Вопрос()
Имя параметра | Тип | Описание | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Текст* | Строка | Текст вопроса пользователю (не забудьте указать вопросительный знак) | |||||||||||||||||||
Режим | Число | Числовое выражение, определяющее режим отображения диалогового окна
| |||||||||||||||||||
Строка | Строковое выражение, определяющее режим отображения диалогового окна
| ||||||||||||||||||||
Таймаут | Число | Время ожидания реакции пользователя в секундах. По истечении указанного времени диалог ввода автоматически закрывается. Если значение равно 0 (нулю) или не указано, время ожидания не ограничено. Значение по умолчанию: 0 | |||||||||||||||||||
* — обязательный параметр |
Возвращаемое значение
Описание вариантов возвращаемых значений:
1 | нажата кнопка «ОК» |
2 | нажата кнопка «Отмена» |
3 | нажата кнопка «Стоп» |
4 | нажата кнопка «Повтор» |
5 | нажата кнопка «Пропустить» |
6 | нажата кнопка «Да» |
7 | нажата кнопка «Нет» |
-1 | наступил таймаут (истекло время ожидания) |
Описание вариантов возвращаемых значений:
ОК | OK | нажата кнопка «ОК» |
Отмена | Cancel | нажата кнопка «Отмена» |
Стоп | Stop | нажата кнопка «Стоп» |
Повтор | Retry | нажата кнопка «Повтор» |
Пропустить | Ignore | нажата кнопка «Пропустить» |
Да | Yes | нажата кнопка «Да» |
Нет | No | нажата кнопка «Нет» |
Таймаут | Timeout | наступил таймаут (истекло время ожидания) |
Описание
Функция Вопрос() выводит на экран диалоговое окно, содержащее вопрос пользователю и набор кнопок для выбора. При выборе пользователем какой-либо кнопки, диалоговое окно закрывается, а ее код возвращается функцией в точку вызова.
С помощью параметра Режим можно управлять составом кнопок, доступных пользователю. Тип значения, возвращаемого функцией, также зависит от способа задания режима. Если в параметре Режим Вы указали числовой код, функция вернет числовой код кнопки. Если в параметре Режим Вы указали символьное сочетание кнопок, функция вернет символьное имя выбранной кнопки.
Пример использования
Пример кода с использованием функции Вопрос()
Источник
1С диалог да нет
Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.
Работа с Диалогами в языке 1С 8.3, 8.2 (в примерах
С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).
Подписывайтесь и получайте новые статьи и обработки на почту (не чаще 1 раза в неделю). |
Вступайте в мою группу ВКонтакте, Одноклассниках, Facebook или Google+ — самые последние обработки, исправления ошибок в 1С, всё выкладываю там в первую очередь.
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
Нажмите одну из кнопок, чтобы поделиться:
Режим = РежимДиалогаВопрос.ДаНетОтмена;
Ответ = Вопрос(«Документ будет записан», Режим, 0);
Если Ответ = КодВозвратаДиалога.Отмена Тогда
Сообщить(«Документ не проведен, заказы поставщикам не созданы»);
Возврат;
КонецЕсли;
Если Ответ = КодВозвратаДиалога.Нет Тогда
Сообщить(«Документ не проведен, заказы поставщикам не созданы»);
Возврат;
КонецЕсли;
Если Ответ = КодВозвратаДиалога.Да Тогда
Записать(Новый Структура(«РежимЗаписи», РежимЗаписиДокумента.Запись));
КонецЕсли;
Как сделать отображение вопроса пользователю? Как спровить спросить «Да+Нет», «Повтор+Отмена» и т.д.?
В 1С 7.x можно делать так:
Если Вопрос(«Вы уверены?»,»Да+Нет»)=»Да» Тогда
Источник