Имя: Пароль:
1C
1С v8
Включение\выключение использования полей программно
0 chingiz
 
16.09.11
10:20
Есть некоторые поля итогов - рандомное количество полей, создаваемые программно и так же добавленные в выбранные поля.

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

Кто делал что-то подобное, скиньте пример кода.
1 chingiz
 
16.09.11
10:37
Посмотрел в отладчике, нашел Пометку(булево), но на код

Если ЭлементыФормы.ПолеСписок.Значение.Пометка Тогда
//выбор полей            
КонецЕсли;

Выдает ошибку: Поле объекта не обнаружено (Пометка). Хотя в отладчике путь именно такой :х
2 Mort
 
16.09.11
10:51
Все телепаты прочно засели в пятничной ветке. Объясни по русски чего хотел-то?
3 chingiz
 
16.09.11
10:57
Да какие телепаты? Все разжевано в первом посте...хорошо еще раз то же самое!

В отчете СКД необходимо, чтобы пользователь, не заходя в настройки, мог галочками( из поля списка) какие из итогов ему показывать. ВСЕ! Тут нужно программно управлять или использованием этих полей или вообще не выбирать их. Не понимаю, почему мой код не работает :\

Если ЭлементыФормы.ПолеСписок.Значение.Пометка Тогда
           ВыбранноеПоле.Использование = Истина;
       Иначе
           ВыбранноеПоле.Использование = Ложь;
       КонецЕсли;
4 Mort
 
16.09.11
11:20
(3) А как получаешь выбранное поле?
5 chingiz
 
16.09.11
11:40
(4) ВыбранноеПоле = ГруппаВыбранныхПолей.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));

Но уже понял свою ошибку. Пытался изменять использование сразу после добавления в выбранные поля и в ПолеСписка. А ошибку выдавало, потому что у Элемента тип - СписокЗначений.

Как я понял нужно просто в процедуре "ПолеСписокПриИзмененииФлажка" изменять использование этих полей - КомпоновщикНастроек.Настройки.Выбор.....
6 chingiz
 
16.09.11
17:15
Полностью решил, оставлю для истории:

   Для каждого Элемент из КомпоновщикНастроек.Настройки.Выбор.Элементы Цикл
       Если Элемент.Заголовок = "Характер" Тогда
           Индекс = КомпоновщикНастроек.Настройки.Выбор.Элементы.Индекс(Элемент);
       КонецЕсли;
   КонецЦикла;
   
   Если ЭлементыФормы.ПолеСписок.ТекущаяСтрока.Пометка Тогда
       КомпоновщикНастроек.Настройки.Выбор.Элементы.Получить(Индекс).Элементы.Получить(ЭлементыФормы.ПолеСписок.ТекущаяСтрока.ПолучитьИдентификатор()).Использование = Истина;
   Иначе
       КомпоновщикНастроек.Настройки.Выбор.Элементы.Получить(Индекс).Элементы.Получить(ЭлементыФормы.ПолеСписок.ТекущаяСтрока.ПолучитьИдентификатор()).Использование = Ложь;
   КонецЕсли;


Первый Элемент - ГруппаВыбранныхПолей
Второй Элемент - ВыбранныеПоля