Имя: Пароль:
1C
1С v8
Форма.ТолькоПросмотр = Истина и разблокировать один реквизит
0 idw
 
15.03.19
06:31
ПриСозданииНаСервере добавил вызов вот такой процедуры, перед этим отрабатывает Форма.ТолькоПросмотр = Истина,
но все равно табличная часть Документация остается заблокированной. Можно как то открыть доступ?

СписокИсключенияЭлементов = Новый СписокЗначений;
    //СписокИсключенияЭлементов.Добавить(ЭтаФорма.Элементы.ДокументацияПутьКДокументу);
    СписокИсключенияЭлементов.Добавить(ЭтаФорма.Элементы.Документация);

    ДоступностьЭлементовФормыПриСозданииНаСервере(ЭтаФорма,СписокИсключенияЭлементов);
&НаСервере
Процедура ДоступностьЭлементовФормыПриСозданииНаСервере(Форма,СписокЭлементов)
    Если ЗначениеЗаполнено(СписокЭлементов) Тогда
        ЭлементыЗаказа = Новый Структура(СписокЭлементов,);
        Для каждого Элемент Из Форма.Элементы Цикл
            
            Если ЭлементыЗаказа.Свойство(Элемент.Имя) Тогда
                Элемент.Доступность = Истина;
            Иначе
                //исключения, кнопки, группы элементов и ТЧ

                Если ТипЗнч(Элемент) = Тип("ГруппаФормы") ИЛИ ТипЗнч(Элемент) = Тип("КнопкаФормы") Тогда
                    Продолжить;
                КонецЕсли;    
                //ТЧ и ее состав

                Если ТипЗнч(Элемент) = Тип("ТаблицаФормы") Тогда
                    Элемент.ТолькоПросмотр = Истина;
                    Продолжить;
                КонецЕсли;    
                //элементы ТЧ не блокируем они и так "для чтения" по родителю

                Если ТипЗнч(Элемент.Родитель) = Тип("ТаблицаФормы") Тогда
                    Продолжить;
                КонецЕсли;    
                //

                Попытка
                    Элемент.Доступность = Ложь;
                Исключение
                    Продолжить;
                КонецПопытки;
            КонецЕсли;
        КонецЦикла;
    КонецЕсли;
КонецПроцедуры
1 idw
 
15.03.19
06:42
Изначально была цель открыть доступ к реквизиту ТЧ ДокументацияПутьКДокументу, но не получается даже открыть доступ ко всей ТЧ Документация.
2 Mankubus
 
15.03.19
06:55
(0) нельзя. Форма.ТолькоПросмотр = Истина, имеет приоритет над всем что ты пишешь ниже
3 shuhard
 
15.03.19
06:59
(2) +1
нужно лочить все, кроме 1-го
4 idw
 
15.03.19
07:03
(2) то есть после Форма.ТолькоПросмотр = Истина
не откроешь доступ к реквизиту?
5 APXi
 
15.03.19
07:34
Нет.
6 Мимохожий Однако
 
15.03.19
07:34
(4) да
7 idw
 
15.03.19
09:28
(5) и (6) однозначные ответы.
В общем убрал Форма.ТолькоПросмотр = Истина,
Добавил туда процедуру ДоступностьЭлементовФормыПриСозданииНаСервере()
Но в процедуре не работает для колонки: Элемент.Доступность = Истина;

Куда копать?
8 Cyberhawk
 
15.03.19
09:30
Так доступность и у родительского элемента (таблицы) должна быть наверное
9 Cyberhawk
 
15.03.19
09:31
Потренируйся на кошках (внешней обработке с формой) - посоздавай там вложенные элементы (страницу, группу, таблицу, колонку) с разными флажками доступности и выясни, что нужно чтоб твоя колонка была доступна
10 Valkyrie
 
15.03.19
09:34
(8) +
Таб часть должна быть доступна тоже.
11 cons24
 
15.03.19
09:39
(0) еще вариант - нарисовать свою форму, где "лишних" реквизитов не будет совсем.