Версия для печати темы (https://pro1c.org.ua/index.php?s=b80742fab3d759023d9c0a6e0ef9bbf1&showtopic=42080)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Как сделать недоступными некоторые значения переключателя?

Автор: Alex78 21.11.17, 13:05

Доброго времени суток.
Платформа 8.3.10.2252. Конфигурация - УТ 3.1.5.1 для Украины (на УФ).
Есть документ, у него есть реквизит ПроцентСкидки. Соответствующий элемент формы - поле переключателя. Задача следующая - исходя из некоторых условий некоторые значения переключателя сделать недоступными.
Попытка № 1:

&НаКлиенте
Процедура qwerty()
МассивДостЗнач=Новый Массив;
// заполнение массива
// .............................
//заполнение массива
ЭтаФорма.Элементы.ПроцентСкидки.СписокВыбора.ДоступныеЗначения.ЗагрузитьЗначения(СпДоступныеЗначения);
КонецПроцедуры


Выдается сообщение "Значение не является значением объектного типа (ЗагрузитьЗначения)".

Попытка № 2:

&НаСервереБезКонтекста
Процедура qwertyServ(СпВыбора)
МассивДостЗнач=Новый Массив;
// заполнение массива
// .............................
//заполнение массива
СпВыбора.ДоступныеЗначения.ЗагрузитьЗначения(СпДоступныеЗначения);
КонецПроцедуры

&НаКлиенте
Процедура qwerty()
qwertyServ(ЭтаФорма.Элементы.ПроцентСкидки.СписокВыбора);
КонецПроцедуры


Результат - тот же.


Пардон за оформление, что-то намутил.

 ! 

http://pro1c.org.ua/index.php?act=announce&id=2: 3,4,9
 

Автор: logist 21.11.17, 13:37

Цитата(Alex78 @ 21.11.17, 13:05) *
Пардон за оформление, что-то намутил.

Пардон не засчитан, читайте правила, в следующий раз подобное будет удаляться.

У поля переключателя Список выбора - это и есть список доступных переключателей, в управляемых формах нельзя управлять доступностью отдельных кнопок переключателя. Поэтому заполняя список выбора его уже надо только доступными значениями. Если хотите что бы в переключателе были видны все, тогда проверяйте доступность ПриИзменении.

Автор: Petre 21.11.17, 13:44

Alex78 @ Сегодня, 13:05 * ,

Цитата
Описание:

Тип: СписокЗначений; Неопределено.

У Неопределено нет метода ЗагрузитьЗначения.

Автор: Alex78 21.11.17, 15:40

Petre, да, Вы правы, но я по-всякому пробовал, в т.ч.

Сп.Добавить(0);
Сп.Добавить(3);
ЭтаФорма.Элементы.ПроцентСкидки.СписокВыбора.ДоступныеЗначения=Сп;


в таком случае ругани нет, но ничего не меняется. Оказывается, всё просто, спасибо Логисту, открыл глаза - в УФ просто-напросто нельзя такое реализовать, ларчик просто открывался ..


Всем спасибо за обсуждение.

Автор: bnik 14.03.19, 13:37

Цитата(Alex78 @ 21.11.17, 23:40) *
Petre, да, Вы правы, но я по-всякому пробовал, в т.ч.
Сп.Добавить(0);
Сп.Добавить(3);
ЭтаФорма.Элементы.ПроцентСкидки.СписокВыбора.ДоступныеЗначения=Сп;


в таком случае ругани нет, но ничего не меняется. Оказывается, всё просто, спасибо Логисту, открыл глаза - в УФ просто-напросто нельзя такое реализовать, ларчик просто открывался ..
Всем спасибо за обсуждение.


я убирал кнопки, какие требуются устанавливаются следующим образом

МассивДостЗнач = Новый Массив;
МассивДостЗнач.Вставить(0,"Мои");
МассивДостЗнач.Вставить(1,"Введены мной");        
МассивДостЗнач.Вставить(2,"Моего подразделения");

Элементы.Принадлежность.СписокВыбора.ЗагрузитьЗначения(МассивДостЗнач);

+
путькданный переменная типа строка,
Если наименование и представления не совпадают, то дополнительно нужно обрабатывать не только по значению, но и по представлению.
(к примеру у меня одно из значений: "МоегоПодразделения", к нему представление "Моего подразделения" в списке выбора обозначено)

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua