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

Я сделал у справочника реквизит «Не выбирать», и проверяю его.
Но есть проблема. Перед закрытием формы нельзя понять, пользователь выбрал значение или закрыл форму.
Да и выбранное значение просто так не поймешь, я нахожу по текущей строке таблицы формы.
&НаКлиенте Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка) Если МожноЗакрыть = истина Тогда Возврат; КонецЕсли; ТекущиеДанные = Элементы.Список.ТекущиеДанные; Если ТекущиеДанные <> Неопределено Тогда Если Получить.ЗначениеРеквизита(ТекущиеДанные.Ссылка, "НеВыбирать") Тогда Отказ = истина; КонецЕсли; КонецЕсли; КонецПроцедуры &НаКлиенте Процедура Отмена(Команда) МожноЗакрыть = истина; Закрыть(Неопределено); КонецПроцедуры
Пришлось добавить команду «Отмена», чтобы можно было закрыть форму, если вдруг пользователь встал на элементе, который нельзя выбирать.
Тема обсуждалась на мисте, там предлагали более трудоемкий вариант — обрабатывать событие выбора и добавлять свою кнопку выбора вместо типовой. Тогда можно обойтись без кнопки «отмена».
Записал пожелание в список пожеланий 1С к управляемым формам.



Свежие комментарии