Имя: Пароль:
1C
1С v8
Как сделать кнопку доступной при ТолькоПросмотр?
0 1dvd
 
18.11.13
09:59
Следущий код делает кнопку недоступной.

            ЭтаФорма.ТолькоПросмотр = Истина;
            ДействиеЗаписатьНастройки = Новый Действие("ЗаписатьНастройки");
            КнопкаЗаписатьНастройки = ЭлементыФормы.ОсновныеДействияФормы.Кнопки.Вставить(0, "КнопкаЗаписатьНастройки", ТипКнопкиКоманднойПанели.Действие, "Записать настройки", );
            КнопкаЗаписатьНастройки.КнопкаПоУмолчанию = Истина;
            КнопкаЗаписатьНастройки.ИзменяетДанные = Ложь;
            КнопкаЗаписатьНастройки.Доступность = Истина;


Что не так?
1 МойКодУныл
 
18.11.13
10:00
Только просмотр применяется ко всей форме и имеет бОльший приоритет.
2 mikecool
 
18.11.13
10:02
неожиданно
3 1dvd
 
18.11.13
10:02
(1) но, на форме ведь есть элементы, которые доступны, после ТолькоПросмотр = Исина.

Вроде, ИзменяетДанные = Ложь должно говорить о том, что кнопка будет доступна. Но, нет :(
4 Maxus43
 
18.11.13
10:04
(3) изменяет данные вобще не для этого и это зело мерзкая галка
5 dk
 
18.11.13
10:05
(3) попробуй изменяетданные устанавливать до форма.толькопросмотр
6 dk
 
18.11.13
10:06
ну что нить типа форма обновить не помешает
7 1dvd
 
18.11.13
10:07
(5)(6) не помогло
8 1dvd
 
18.11.13
10:24
Решено.
Тупо не дописал создание Кнопки :)


            ЭтаФорма.ТолькоПросмотр = Истина;
            ДействиеЗаписатьНастройки = Новый Действие("ЗаписатьНастройки");
            //КнопкаЗаписатьНастройки = ЭлементыФормы.ОсновныеДействияФормы.Кнопки.Вставить(0, "КнопкаЗаписатьНастройки", ТипКнопкиКоманднойПанели.Действие, "Записать настройки", );
            КнопкаЗаписатьНастройки = ЭлементыФормы.ОсновныеДействияФормы.Кнопки.Вставить(0, "КнопкаЗаписатьНастройки", ТипКнопкиКоманднойПанели.Действие, "Записать настройки", ДействиеЗаписатьНастройки);
            КнопкаЗаписатьНастройки.КнопкаПоУмолчанию = Истина;
            КнопкаЗаписатьНастройки.ИзменяетДанные = Ложь;
            КнопкаЗаписатьНастройки.Доступность = Истина;


(4) Не прав. Это незадокументированная фича. Если у кнопки ИзменяетДанные = Истина, тогда при Форма.ТолькоПросмотр = Истина, кнопка становится недоступной. Если у кнопки ИзменяетДанные = Ложь, то остается доступной
9 МойКодУныл
 
18.11.13
10:31
не знал. Интересно:)
10 Полотенчик
 
18.11.13
10:37
А я думал, что документированная. ТолькоПросмотр у формы устанавливает ТолькоПросмотр у элементов, связанных с реквизитами объекта, и у тех, у которых стоит свойство ИзменяетДанные.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший