Имя: Пароль:
1C
 
Доступность элементов формы при ТолькоПросмотр = Истина
,
0 Svetlana_Kazan
 
31.01.18
17:04
Необходимо сделать доступной колонку табличной части. Весь проведенный документ становится недоступным для редактирования ТолькоПросмотр = Истина, но для некоторых элементов формы(в том числе и табличной части) ставлю Доступность = Истина(чтобы пользователь не мог редактировать значение, но мог по ссылке открыть в справочнике).
У колонки типа Булево или Строка Доступность = Истина отрабатывает правильно(), но вот доступным сделать колонку типа СправочникСсылка не получается. Что я не учла?
Процедура ДоступностьЭлементовФормы()
Если Объект.Ссылка.Проведен Тогда
    Для Каждого ЭлементФормы Из ЭтаФорма.Элементы Цикл
        Если ЭлементФормы.Имя = "Таблица1Выдано" Тогда
            Продолжить;
        КонецЕсли;
        Если ЭлементФормы.Имя = "Таблица1ПСН" Тогда
            ЭлементФормы.ТолькоПросмотр = Истина;
            ЭлементФормы.Доступность = Истина;
            Продолжить;
        КонецЕсли;
        ...
        ЭлементФормы.ТолькоПросмотр = Истина;
    КонецЦикла;
КонецЕсли;
КонецПроцедуры
1 Вафель
 
31.01.18
17:14
надо наоборот, все остальные поля делать недоступными
2 Вафель
 
31.01.18
17:14
а сама форма доступна
3 GGDots
 
31.01.18
17:16
Саму таблицу и группу в которой она находится не блокируй, а то если заблокируешь саму таблицу, а колонку в ней сделаешь доступной - то колонка не будет доступна, так как родитель заблокирован
4 Масянька
 
31.01.18
17:19
(0) Если форма = только просмотр - никак не открыть некоторые реквизиты.
Обход в (1).
5 GGDots
 
31.01.18
17:20
Если Объект.Ссылка.Проведен Тогда
    
    Для Каждого ЭлементФормы Из ЭтаФорма.Элементы Цикл
        
        
        
        Если ЭлементФормы.Имя = "Таблица1Выдано" Тогда //твоя колонка
            Продолжить;
        КонецЕсли;
        
        Если ЭлементФормы.Имя = "Таблица1" Тогда //твоя таблица
            Продолжить;
        КонецЕсли;    
        
        Если ЭлементФормы.Имя = "Таблица1" Тогда //твоя группа где находится таблица
            Продолжить;
        КонецЕсли;    
        
        
        //еще какие то условия на группы где лежит твоя таблица
        
        ЭлементФормы.ТолькоПросмотр = Истина;    //все остальное блокируем
        
    КонецЦикла;
    
КонецЕсли;
6 GGDots
 
31.01.18
17:23
//получше вариант

МассивНеБлокируемыхЭлементов = Новый Массив()
МассивНеБлокируемыхЭлементов.Вставить("Таблица1Выдано");
МассивНеБлокируемыхЭлементов.Вставить("Таблица1");
МассивНеБлокируемыхЭлементов.Вставить("ГруппаТаблица1");

Если Объект.Ссылка.Проведен Тогда
    
    Для Каждого ЭлементФормы Из ЭтаФорма.Элементы Цикл
        
        Если НЕ МассивНеБлокируемыхЭлементов.Найти(ЭлементФормы.Имя) = Неопределено Тогда
             Продолжить;
        КонецЕсли;
        
        ЭлементФормы.ТолькоПросмотр = Истина;    //все остальное блокируем
        
    КонецЦикла;
    
КонецЕсли;
7 GGDots
 
31.01.18
17:24
плюс (1) не блокируем саму форму
8 Вафель
 
31.01.18
17:28
(7) не у всех элементов есть только просмотр
9 GGDots
 
31.01.18
17:35
(8) согласен:

дописать необходимые условия из серии:

        Если ТипЗнч(ТекЭлемент) = Тип("ПолеФормы") И ТекЭлемент.Вид = ВидПоляФормы.ПолеВвода Тогда    
            
            ТекЭлемент.ТолькоПросмотр
                    
        
            
            
        ИначеЕсли ТипЗнч(ТекЭлемент) = Тип("ТаблицаФормы") Тогда
            
            ТекЭлемент.ТолькоПросмотр
            
            
        Иначе
            
            ТекЭлемент.Доступность = Настройка.Доступность;
            
            
        КонецЕсли;
10 GGDots
 
31.01.18
17:36
здесь с помощью каких либо тэгов вообще можно код нормально вставлять?
11 Волшебник
 
модератор
31.01.18
17:41
(10) [ 1 C ] ... [ / 1 C ]
без пробелов
12 GGDots
 
31.01.18
17:43
(11) - спасибо, попробую в следующий раз
13 Svetlana_Kazan
 
01.02.18
11:06
Перепробовала все уже. Все равно недоступна у меня колонка ПСН. Спасибо за помощь!