Вход | Регистрация

1С:Предприятие ::

Метки: 

Обработка выбора для списка значений

Я
   beholder13
 
16.06.18 - 16:30
Добрый день, коллеги.

Платформа 8.3.11.2867.

Есть реквизит формы с типом СписокЗначений с указанным типом значения списка. На форму помещено поле формы с видом Поле ввода, связанное с данным реквизитом (там можно вывести или таблицой, или по старинке, в поле ввода со строковым представлением). Поле ввода позволяет вызвать форму выбора списка значений, после закрытия которой кнопкой ОК выбранные значения помещаются в реквизит.
Мне нужно отловить момент закрытия этой формы до помещения выбранного значения в реквизит, чтобы иметь возможность откатить результат выбора. То есть, обычная обработка выбора. Незадача в том, что событие обработки выбора элемента не отрабатывает.

Скажите, пожалуйста, в чем здесь кроется невероятная хитрость?

Заранее благодарю.

PS. Так же можно рассмотреть старый способ через обработку начала выбора, но тут нужно сохранить асинхронку. Возможно, есть вариант вызвать эту форму выбора/подбора значения списка значений методами платформы?
 
 
   Franchiser
 
1 - 16.06.18 - 17:41
События ПередЗакрытием, Призакрытии в этой форме. В чем проблема?
   beholder13
 
2 - 16.06.18 - 18:13
(1) В том, что Вы, коллега, абсолютно не правы. Это форма не прикладного объекта, по сути, это форма диалога, генерируемая платформой. Но проблема даже не в этом, даже если бы этобыла форма выбора справочника и действительно можно было бы использовать методологию оповещений - отлавливать события и данные, локально требуемые в контексте одной сущности, на уровне общего универсального объекта - это, знаете ли, моветон. Или, если проще, охрененно кривой гвоздь.
   RomanYS
 
3 - 16.06.18 - 18:33
Не совсем понятно "откатить результат выбора". Если ПриИзменении уже поздно, то открывай свою форму и отрабатывай её события.
   beholder13
 
4 - 16.06.18 - 18:46
(3) Бывают прикладные ситуации, когда требуется отработать результат выбора или же просто произвести некое пользовательское действие (задать вопрос и подправить прямо набор или косвенно произвести действия) до помещения значения непосредственно в объект. Допустим, пользователь выбрал значение, которое подразумевает перезаполнение каких-либо коллекций на форме. Надо пользователя об этом предупредить и спросить, готов ли он к этому. Если не готов - откатываем, то есть, не даем платформе поместить значение окончательно. Именно для этого существет событие обработки выбора, которое всегда определено для выбираемых типов значений и штатно отрабатывает для них:

ОбработкаВыбора (ChoiceProcessing)
<..>
Описание:
Вызывается после осуществления выбора, но до помещения выбранного значения в элемент управления.

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

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

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


Список тем форума
  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует