Как задавать правильные вопросы. Предоставление бесплатной консультации юриста по трудовому праву

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

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

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

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

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

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

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

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

Было дело, задумался о том, чтобы на 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. Закрытый. Это самый простой вариант, когда нужно получить минимум информации. Такой вид вопросов отличается тем, что ответ на него может содержаться в одном или двух словах. Чаще всего это «да», «нет», «не знаю». Информации получится узнать минимум, да и ее достоверность проверить не выйдет. Придется задавать какие-либо дополнительные вопросы человеку для того, чтобы или информации больше получить, или определить врет он, или говорит правду. Если речь идет об общении между незнакомыми людьми, то очень часто предложения закрытого характера будут накалять обстановку, поскольку придется искать либо дополнительные темы для разговоров, либо какие-то точки соприкосновения.
  2. Открытый. Отличается от предыдущего тем, что подразумевает получение полного и развернутого ответа от собеседника. На такой вопрос нельзя однозначно ответить «да» или «нет». Нужно дать определенную информацию человеку, которая будет максимально полной, ну а сам ответ достаточной длинным и связным. Этот вид более интересный, поскольку дает возможность получить максимум информации.

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

Как правильно нужно задавать вопросы?

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

Итак, рассмотрим основные методы, благодаря которым можно получить желаемый ответ:

  1. Ни в коем случае не нужно начинать вопрос с частицы «не». С высокой долей вероятности человек, который является вашим собеседником, ответит на него отрицательно. Аргументировать это просто – фактически за него уже создан ответ, ему остается только подтвердить предположение. Соответственно стоит избегать вопросов: «не хотели бы вы?», «не желаете ли вы?», «не поможете ли вы?».
  2. Если есть необходимость получить четкий положительный ответ, то не спешите с основным вопросом. Перед тем как запросить у человека интересующую вас информацию, задайте ему три легких вопроса, ответ на который будет однозначно положительным, звучит как «да». На четвертый вопрос человек ответит не столько по инерции, сколько осознанно, и ответит положительно. Этот опыт проводился многими психологами и очень часто применяется на несговорчивых людях, которые могут достаточно сложно идти на контакт, доказывая свою точку зрения.
  3. Правильно подходите к созданию вопроса-просьбы. Практика показывает, что человеку неудобно дважды подряд отвечать отрицательно тому, кто задавал вопрос и попросил помощи. Поэтому если есть необходимость что-то попросить и получить на это положительный ответ либо разрешение, то оставьте основной вопрос на потом. А вот первый вопрос сделайте похожим. Так очень часто делают люди, которые хотят попросить денег взаймы. Как это выглядит? Первоначально надо спросить у человека, согласится ли он вам одолжить, например, 10000 рублей. В это же время вы предполагаете, что последует отрицание. После получения этого отрицательного ответа спросите, согласится ли человек одолжить вам 3000 рублей. Сумма в сравнении с первой кажется намного меньше, а человеку два раза подряд отказывать вам будет просто неудобно. Как раз по этой причине с высокой долей вероятности вы получите положительный ответ.
  4. Выбор без выбора. Эта методика также достаточно известна, и подразумевает под собой постановку вопроса таким образом, чтобы любой из ответов, который дает вам человек, был удобен для вас. Например: «Ты хочешь увидеться в понедельник утром или во вторник вечером?». По факту вы даете человеку возможность выбрать, и он может располагать между имеющимися вариантами. На самом же деле в вопрос вы можете вставить те факты, которые удобны для вас в любом случае. Соответственно, в предложении, которое указано выше, учтено только то время, которое максимально удобно для вас. Не желаемый результат можно получить только в случае, если человеку действительно в корне не подходят оба предложенные вам варианта.
  5. Вопрос-провокация. Этот метод также является достаточно известным. Фактически он является определенной техникой манипулирования. Базируется на том, что человек по факту не сможет отказать, ведь он либо выглядеть будет не в лучшем свете, либо покажет свою определенную слабость. Как раз этим приемом пользуются люди, которым присуще манипулирование с желанием добиться нужного эффекта. К сожалению, немало количество людей такие вопросы легко вычисляют, отвечая на них соответствующим образом.

Нужно ли планировать вопросы заранее?

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

  1. Цель беседы и ее итог. Перед тем как задавать вопросы человеку, необходимо понимать, что в итоге вы хотите узнать или получить, какой результат для себя желаете вынести?
  2. Нужно формулировать достаточно простые и краткие вопросы. Лучше задать пару дополнительных, чем запутать человека одним длинным предложением.
  3. Постарайтесь заранее один и тот же вопрос сформулировать несколькими вариантами. Исходя из разговора можно понять, какой из предполагаемых лучше всего задавать человеку. Один и тот же вопрос может иметь три или четыре варианта своего звучания, соответственно и ответы на него можно получить разные.
  4. Не забывайте задавать дополнительные уточняющие вопросы. Собеседнику это укажет на то, что у вас есть желание узнать как можно больше информации, соответственно такой показатель вызовет уважение. Для вас это возможность получить максимум необходимой информации, ради которой и затевался разговор.
  5. В большинстве случаев старайтесь задавать вопрос, начиная со слова «почему?». Так вы подталкиваете человека к размышлению. Он задумается, почему и по каким причинам произошел тот или иной фактор.
  6. Будьте готовы самостоятельно отвечать на вопросы. Если это не просто обычная беседа, а желание получить как можно больше информации, то ожидайте, что шквал вопросов будет обрушиваться и на вас. Естественно, смотрите заранее, какие темы для вас приемлемо обсуждать, а от какой тематики лучше отказаться.

Какие основные ошибки бывают во время создания вопросов?

  1. Предложение формулируется таким образом, что в нем заранее заложен ответ. Это тактика будет оправдана только в случае, если в предложении сформулирован нужный вам ответ. Но фактически такой прием является манипулированием, поэтому получить личное мнение человека здесь будет намного тяжелее, ведь ему проще согласиться с вами.
  2. Постоянное использование только лишь закрытых вопросов. Вы самостоятельно можете преградить человеку путь к тому, чтобы он развивал свою мысль и выдал максимум информации. Это далеко не самая лучшая стратегия, и, как правило, результат она дает неважный.
  3. Создание давления в вопросе, который задается. Здесь можно говорить о повышении голоса либо моральном давлении на оппонента. Используются это только в случае, если необходимо признание вины собеседником. Естественно, производя определенный вид защиты, он согласится с тем предположением, которое вы высказывали.
  4. Не понять ответ, но сделать вид, что все ясно. Отсюда вытекает только одна неясность – зачем необходимо было задавать вопрос, если ответ не был понят. Лучше переспросить информацию два или три раза, переформулировать вопрос полностью. Только так можно понять, какой именно ответ подразумевался человеком, с которым вы общаетесь.

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

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

Для вас имеется возможно получить юридическую консультацию от опытного юриста не выходя из дома. Для этого достаточно задать вопрос онлайн через форму обратной связи. Трудовое право достаточно сложное для понимания обычных людей, не имеющих отношения к юриспруденции. Трудовые споры достаточно разнообразны и запутанны. Иногда каждая из сторон (работник(и) и работодатель) действительно считают, что каждый прав. Бывают и такие ситуации, когда люди пытаются получить выгоду, нарушая при этом трудовое право обдуманно в процессе достижения своих целей. И не всегда это работодатель. Иногда трудовое право нарушают по незнанию непреднамеренно. В любом случае очень часто люди, чтобы решить свои проблемы по трудовым вопросам обращаются к юристам.

На нашем сайте консультация юриста проводится в режиме онлайн. Вы можете задать свой вопрос абсолютно бесплатно.

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

  • несвоевременная оплата зарплаты;
  • невыплата зарплаты;
  • выплата зарплаты не в полном объеме;
  • нарушение трудовой дисциплины;
  • невыполнение трудовых обязанностей;
  • халатность;
  • выполнение трудовых обязанностей не в полном объеме;
  • хищение;
  • необоснованное увольнение;
  • принудительное восстановление в должности;
  • необоснованный отказ в принятии на работу;
  • нарушение организации индивидуальных и коллективных условий труда;
  • нарушение договора о материальной ответственности;
  • и т.д.

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

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

Трудовые споры делятся на индивидуальные (конфликт происходит между организацией и одним сотрудником) и коллективные (конфликт происходит между организацией и группой сотрудников).

Напоминаем, что если вы попали в сложную ситуацию, вы можете задать свой вопрос через форму обратной связи. Юридическая консультация для пользователей сайта проводится бесплатно в режиме онлайн.

Вопросы по индивидуальным спорам

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

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

В целях разрешения конфликтов стороны могут обратиться:

  • к помощи трудовой комиссии с просьбой урегулировать конфликт в соответствии с законодательством;
  • с заявление в инспекцию труда с просьбой провести проверку и решить возникшую ситуацию;
  • в судебные органы.

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

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

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

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

Немного о рассмотрении трудовых споров

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

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

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

Вступление

Для чего вообще стоит отказываться от модальности и, например, Вопрос заменять на ПоказатьВопрос? Всё дело в том, что больше года назад 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С (который сначала, без подробного вникания в задачу, может вызвать улыбку): «Изменить логику прикладного решения так, чтобы не было диалога с пользователем в этом обработчике».



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: