Бесплатная консультация адвоката: кому положена и как получить? Вопросы для анкеты. Виды и примеры

Самый простой способ - обычная страница, на которой перечислены вопросы и ответы на них. Как добавить на сайт страницу «Вопросы и ответы»:

  1. В приложении «Сайт» откройте раздел «Структура» и убедитесь, что в нем присутствует строка с правилом для приложения «Сайт». Если такой строки нет, добавьте правило для приложения «Сайт».
  2. Перейдите в раздел «Страницы » и создайте черновик новой страницы. В тексте страницы перечислите вопросы, которые вы хотите осветить, и ответы на них. Оформите страницу, как вам нужно.
  3. Опубликуйте черновик.
Страницы можно создавать также с помощью других приложений, а не только с помощью «Сайта», например: «Блог», «Фото», Shop-Script, «Поддержка», «Хаб». Для публикации страницы с помощью этих приложений необходимо в 1-м шаге проверить наличие строки с правилом для нужного приложения, которое вы хотите использовать вместо «Сайта» для публикации страницы.

Способ 2: приложение «Хаб»

Более функциональный вариант создания раздела вопросов и ответов - это интерактивный раздел сайта, в котором посетители сайта могут задавать вопросы, а другие посетители (а также вы) могут отвечать на них. Вы сможете создать полноценный центр поддержки со статьями, вопросами, ответами, комментариями и возможностью оценивать статьи и комментарии друг друга. Все эти возможности предоставляет приложение «Хаб »:

  1. Установите приложение «Хаб» с помощью «Инсталлера».
  2. Убедитесь, что в разделе «Структура» приложения «Сайт» присутствует строка с правилом для «Хаба». Если такого правила нет, добавьте его.
  3. В бекенде «Хаба» создавайте новые темы-статьи с помощью кнопки Новая тема .
  4. В настройках хаба включите возможность добавления комментариев к статьям.
  5. В настройках хаба включите возможность добавления вопросов и обсуждений посетителями сайта, а также возможность оценивать ответы и комментарии друг друга.

Способ 3: приложение «Поддержка»

Приложение «Поддержка » предоставляет возможность сохранить ответы на часто возникающие вопросы в виде статей, которые вы можете использовать в ответах на запросы клиентов. Эти же самые ответы на частые вопросы можно одновременно сделать доступными для всех посетителей сайта - в виде раздела со статьями, разбитыми на категории.

  1. Установите приложение «Поддержка» с помощью «Инсталлера».
  2. Убедитесь, что в разделе «Структура» приложения «Сайт» присутствует строка с правилом для «Поддержки». Если такого правила нет, добавьте его.
  3. В бекенде приложения в разделе «ЧАВО » создайте статьи с ответами на часто задаваемые вопросы. Если статей много, распределите их по категориям. В свойствах статей включите флажок доступности на сайте.

Пожалуйста, когда вы задаете вопрос, придерживайтесь нескольких простых правил:

Первое

Самое простой способ задать вопрос и получить развернутый ответ — телефонный звонок. Для этого вы можете либо набрать сами на телефон в городе Москва +7-495-99-7-88-41 или заказать обратный звонок

Второе

— Что приборы?
— 15!
— А что 15?
— А «Что приборы»?

Очень часто люди задают какой-то вопрос и думают, что их собеседник имеет точно такие же представления о предмете вопроса.

Пожалуйста, если ваш вопрос специфичный, задавайте его более развернуто с указанием конкретных данных, цифр и т.д. (если таковые имеются в вопросе).

Третье

Пожалуйста, не бойтесь представляться. Вы хотите задать вопрос — мы с удовольствием хотим на него ответить. Нам приятно сразу называть вас по имени.

Все данные, которые передаются через форму «Задать вопрос » передаются по шифрованному каналу, не подлежат разглашению и находятся под защитой аппаратных и программных средств для реализации 152-ФЗ «О защите персональных данных».

Анкета – гибкий и одновременно с этим тонкий инструмент для сбора первичных количественных данных (статистики). Для того, чтобы опрос получился качественным и привел к достоверным результатам, необходимо сделать вопросы для анкеты, которые бы не только были заданы в нужном порядке, но позволили решить поставленные задачи. Для этого нужно как минимум обладать определенными знаниями, которыми мы и поделимся с вами в этой статье.

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

Виды вопросов в анкете

