|
Обработка выбора для списка значений | ☑ | ||
---|---|---|---|---|
0
beholder13
16.06.18
✎
16:30
|
Добрый день, коллеги.
Платформа 8.3.11.2867. Есть реквизит формы с типом СписокЗначений с указанным типом значения списка. На форму помещено поле формы с видом Поле ввода, связанное с данным реквизитом (там можно вывести или таблицой, или по старинке, в поле ввода со строковым представлением). Поле ввода позволяет вызвать форму выбора списка значений, после закрытия которой кнопкой ОК выбранные значения помещаются в реквизит. Мне нужно отловить момент закрытия этой формы до помещения выбранного значения в реквизит, чтобы иметь возможность откатить результат выбора. То есть, обычная обработка выбора. Незадача в том, что событие обработки выбора элемента не отрабатывает. Скажите, пожалуйста, в чем здесь кроется невероятная хитрость? Заранее благодарю. PS. Так же можно рассмотреть старый способ через обработку начала выбора, но тут нужно сохранить асинхронку. Возможно, есть вариант вызвать эту форму выбора/подбора значения списка значений методами платформы? |
|||
1
Franchiser
гуру
16.06.18
✎
17:41
|
События ПередЗакрытием, Призакрытии в этой форме. В чем проблема?
|
|||
2
beholder13
16.06.18
✎
18:13
|
(1) В том, что Вы, коллега, абсолютно не правы. Это форма не прикладного объекта, по сути, это форма диалога, генерируемая платформой. Но проблема даже не в этом, даже если бы этобыла форма выбора справочника и действительно можно было бы использовать методологию оповещений - отлавливать события и данные, локально требуемые в контексте одной сущности, на уровне общего универсального объекта - это, знаете ли, моветон. Или, если проще, охрененно кривой гвоздь.
|
|||
3
RomanYS
16.06.18
✎
18:33
|
Не совсем понятно "откатить результат выбора". Если ПриИзменении уже поздно, то открывай свою форму и отрабатывай её события.
|
|||
4
beholder13
16.06.18
✎
18:46
|
(3) Бывают прикладные ситуации, когда требуется отработать результат выбора или же просто произвести некое пользовательское действие (задать вопрос и подправить прямо набор или косвенно произвести действия) до помещения значения непосредственно в объект. Допустим, пользователь выбрал значение, которое подразумевает перезаполнение каких-либо коллекций на форме. Надо пользователя об этом предупредить и спросить, готов ли он к этому. Если не готов - откатываем, то есть, не даем платформе поместить значение окончательно. Именно для этого существет событие обработки выбора, которое всегда определено для выбираемых типов значений и штатно отрабатывает для них:
ОбработкаВыбора (ChoiceProcessing) <..> Описание: Вызывается после осуществления выбора, но до помещения выбранного значения в элемент управления. Беда в том, что оно не отрабатывает для списка значений. И, опять же, эта форма не определяется разработчиком в конфигураторе для прикладного объекта, это форма выбора и подбора значений самого списка значений, универсального объекта, которая генерируется автоматически. В нее нельзя (и незачем) залезть и что-то поправить, тем более повлиять на результат выбора и выполнить какие-либо действия в контексте вызвавщей ее сущности. |
|||
5
beholder13
16.06.18
✎
18:51
|
(3) ПриИзменении вызывается уже после помещения значения в объект и предотвратить его вызов можно как раз таки в обработке выбора.
|
|||
6
RomanYS
16.06.18
✎
18:57
|
(4)(5) Ты жалуешься или решение ищешь? Я тебе могу подтвердить, что обработка выбора не работает в данном случае на моей платформе тоже. Сделай костыль красивым!
|
|||
7
beholder13
16.06.18
✎
19:03
|
(6) Я пытаюсь понять, как платформа ведет себя в данном случае. Костыль делать не хочу, спасибо, но я не такой =)
|
|||
8
Franchiser
гуру
16.06.18
✎
19:05
|
(7) а какой ты?
|
|||
9
Franchiser
гуру
16.06.18
✎
19:11
|
Попробуй через однократный вызов обработчика ожидания
|
|||
10
beholder13
16.06.18
✎
19:15
|
(9) В какой момент? Я думал об этом, делать это в НачалоВыбора и помещать уже в обработке оповещения самостоятельно значение. Но охота сохранить аутентичность, как тогда вызвать эту форму выбора для списка значений?
|
|||
11
Franchiser
гуру
16.06.18
✎
19:20
|
В тот обработчик который сейчас срабатывает : началовыбораизсписка().
|
|||
12
beholder13
16.06.18
✎
19:24
|
(11) НачалоВыбора
|
|||
13
RomanYS
16.06.18
✎
19:45
|
(10) "Эту форму" возможно не получится вызвать. По крайней мере ПоказатьВводЗначения не работает со списком значений. Вопрос: зачем эта? Нарисуй свою со всем нужным функционалом.
|
|||
14
beholder13
16.06.18
✎
20:08
|
(13) Костыли и велосипеды, программируем как умеем?)
|
|||
15
hhhh
16.06.18
✎
21:13
|
(14) ну как раз именно вы и предлагаете костыль. А вас все уговаривают этого не делать.
|
|||
16
RomanYS
16.06.18
✎
21:40
|
(14) Моя модель: использовать те возможности, которые необходимы, для достижения целей.
Твоя модель: писать что-то не работающие и плакать "почему 1с это не реализовало". Хочешь конструктива - напиши в 1с, в 8.8 сделают, или не сделают. |
|||
17
beholder13
16.06.18
✎
22:59
|
(15) (16) Очень интересные выводы у Вас, господа =)
|
|||
18
beholder13
17.06.18
✎
04:03
|
(16) Не знаю, откуда у Вас появилось впечатление, что я на что-то жалуюсь. Я, как раз таки, напротив, интересуюсь тем, что в действительности реализовано, раз уж обычная методика не работает. Я не прошу придумать ограниченное лишь Вашей фантазией N-ное количество решений неизвестной Вам задачи, прошу лишь прояснить момент, который не описан в СП. Если штатных механизмов в действительности нет в тех моментах, которые в обычных ситуациях выглядят наиболее чисто, я прекрасно решу ее чуть по-другому, но куда более аккуратно, чем любое из сделаных выше предложений.
Коллеги, прошу Вас, мне нужно лишь убедиться, что описанное в (0) действительно не работает для списков значений или работает, но иначе, и я обращаюсь за помощью, так как, при всей детальности и информативности СП, в данном случае расширение элементов для списка значений описано только для таблицы формы. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |