Имя: Пароль:
1C
 
какую выбрать процедуру для изменения доступности на УФ документа
0 Филипп Остырко
 
27.03.19
11:09
я хотел заблокировать реквизит2 табл части при заполнении значения реквизита1 . работает,но когда я удаляю значение реквизита1, то реквизит 2 всё равно не доступен. как сделать, что он ставал доступным?

&НаКлиенте
Процедура Реквизит1ПриИзменении(Элемент)
    Если Не ПустаяСтрока(Элементы.Реквизит1) Тогда
        Элементы.Реквизит2.Доступность = Ложь;
    Иначе
        Элементы.Реквизит2.Доступность = Истина;
    КонецЕсли;
КонецПроцедуры
    
КонецПроцедуры
1 ДенисЧ
 
27.03.19
11:12
А условие-то срабатывает? Может, там не строка? Может, Проверить ЗначениеЗаполнено() ?
2 Филипп Остырко
 
27.03.19
11:16
(1) Сначала делал так, но вышла ошибка :Проверка мутабельных значений на заполненность не поддерживается
3 palsergeich
 
27.03.19
11:18
Элементы.табличнаячасть.подчиненныеэлементы.найти(имяреквизмта).толькопросмотр
4 vdss
 
27.03.19
11:19
Ошибка тут: ПустаяСтрока(Элементы.Реквизит1)

Проверять на пустую строку надо не элемент формы, а значение реквизита ТЧ.
5 palsergeich
 
27.03.19
11:20
Хотя не, это немного про другое, приношу извинения
6 palsergeich
 
27.03.19
11:21
Какого типа значения возможны в этом реквизите ТЧ?
7 vdss
 
27.03.19
11:24
Причем у тебя может быть в первой строке реквизит1 заполнен (реквизит2 должен быть недоступен), а во второй строке реквизит1 пустой (реквизит2 должен быть доступен). Таким образом, доступность должна определяться не только при изменении реквизита1, но и при активизации строки (при переключении между строками ТЧ).

ТекущиеДанные = Элементы.ИмяТЧ.ТекущиеДанные;
Если ТекущиеДанные <> Неопределено Тогда
    Элементы.Реквизит2.Доступность = ЗначениеЗаполнено(ТекущиеДанные.Реквизит1);
КонецЕсли;

Этот код поместить в отдельную процедуру и вызывать ее при изменении, и при активизации строки
8 Филипп Остырко
 
27.03.19
11:25
(6) тип реквизита СправочникСсылка.Справочник
9 Филипп Остырко
 
27.03.19
11:25
(7) Попробую.Спасибо
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.