Все вопросы анкеты подразделяются на открытые, закрытые и полуоткрытые.

Примеры закрытых вопросов для анкеты

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

1. Выбрать наиболее подходящий ответ среди предложенных (единичный выбор):

2. Оценить свойства в данном случае предоставляемого сервиса (шкала):

3. Оценить параметры товаров (матрица):

4. Выбрать вариант ответа из предложенных (выпадающий список):

5. Предоставить возможность выбрать несколько вариантов ответа (множественный выбор):

Примеры полузакрытых вопросов в анкете

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

Примеры открытых вопросов для анкеты

Открытый же вопрос предполагает свободный ответ респондента, т.е. участник опроса сам формулирует ответ.

Такой вид вопроса в анкете необходимо задать, когда требуется выявить, например, мотивы, которыми руководствуется потребитель при совершении покупки. Также в открытом вопросе можно спросить, каково отношение респондента к рассматриваемому товару, проблеме, работе ваших сотрудников и пр.Обратную связь и комментарии к работе или прошедшим мероприятиям так же удобно получать именно таким видом вопроса.

Какие вопросы задают в анкете, какие вопросы на анкету вам также пригодятся?

Естественно, какие вопросы вы включите в свою анкету, остается на ваше усмотрение. Однако есть общие принципы, которыми руководствуются социологи, включая при составлении анкеты нужные виды вопросов.

Так, если вы не знаете, какие вопросы задать в анкете, просто выпишите для себя список вопросов для анкеты (все виды, которые мы описали выше) и подумайте, насколько этот набор соответствует целям и задачам вашего исследования.

Например, блиц-опросы могут состоять из одного вопроса, где пользователю предлагается выбрать один вариант ответа.

Пример:

А для более крупного исследования могут понадобиться все возможные виды вопросов.

При этом паспортичка (социально-демографический блок, в котором вы запрашиваете пол, возраст, место проживания респондента, уровень его дохода и пр.), как правило, располагается в конце анкеты. Более простые вопросы – в начале. Те, над которыми нужно подумать, — ближе к середине.

Если в вашей анкете нечему и некому давать оценку, вам скорее всего не понадобится составлять матрицу.

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

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

Было дело, задумался о том, чтобы на Wordpress сайте сделать раздел "Вопрос-ответ". Для чего он нужен? Ну, например, чтобы посетители не писали на почту с вопросами (если этих вопросов очень много), а задавали их в этом разделе. Или самому выносить самые интересные часто-задаваемые вопросы в отдельную категорию.

Еще можно в такой раздел забрасывать НЧ-запросы (собирая больше трафика) по которым попадают на сайт, потому как вопросы могут быть несерьезными, или которые не тянут на полноценную статью.

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

На форуме Webmasters.ru была такая тема. Искать сейчас эту ветку не буду. Там человек ответил, что можно реализовать это дело с помощью плагина User Submitted Posts на WordPress-е.

На одном своем сайте я реализовал данную систему вопросов-ответов и она хорошо себя зарекомендовала . Поэтому решил еще на паре сайтов сделать и параллельно написать эту подробную статью в виде инструкции.

Требования к разделу с вопросами и ответами

Для начала определимся, какие задачи перед нами стоят:

  1. Любой незарегистрированный посетитель может добавить вопрос на сайт;
  2. Не только админ, но и любой желающий может ответить на вопрос;
  3. Посты от пользователей должны попадать в БД сайта как нормальные статьи, в отдельный раздел (или основные разделы по желанию админа);
  4. Посты должны попадать на модерацию;
  5. Чтобы пользователь мог добавить картинку к посту;
  6. Вопросы НЕ должны попадать в виде анонса на главную страницу, чтобы не засорять её;
  7. Нужна возможность вывода блока последних, или самых обсуждаемых вопросов, в каком-либо месте на сайте.

Если у вас сайт на WordPress (а большинство вебмастеров используют именно эту CMS для своих статейников), то реализовать это всё можно с помощью плагина и некоторых ручных правок.

Реализация с помощью плагина User Submitted Posts + дополнительные функции WP

Я думаю любой сможет добавить данный плагин на WordPress, установить и активировать. Поэтому останавливаться на этом не буду. Делаем это и идем дальше.

Про его настройки я напишу чуть ниже , т.к. там действительно их много и есть свои нюансы. Сами туда пока не лезьте, то убьет высокое напряжение!

Создаем отдельные страницы и разделы

Покажу на примере своего блога, чтобы вам далеко не ходить , а мне, чтобы не палить другой какой-то свой сайт.

Шаг 1. Добавляем новую (новые) категорию, в которую будут попадать вопросы, и, соответственно, выводится в этом разделе.

Но я создам не просто категорию, а сделаю одну основную, а в ней подразделы. На случай, если вопросы будут разделены на какие-то тематические ветки.

Пример, создаю основной раздел «Форум» (forums). Можно назвать «Вопрос-ответ». А подкатегории создал такие: «Партнерские программы» (partnerskie-programmy) и «Статейные сайты» (stateiniki).

Читайте также: Адаптация шаблона сайта под мобильные устройства


После создания рубрик, сразу же посмотрите их ID (наведя на ссылку, внизу браузера будет показываться, вот СКРИН) и запишите себе. У меня это 78, 79, 80.

Шаг 2. Добавляем новую страницу для формы (я её назвал «Задайте вопрос»),
и вставляем туда тег .


Шаг 3. Создаем новую страницу, на которую пользователь будет перенаправлен после добавления поста. Она не обязательная (можно перенаправить в общий раздел), но я сделаю для удобства юзера. Также, если у вас стоит плагин All in One SEO Pack, то ставим для этой страницы запрет от индексации.


Настраиваем плагин User Submitted Posts

Надо убрать всё лишнее. Заходим в настройки плагина, разворачиваем вкладку «Plugin Settings» и делаем все как у меня скриншотах.


Если на скриншотах вы не нашли некоторых полей, то значит их и не нужно настраивать, или не обязательно.



Можно разрешить добавление картинок к добавляемым постам и сделать соответствующие настройки, а можно не заморачиваться.


Разворачиваем настройки для выбора категорий и отмечаем те, в которые вы разрешаем добавлять вопросы пользователям.


Давайте перейдем после этого на страницу добавления вопросов https://сайт/forum/vopros и посмотрим что получилось.



Я сделал рамку вокруг текстовой области, добавив в style.css стиль:

Wp-editor-container { border: 1px solid #ddd;}

Уже неплохо, но есть еще простор для творчества. Например, изменить надпись на кнопке, которая довольно странная по-умолчанию .

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


Убираем вывод постов из пользовательских рубрик на главной

Чтобы посты от пользователей не показывались на главной, в файл functions.php добавляем этот код:

// убираем вывод постов из этих рубрик на главной function hidecategory($query) { if ($query->is_home) { $query->set("cat","-78, -79, -80"); } return $query; } add_filter("pre_get_posts", "hidecategory");

Если не хотим, чтоб они также не попадали в RSS, то тогда вставляем этот код (вместо того, что выше):

// убираем вывод постов из этих рубрик на главной и в RSS function hidecategory($query) { if ($query->is_feed || ($query->is_home && !(is_paged()))) { $query->set("cat","-78, -79, -80"); } return $query; } add_filter("pre_get_posts","hidecategory");

Вступление

Для чего вообще стоит отказываться от модальности и, например, Вопрос заменять на ПоказатьВопрос? Всё дело в том, что больше года назад 1С-ники объявили « войну» модальным окнам. Исключение составляют только те, у кого самописная конфигурация, работа с которой не будет вестись на IPad, в режиме сервиса или с помощью веб-клиента. А если у вас обычная Бухгалтерия 3.0 и вы не собираетесь бухгалтеру давать доступ к базе через IPad, всё равно вам придётся заменить все модальные методы на немодальные, т.к. рано или поздно «Режим использования модальности» станет «Не использовать»!

Что же думает по предлагаемому вопросу специалисты фирмы 1С? Для начала можно посмотреть на тему «Вопрос в обработчике формы ПередЗакрытием»:

Особенность диалога с пользователем в этом (и многих других) обработчиках заключается в том, что в зависимости от реакции пользователя принимается решение: продолжать дальнейшие действия, или отказаться от них. Для этого используется параметр процедуры Отказ. При одном ответе пользователя мы отказываемся от продолжения (Отказ = Истина). При другом ответе пользователя - продолжаем дальнейшие действия.

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

Поэтому мы действуем в два приёма:

В первый раз безусловно отменяем дальнейшие действия (Отказ = Истина) и выводим вопрос пользователю;

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

Проблема заключается в том, что обработчик ПередЗакрытием будет выполнен два раза. И чтобы отличить первое его выполнение от второго (когда ответ пользователя уже известен) мы используем клиентскую переменную ВыполняетсяЗакрытие в качестве флага.

В первый проход её значение равно Ложь, и это значит, что нужно отказаться от закрытия и задать вопрос. Во второй проход её значение равно Истина, и это значит, что вопрос задавать не надо:

&НаКлиенте Перем ВыполняетсяЗакрытие; &НаКлиенте Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка) Если Не ВыполняетсяЗакрытие Тогда Отказ=Истина; ПоказатьВопрос(Новый ОписаниеОповещения("ПередЗакрытиемЗавершение", ЭтотОбъект), "Закрывать форму?", РежимДиалогаВопрос.ДаНет); КонецЕсли; КонецПроцедуры &НаКлиенте Процедура ПередЗакрытиемЗавершение(РезультатВопроса, ПараметрыЗаписи) Экспорт Если РезультатВопроса = КодВозвратаДиалога.Да Тогда ВыполняетсяЗакрытие = Истина; Закрыть(); КонецЕсли; КонецПроцедуры

