Имя: Пароль:
1C
1С v8
Упрощение процедуры, отвечающей за доступность элементов.
0 neitrosha
 
26.03.13
15:25
Есть процедура, отвечающая за доступность элементов. Всё чудесно, всё работает, НО - слишком громоздко.

Если ЗначениеТипаЗаписиСпециалиста = "Контактное лицо" Тогда
       Элементы.ДатаПриема.Доступность = Ложь;
       Элементы.ДатаОкончания.Доступность = Ложь;
       Элементы.ТекущееМестоРаботы.Доступность = Ложь;
       Запись.Должность = "";
       Элементы.Должность.Доступность = Ложь;
       Элементы.ИдетВСтаж.Доступность = Ложь;
       Элементы.ПоСовместительству.Доступность = Ложь;

Соответственно, с другим значением, она всем присвоит истину.
Подобное мне не кажется слишком удобным.

Можно ли как-то упростить, скажем, где-то хранить ссылки на вот эти элементы, и просто в цикле им присваивать значения?
Если да, то как?
1 patapum
 
26.03.13
15:30
(0) нет, в 1с это невозможно! (с)
2 neitrosha
 
26.03.13
15:32
(1) Сарказм?

Я просто не знаю. Сейчас пытаюсь понять тот же список значений, потому что мало ли туда можно впихнуть.
3 Maxus43
 
26.03.13
15:36
штатно - нет, только так:
Для Каждого Эл Из Элементы Цикл
Эл.Доступность = Ложь;
....

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

А тут ещё и Управляемое приложение, доступностью рулят всякие ФУ и права к реквизитам. Подход старый в (0)
4 patapum
 
26.03.13
15:36
(2) впихивай хоть в список значений, хоть в массив, дальше обход той коллекции, в которую ты впихнул и
Для каждого ЭлементМассиваИмен из МассивИмен
Элементы[ЭлементМассиваИмен].Доступность = УстанавливаемоеЗначение;
КонецЦикла;
5 neitrosha
 
26.03.13
15:49
Оооокей, спасибо всем, разобрался.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн