|
Как в методе ПередЗакрытием() в форме выбора понять, что нажали? | ☑ | ||
---|---|---|---|---|
0
tlg25
04.06.13
✎
17:35
|
Доброго времени суток.
Подскажите, пожалуйста, как в форме выбора в методе ПередЗакрытием() понять, что нажал пользователь: крестик(то есть отказался от выбора) или стандартную кнопку "Выбрать"(или просто двойной клик сделал)? Мне необходимо выполнить некоторые проверки, по данным, которые выбрал пользователь, до того, как форма закроется. Если он сделал выбор(но выбрал строки не соответствующие определённым условиям) - ему выдаётся предупреждение и ставится Отказ на закрытие формы. И он должен перевыбрать корректные(удовлетворяющие условиям) строки из справочника. Но, если он вышел по крестику, никакие проверки не должны производиться. |
|||
1
tlg25
04.06.13
✎
17:36
|
(0) 8.2 Управляемые формы.
|
|||
2
Smit1C
04.06.13
✎
17:41
|
Сделай две кнопки "Ок" и "Отмена" и на каждую вешай свой обработчик. Крестик соответствует нажатию кнопки "Отмена"
|
|||
3
DaZol1991
04.06.13
✎
17:44
|
Проверяй при выборе условие в самой форме, а там где ты её открываешь Проверяй отказались ли от выбора или выбрали что - то. для этого нужно эту форму открыть модально и присвоить какой-то переменной, потом проверять если вернулось неопределено , то тогда был крестик нажат
|
|||
4
tlg25
04.06.13
✎
18:04
|
(3) Спасибо. Такой код для последующих действий у меня уже есть:
ЧтоДелать = ОткрытьФормуМодально("Справочник.Назначения.ФормаВыбора"); Если ЗначениеЗаполнено(ЧтоДелать) Тогда СписокТН.Очистить(); ВыбратьНазначениеНаСервере(); Иначе КонецЕсли; Но всё дело в том, что ряд проверок я хочу делать не после закрытия формы "Справочник.Назначения.ФормаВыбора", а перед закрытием. Чтобы в случае сделанного пользователем неверного выбора, не заставлять его повторно нажимать на кнопку, форму выбора вызывающую. А выдавать Предупреждение и оставлять его в форме выбора, чтобы сразу перевыбрал. |
|||
5
tlg25
04.06.13
✎
18:05
|
(2) Спасибо. Очень хотелось отловить стандартное событие, а не создавать свои дополнительные кнопки.
|
|||
6
DaZol1991
04.06.13
✎
18:18
|
(4) ну я и говорю делай проверку в открываемой форме при выборе значения примерно так:
//при двойном щелчке мышкой по списку &НаКлиенте Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) ВыборЗначения(); КонецПроцедуры //при нажатии на кнопку "Выбрать" &НаКлиенте Процедура Выбор(Команда) ВыборЗначения(); КонецПроцедуры //ПроверкаНаВыполнениеУсловий - функция будет возвращать //Истина если проверка не выполнена и ложь если выполнена &НаКлиенте Процедура ВыборЗначения() Отказ = ПроверкаНаВыполнениеУсловий(Элементы.Список.ТекущаяСтрока); Если Не Отказ Тогда Закрыть(Элементы.Список.ТекущаяСтрока); КонецЕсли; КонецПроцедуры |
|||
7
Drac0
04.06.13
✎
18:21
|
А вывести сразу только коррректные варианты не предлагать?
|
|||
8
tlg25
05.06.13
✎
11:32
|
(7) Не получится по условиям задачи.
Есть справочник(его и форма выбора), где записи привязаны к разным людям(ссылка на соответствующий справочник с персонами) и за разные даты. Пользователь может захотеть выбрать для анализа(отчетов разных, которые анализируют информацию и вызываются с той формы, откуда вызываю форму выбора) данные за разные числа о каком-нибудь одном человеке. О каком человеке он захочет проанализировать информацию и за какие даты пользователю это придёт в голову это сделать заранее неизвестно. Но важно, чтобы он выбрал из списка записи, относящие к одному человеку во-первых(иначе анализ выдаст бессмысленные результаты) и в определённом временном диапазоне(анализировать одновременно 2010 и 2013 год тоже не осмысленно, надо чтобы интервал в днях между датами выбранных записей не превышал определённого уставленного в ТЗ количества дней) |
|||
9
tlg25
05.06.13
✎
13:04
|
(6) Спасибо, "СписокВыбор" работает замечательно.
А вот событие Выбор для кнопки не могу найти. Если создаю сама просто команду с таким именем, то она никак не связана со стандартной кнопкой "Выбор". Событие формы "ОбработкаВыбора" - тоже не то, что вызывается по нажатию кнопки. Подскажите, пожалуйста, где его искать? То есть на какой элемент формы встать в свойствах его на закладке "события" найти? Или в каком-то другом месте надо что-то дополнительно прописать, чтобы созданная команда с названием "Выбор" вызывалась по нажатию стандартной кнопки "Выбор" как вызывается "СписокВыбор" при двойном клике. |
|||
10
DaZol1991
05.06.13
✎
14:39
|
(9) это у динамического списка событие который на форме
|
|||
11
DaZol1991
05.06.13
✎
14:44
|
(9) а у кнопки - просто создай свою команду с картинкой "выбрать" поставь отображать и картинку и надпись вытащи команду на командную панель формы и поставь галочку "кнопка по умолчанию" и будет такая же кнопка как стандартная. ну и в команде в этой код пиши уже
|
|||
12
DaZol1991
05.06.13
✎
14:46
|
(10) это я про СписокВыбор =)
|
|||
13
tlg25
06.06.13
✎
12:20
|
(12) Со СписокВыбор я разобрать уже раньше, спасибо.
А кнопку всё-таки получает надо рисовать свою. Нельзя использовать стандартную, увы. Поняла. |
|||
14
eklmn
гуру
06.06.13
✎
12:42
|
казнить, кто без фотки подсказывает!
|
|||
15
tlg25
06.06.13
✎
14:23
|
(11) Но стандартная кнопка "Выбор" же не убирается. То есть можно отключить всю стандартную командную панель, но нельзя отключить одну кнопку "Выбор" и заменить своей.
Возможно я не знаю какие-то тонкости на этот счёт. Но читала на форумах, что нельзя убрать только часть кнопок стандартной командной панели. Только и всё или ничего. |
|||
16
tlg25
07.06.13
✎
10:16
|
(14) Не поняла тему с фото.
Видела в одном из постов, что другую девушку на форуме просили загрузить фотографию, но нигде в правилах такого не читала. Не думаю, что 8.2 работает по разному в зависимости от внешности разработчика ;-) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |