Меню

1с вывести диалог да нет

Как в общем модуле вызвать диалог Вопроса «Да.Нет»

Подскажите плиз.
В общем модуле сделал процедуру :

Процедура ДЗР(Отказ,ДокументОбъект,ТекПользователь,ЭтаФорма) Экспорт

Если ДокументОбъект.Дата >РежимДиалогаВопрос.ДаНет;
<ОбщийМодуль.ОбщегоНазначения.Модуль(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 ) Тогда
Сообщить ( пВводЧисла );
КонецЕсли;

&НаСервере
Процедура МодальныеДиалогиНаСервере ( Команда )

ОткрытьЗначение ( Справочники . МестаХранения . НайтиПоНаименованию ( «Основной» ));

Источник

Функция Вопрос

Функция выводит диалоговое окно, содержащее вопрос пользователю системы

Синтаксис

Функция Вопрос() имеет следующий синтаксис:

А также альтернативный англоязычный синтаксис:

Параметры

Описание параметров функции Вопрос()

Имя параметра Тип Описание
Текст* Строка Текст вопроса пользователю (не забудьте указать вопросительный знак)
Режим Число Числовое выражение, определяющее режим отображения диалогового окна

Возможные варианты значений:
Доступна только кнопка «ОК» (значение по умолчанию)
1 Доступны кнопки «ОК» и «Отмена»
2 Доступны кнопки «Стоп», «Повтор» и «Пропустить»
3 Доступны кнопки «Да», «Нет» и «Отмена»
4 Доступны кнопки «Да» и «Нет»
5 Доступны кнопки «Повтор» и «Отмена»
Строка Строковое выражение, определяющее режим отображения диалогового окна

Возможные варианты значений:
ОК OK Доступна только кнопка «ОК» (значение по умолчанию)
ОК+Отмена OK+Cancel Доступны кнопки «ОК» и «Отмена»
Стоп+Повтор+Пропустить Stop+Retry+Ignore Доступны кнопки «Стоп», «Повтор» и «Пропустить»
Да+Нет+Отмена Yes+No+Cancel Доступны кнопки «Да», «Нет» и «Отмена»
Да+Нет Yes+No Доступны кнопки «Да» и «Нет»
Повтор+Отмена Retry+Cancel Доступны кнопки «Повтор» и «Отмена»
Таймаут Число Время ожидания реакции пользователя в секундах. По истечении указанного времени диалог ввода автоматически закрывается. Если значение равно 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 можно делать так:

Если Вопрос(«Вы уверены?»,»Да+Нет»)=»Да» Тогда

Источник