Этот пример схож с нашей темой и очень часто на него ссылаются в теме «ПоказатьВопрос в обработчике формы ПередЗаписью»:

В обработчике события формы ПередЗаписью также может возникнуть потребность задать вопрос. Как и в предыдущем примере. Однако здесь вопрос так просто не решается. Отличие заключается в следующем.

В предыдущем примере, оказываясь в обработчике ПередЗакрытием, мы однозначно знали действие, которое должно быть выполнено. Это закрытие формы. Поэтому в обработке оповещения мы смело писали Закрыть().

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

Поэтому тут можно предложить три варианта, но все они, к сожалению, обладают недостатками:

* Изменить логику прикладного решения так, чтобы не было диалога с пользователем в этом обработчике. Это не всегда возможно;

* В обработке оповещения с помощью собственной блокирующей формы задавать пользователю развернутый вопрос, предполагающий точное описание дальнейших действий: Отказаться?, Только записать?, Записать и закрыть? Это может выглядеть не очень красиво, ведь пользователь уже нажал "Записать и закрыть", а его опять об этом спрашивают;

* Не использовать стандартные команды формы Записать, "Записать и закрыть". Вместо них создать собственные команды, в которых и выполнять необходимые алгоритмы. Создание собственных команд потребует дополнительных трудозатрат.

Задача сложная, поэтому разработчики при задании вопроса ПередЗаписью, в первую очередь рекомендуют отказаться от этой идеи…

Дальше предлагают задать вопрос с множеством вариантов: «Отказаться, Только записать, Записать и закрыть». Помимо описанного минуса (пользователь и так уже заранее выбрать вариант, а его тут ещё раз спрашивают) есть ещё: в ПередЗаписью программа могла попасть и из «Отмена проведения». Т.е. надо добавлять ещё кнопку? Мне кажется этот вариант некрасивым.

Остаётся только третий вариант с использованием нестандартных команд формы. Его мы и будем реализовывать. И не стандартной командой у нас будет только «Провести и закрыть». Как и в примере к теме «Вопрос в обработчике формы ПередЗакрытием», нам придётся при первом заходе давать Отказ = Истина, и только во втором заходе выполнять реальную запись. И ещё нам где-то нужно будет запоминать, что это именно второй заход в процедуру «ПередЗаписью». 1С-ники предложили это сделать через общую клиентскую переменную, в рассматриваемом примере это можно сделать через ПараметрыЗаписи.

Пример использования ПоказатьВопрос в обработчике формы ПередЗаписью

1. Сначала нам нужно убрать стандартную команду «Провести и закрыть» из формы и создать свою команду и кнопку.

1.А. Если у вас уже кнопка «Провести и закрыть» не типовая - вам повезло, можете смело приступать к п. 2.

1.Б. Стандартная команда убирается через Свойства формы - Состав команд - Снимаем ненужную команду. Как добавлять команду и кнопку на форму, я не буду описывать, только напомню, что кнопку «Провести и закрыть» необходимо сделать кнопкой по умолчанию.

1.В. Теперь вариант сложнее в реализации, но проще в сопровождении типовой конфигурации. Практически в каждом обновлении Бухгалтерии программисты умудряются изменить 10-50% форм документов, поэтому в типовой конфигурации для сопровождения проще кодом убрать стандартную кнопку и добавить свою команду и кнопку.

