Имя: Пароль:
1C
 
УФ. Поле переключателя. Запретить выбор значения
,
0 SeiOkami
 
06.08.20
16:44
Добрый день!

Есть у меня на управляемой форме поле переключателя. На нём несколько значений. Могу ли я программно одно из значений сделать недоступным к выбору? Не удалять из списка доступных значений, а именно сделать недоступным? Чтобы значение не пропадало с формы, а становилось сереньким и не доступным к выбору.
1 Fedor-1971
 
06.08.20
16:57
(0) в ПриСозданииНаСервере поиграйся с ДоступныеЗначения у поля ввода

Как вариант: добавь к Представлению списка выбора поле "Запрещено" или запиши туда "-" или пробел (это для красоты)

Добавь событие ОбработкаВыбора() и там проверяй что выбрано и пиши своё сообщение, значение в поле пока не изменено
2 spiller26
 
06.08.20
17:00
(0) Зачем тогда  пользователю показывать что значение есть?
3 Fedor-1971
 
06.08.20
17:04
(2) мало ли, а если стаусы Контрагента определены как "хороший, нормальный, плохой, Запрещена работа" и последний могут устанавливать только люди с определённой ролью

Простой пользователь видит "Запрещена работа", но поставить это значение не может, а вот хороший - сколько душе угодно (чисто пример)
4 SeiOkami
 
06.08.20
17:04
(2), пользователь изначально видит значение. Но, когда выбирает исключающее значение в другом поле, то в этом оно должно стать недоступным. Но не пропасть
5 SeiOkami
 
06.08.20
17:07
(1), выходит, что нельзя никак установить именно доступность значения? Или хотя бы визуально сделать тоже самое. Например, у недоступного значения установить цвет текста сероватым. Надпись "Запрещено" как-то стрёмно ...
6 Fedor-1971
 
06.08.20
17:12
(4) Тебе же написали пробуй играться с ДоступныеЗначения (я точно не уверен работают они ка Доступность или прячут лишние значения) или переделай на Поле ввода со списком значений, при выборе исключающего значения, просто удаляй ненужное из списка, при этом в поле ввода останется старое значение

Подобную логику строят через предупреждение пользователя, типа "В поле ... указано недопустимое значение" на зависимых полях
7 Kesim
 
06.08.20
17:16
(0) Рисуй кнопки - управляй доступностью.
8 SeiOkami
 
06.08.20
17:22
(6), нет ДоступныеЗначения, есть только СписокВыбора. А у списка выбора ДоступныеЗначения - Неопределено.
Ну мне и не нужно поле ввода - нужен переключатель.
9 SeiOkami
 
06.08.20
17:22
(7), походу других вариантов нет...
10 Fedor-1971
 
06.08.20
17:26
(8) в ДоступныеЗначения запиши урезанный список выбора, отдельные поля успеешь сделать
11 spiller26
 
06.08.20
17:50
(9) Но откровенно белеберда, пользователь может выбрать, но в поле сбрасывается значение.

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    СпЗн = Новый СписокЗначений;
    СпЗн.Добавить("Значение1");
    СпЗн.Добавить("Значение4");
    Элементы.Поле1.СписокВыбора.Добавить("Значение1", "№1");
    Элементы.Поле1.СписокВыбора.Добавить("Значение2", "№2");
    Элементы.Поле1.СписокВыбора.Добавить("Значение3", "№3");
    Элементы.Поле1.СписокВыбора.Добавить("Значение4", "№4");
    Элементы.Поле1.СписокВыбора.ДоступныеЗначения = СпЗн;
    
КонецПроцедуры
12 lodger
 
06.08.20
17:59
(11) ты просто СП не читал.
ну хотя б вот https://www.about1c.ru/v83/language-reference/collections/value-list/available-values
13 spiller26
 
06.08.20
18:01
(12) Представь себе читал
14 Вафель
 
06.08.20
19:42
те одно значение не доступно.
А если оно выбрано?
Юзер может выбрать другое но назад уже не вернет
15 SeiOkami
 
07.08.20
10:33
(11), да, не очень красиво выходит. И недоступные значения в переключателе выглядят точно так же как и доступные. Просто при их включении всё сбрасывается на пустоту ))
16 SeiOkami
 
07.08.20
10:36
Пока придумал самый простой вариант - вынести недоступное значение отдельным недоступным полем. Выглядеть оно будет точно так же, как один из пунктов переключателя. Показывать я его буду только тогда, когда нужно запретить выбор значения. А из списка выбора это значение буду удалять. Для пользователя визуально выглядит как нужно. В коде не сильно много костылей
17 SeiOkami
 
07.08.20
14:13
Кстати, интересное поведение. ДоступныеЗначения очищаются сразу после возвращения с сервера на клиент. Элемент ведёт себя так, будто ДоступныеЗначения установлены, но программно их не видно.
2 + 2 = 3.9999999999999999999999999999999...