Имя: Пароль:
1C
 
Программное открытие доступности к полю табличной части документа
0 NIGHTHUNTER
 
09.08.22
04:28
У одного поля табличной части документа, имеющего тип перечисление в условном оформлении установлена доступность = ложь.
В случае если значение этого перечисления не заполнено. Необходимо дать пользователю, возможность изменения этого значения в этом поле.
Данное условие в условном оформлении задавалось, для нескольких имеющихся последовательно заполняемых строк в документе.

Можно ли как то задать что при вводе новой строки, не смотря на условное оформление, это поле устанавливать в доступность = истина?
1 rphosts
 
09.08.22
05:24
только отключив условное оформление  (удалив/изменив элемент условного оформления)
2 NIGHTHUNTER
 
09.08.22
08:52
(1) Вы имеете ввиду, удалив строку, в свойствах условного оформления формы, которая задает доступность = ложь?

http://joxi.ru/5mdKGW5uqlw5or

Но я открыл ее для редактирования программно, -


    Если НоваяСтрока Тогда
        ОткрытьДоступностьПоляСостояние();
    КонецЕсли;
    // <-
КонецПроцедуры
// <-

&НаСервере
Процедура ОткрытьДоступностьПоляСостояние()
    Элемент                     = УсловноеОформление.Элементы.Добавить();
    ПолеЭлемента                = Элемент.Поля.Элементы.Добавить();
    ПолеЭлемента.Поле           = Новый ПолеКомпоновкиДанных(Элементы.Втулки.Имя + "Состояние");
    Элемент.Оформление.УстановитьЗначениеПараметра("Доступность", Истина);
КонецПроцедуры
// <-
3 Fish
 
гуру
09.08.22
09:04
Какой-то бред. Сначала ставить запрет доступности, а потом пытаться его снять. Вы уж определитесь, нужна доступность или нет и в соответствии с этим уже настраивайте УО.
4 mikecool
 
09.08.22
09:07
(0) Доступность = Истина, когда Значение Не Заполнено пробовал?
5 dmt
 
09.08.22
09:18
(0) заводишь новый реквизит (колонку) формы в ТЧ "ЭтоНоваяСтрока", включаешь в условное оформление, заполняешь при добавлении строки
6 NIGHTHUNTER
 
09.08.22
10:43
Я сделал вот так

    Если НоваяСтрока и Объект.Втулки.Количество() > 1 и
        Объект.Втулки[ИндексТекущейСтроки -1].Состояние = ПредопределенноеЗначение("Перечисление.ХХХ_СостояниеВтулокВПроизводстве.Выполнено") Тогда
        ОткрытьДоступностьПоляСостояние();
    Иначе
        ЗакрытьДоступностьПоляСостояние();        
    КонецЕсли;


но тут проблема, если добавляется строка, и это поле активно, как положено, то при добавлении следующей, оно не активно тоже как положено
Но после оно блокируется и у той, что была предыдущей, и где была активность в этом поле

это свойство влияет на всю колонку только?
7 NIGHTHUNTER
 
09.08.22
11:00
если я делаю так, то не дает редактировать значения в предыдущей строке потом

    Если Объект.Втулки.Количество() > 1 Тогда
        ИндексТекущейСтроки = Объект.Втулки.Индекс(Элементы.Втулки.ТекущиеДанные);
        Если НоваяСтрока и Объект.Втулки[ИндексТекущейСтроки -1].Состояние = ПредопределенноеЗначение("Перечисление.ХХХ_СостояниеВтулокВПроизводстве.Выполнено") Тогда
            ОткрытьДоступностьПоляСостояние();
        Иначе
            ЗакрытьДоступностьПоляСостояние();        
        КонецЕсли;
    Иначе
        ОткрытьДоступностьПоляСостояние();
    КонецЕсли;
8 dmt
 
09.08.22
11:08
(6) у тебя доступность зависит от значения поля в предыдущей строке? решение все равно в (5): один раз заполни УО, потом рули значениями в строке
9 NIGHTHUNTER
 
09.08.22
11:16
(8) Пока сделал вот так

    Если Объект.Втулки.Количество() > 1 Тогда
        ИндексТекущейСтроки = Объект.Втулки.Индекс(Элементы.Втулки.ТекущиеДанные);
        Если НоваяСтрока и Объект.Втулки[ИндексТекущейСтроки -1].Состояние = ПредопределенноеЗначение("Перечисление.ХХХ_СостояниеВтулокВПроизводстве.Выполнено") Тогда
            ОткрытьДоступностьПоляСостояние();
        ИначеЕсли Не НоваяСтрока и Объект.Втулки[ИндексТекущейСтроки -1].Состояние = ПредопределенноеЗначение("Перечисление.ХХХ_СостояниеВтулокВПроизводстве.Выполнено") Тогда
            ОткрытьДоступностьПоляСостояние();
        Иначе    
            ЗакрытьДоступностьПоляСостояние();        
        КонецЕсли;
    Иначе
        ОткрытьДоступностьПоляСостояние();
    КонецЕсли;



да доступность зависит от значения в предыдущей строке
10 NIGHTHUNTER
 
09.08.22
11:24
(5) А чем заполняю???? Мне нужно что бы было всегда доступно для редактирования поле строки, перед которой в нем выполнено. Вижу с (9) не всегда срабатывает, а должно!!!
11 NIGHTHUNTER
 
09.08.22
11:26
Почему тут, не дает редактировать, ранее введенное значение? Когда я ввел уже других несколько строк, и где нет доступности в этом поле.
12 NIGHTHUNTER
 
09.08.22
11:29
Почему тут (9) я не могу вернуться к редактированию предыдущего поля? Это и не получится?
13 NIGHTHUNTER
 
09.08.22
11:31
(9) можно вернуться только к редактированию этого поля, если начать редактировать рядом стоящее поле.
А в этом самом, уже никак не запустить редактирование?