Для начала в обработчике формы «ПриОткрытии» необходимо убрать стандартную кнопку «ПровестиИЗакрыть».

Элементы.ФормаПровестиИЗакрыть.Видимость = Ложь;

Замечание: у пользователя с большими ограничениями к документу в платформе 8.3.7 вообще не появляется кнопка "Провести и закрыть". Поэтому для платформы 8.3.7 корректней писать код:

Если Элементы.Найти("ФормаПровестиИЗакрыть")<>Неопределено Тогда Элементы.ФормаПровестиИЗакрыть.Видимость = Ложь; КонецЕсли;

НоваяКоманда1 = ЭтаФорма.Команды.Добавить("ПровестиИЗакрыть2"); НоваяКоманда1.Действие = "ПровестиИЗакрыть"; НовыйЭлемент = Элементы.Добавить("ФормаПровестиИЗакрыть2" , Тип("КнопкаФормы"), Элементы.ФормаКоманднаяПанель); НовыйЭлемент.Заголовок = "Провести и закрыть"; НовыйЭлемент.ИмяКоманды = НоваяКоманда1.Имя; НовыйЭлемент.КнопкаПоУмолчанию = Истина; Элементы.Переместить(НовыйЭлемент,НовыйЭлемент.Родитель,Элементы.ГруппаКнопкиКоманднойПанели);

Соответственно в этом коде заложены типовые наименования для ФормаДокументаОбщая документа «Поступление (акты, накладные)» (например Элементы.ГруппаКнопкиКоманднойПанели), которые в каждом конкретном случае необходимо будет менять на свои.

&НаКлиенте Процедура ПровестиИЗакрыть(Команда) ПараметрыЗаписи = Новый Структура(); ПараметрыЗаписи.Вставить("РежимЗаписи", ПредопределенноеЗначение("РежимЗаписиДокумента.Проведение")); ПараметрыЗаписи.Вставить("Закрыть", Истина); Если Записать(ПараметрыЗаписи) Тогда Закрыть(); КонецЕсли; КонецПроцедуры

Как я писал выше, мы будем обмениваться информацией между нашими процедурами через ПараметрыЗаписи. В ПередЗаписью мы не знаем, нажали мы «Записать», «Провести» или «Провести и закрыть», для этого в параметрах мы передаём параметр Закрыть. Если в параметрах записи есть этот параметр, значит надо закрыть форму после успешной записи.

3. Допустим, нам надо задавать вопрос не всегда, а только когда документ проведён. Теперь мы в процедуру «ПередЗаписью» добавляем (если эта процедура не существовала - создаём) новый код:

Если Не ПараметрыЗаписи.Свойство("ВопросЗадан") И Объект.Проведен Тогда Отказ = Истина; Оповещение = Новый ОписаниеОповещения("ПоказатьВопросЗавершение", ЭтаФорма, ПараметрыЗаписи); ТекстВопроса = "Данный документ уже проведён. Вы действительно хотите перепровести или отменить проведение документа?"; ПоказатьВопрос(Оповещение, ТекстВопроса, РежимДиалогаВопрос.ДаНет, 20, КодВозвратаДиалога.Нет, КодВозвратаДиалога.Нет); КонецЕсли;

Свойство «ВопросЗадан» мы будем заполнять в оповещении, чтобы узнавать, когда в процедуру «ПередЗаписью» мы зашли во второй раз (в примере 1С в процедуре ПередЗакрытием это делалось через переменную «ВыполняетсяЗакрытие»). Другими словами: в структуре «ПараметрыЗаписи» есть свойство «ВопросЗадан», значит, вопрос уже задавали, и пользователь уже ответил утвердительно, если же свойства нет, значит, в процедуре «ПередЗаписью» мы первый раз.

После метода ПоказатьВопрос можно ещё написать «Возврат», если у вас есть ещё какой-то код в процедуре «ПередЗаписью», выполняемый после вопроса.

4. Создаём процедуру «ПоказатьВопросЗавершение», в которую программа будет входить, когда пользователь ответит на вопрос (или произошёл таймаут).

&НаКлиенте Процедура ПоказатьВопросЗавершение(Результат, ПараметрыЗаписи) Экспорт Если Результат = КодВозвратаДиалога.Да Тогда ПараметрыЗаписи.Вставить("ВопросЗадан", Истина); Если Записать(ПараметрыЗаписи) И ПараметрыЗаписи.Свойство("Закрыть") Тогда Закрыть(); КонецЕсли; КонецЕсли; КонецПроцедуры

В этой процедуре мы и используем переданное ранее свойство «Закрыть». Если свойства нет, значит, закрывать не надо.

5. Теперь нам надо обработать нажатие «крестика» пользователем. Для этого нам нужна обработчик формы «ПередЗакрытием». Если его нет, то его можно создать на форме «ручками» или программно в обработчике «ПриСозданииНаСервере» :

ЭтаФорма.УстановитьДействие("ПередЗакрытием","ПередЗакрытием");

&НаКлиенте Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка) Если Модифицированность Тогда Отказ = Истина; ТекстВопроса = НСтр("ru = "Данные были изменены. Сохранить изменения?""); Оповещение = Новый ОписаниеОповещения("ВопросПередЗакрытиемЗавершение", ЭтотОбъект); ПоказатьВопрос(Оповещение, ТекстВопроса, РежимДиалогаВопрос.ДаНетОтмена); КонецЕсли; КонецПроцедуры &НаКлиенте Процедура ВопросПередЗакрытиемЗавершение(Результат, ДополнительныеПараметры) Экспорт Если Результат = КодВозвратаДиалога.Да Тогда ПараметрыЗаписи = Новый Структура(); ПараметрыЗаписи.Вставить("Закрыть", Истина); Если Записать(ПараметрыЗаписи) Тогда Закрыть(); КонецЕсли; ИначеЕсли Результат = КодВозвратаДиалога.Нет Тогда Модифицированность = Ложь; Закрыть(); КонецЕсли; КонецПроцедуры

Получается, что пользователь когда нажал крестик ответит сначала на вопрос «Сохранить изменения?» и потом задастся ещё вопрос, который у вас прописан «ПередЗаписью». Если вас это не устраивает, можно передать параметр «ВопросЗадан» в «ВопросПередЗакрытиемЗавершение» и тогда второго вопроса не будет.

Вопрос против ПоказатьВопрос

А как бы мы решили задачу, если бы можно было использовать модальные вызовы? А очень просто, мы бы написали в процедуре «ПередЗаписью» следующий код:

Если Объект.Проведен Тогда ТекстВопроса = "Данный документ уже проведён. Вы действительно хотите перепровести или отменить проведение документа?"; Ответ = Вопрос(ТекстВопроса,РежимДиалогаВопрос.ДаНет,20,КодВозвратаДиалога.Нет,КодВозвратаДиалога.Нет); Если Не Ответ=КодВозвратаДиалога.Да Тогда Отказ = Истина; Возврат; КонецЕсли; КонецЕсли;

И всё! Никаких «заморочек» типа «А что пользователь нажал: Провести или ПровестиИЗакрыть?». И ещё надо будет отработать нажатие крестика в «ПередЗакрытием».

Изначально похожий код я реализовывал у себя в Бухгалтерии предприятия 3.0. Задача заключалась в следующем: при определённом наборе условий (это не одно условие Объект.Проведен, как указано в примере в данной публикации ) из ФормаДокументаОбщая документа ПоступлениеТоваровУслуг спрашивать дополнительно подтверждения его действий. Ниже перечислены нюансы, которые мне не пришлось обходить, т.к. не подпадали под задачу.

В обработчик формы «ПередЗаписью» программа не заходит, если: 1) пользователь нажал на кнопку «Пометить на удаление / снять пометку»; 2) если пользователь нажал на не проведённом документе кнопку «ДТ/КТ». И это не всё: если вы на форме документа создали всё, как я написал, и пользователь из формы списка перепроведёт документ - то никаких вопросов программа ему не задаст. Необходимо все интересующие вас кнопки на форме списка заменять на свои и отслеживать действия пользователя. Ещё у документа может быть не одна форма документа, а несколько (например, документ ПоступлениеТоваровУслуг в БП 3.0, где 3 формы: общая, товары и услуги). В каждой форме документа надо написать много кода…

В связи с кучей нюансов остаётся актуальным первый совет от 1С (который сначала, без подробного вникания в задачу, может вызвать улыбку): «Изменить логику прикладного решения так, чтобы не было диалога с пользователем в этом обработчике».

  • Сергей Савенков

    какой то “куцый” обзор… как будто спешили куда то