Имя: Пароль:
1C
 
Как управлять доступностью элемента строки дерева 1с
0 gabd_marat
 
12.09.18
10:38
Есть дерево , при заполнении на форме нужно некоторые строки заблокировать для изменения .

    ВыборкаНоменклатура = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    Пока ВыборкаНоменклатура.Следующий() Цикл
        ВеткаДерева = ДеревоЗначенийВходногоКонтроля.Строки.Добавить();                  
        ВеткаДерева.НоменклатураПартия = ВыборкаНоменклатура.Номенклатура;
        ВыборкаПартия = ВыборкаНоменклатура.Выбрать();
        Пока ВыборкаПартия.Следующий() Цикл
            СтрокаДерева = ВеткаДерева.Строки.Добавить();
            ДокПоступление = СтрЗаменить(Строка(ВыборкаПартия.ПоступлениеТоваровУслуг),"Поступление товаров и услуг ","");
            СтрокаДерева.НоменклатураПартия = "Партия " + ДокПоступление + " Строка " + Строка(ВыборкаПартия.НомерСтрокиПартии);
            СтрокаДерева.Статус = ВыборкаПартия.Статус;
            Если НЕ СтрокаДерева.Статус = Перечисления.ТХ_СтатусыВходногоКонтроля.Новый Тогда
                СтрокаДерева.ФлагНачатьПроверку.Доступность = Ложь;
            КонецЕсли;
            Если СтрокаДерева.Статус = Перечисления.ТХ_СтатусыВходногоКонтроля.Новый Тогда
                СтрокаДерева.ФлагПеренестиНаСкладМатериалов.Доступность = Ложь;
            КонецЕсли;
            
        КонецЦикла;        
    КонецЦикла;
1 gabd_marat
 
12.09.18
10:39
Если НЕ СтрокаДерева.Статус = Перечисления.ТХ_СтатусыВходногоКонтроля.Новый Тогда
                СтрокаДерева.ФлагНачатьПроверку.Доступность = Ложь;
            КонецЕсли;

Так не работает
2 FIXXXL
 
12.09.18
10:39
(1) при активизации строки блокируй-разблокируй колонку
3 gabd_marat
 
12.09.18
10:41
(2) Сейчас попробую
4 Segate
 
12.09.18
10:42
перед началом изменения колонки рассчитывай доступность и пули в отказ, если надо
5 gabd_marat
 
12.09.18
11:00
Процедура ДеревоЗначенийВходногоКонтроляПриАктивизацииСтроки(Элемент)
    
    Если НЕ Элемент.ТекущаяСтрока.Статус = Перечисления.ТХ_СтатусыВходногоКонтроля.Новый Тогда
        Элемент.ТекущаяСтрока.НачатьПроверку.Доступность = Ложь;
    КонецЕсли;
    Если Элемент.ТекущаяСтрока.Статус = Перечисления.ТХ_СтатусыВходногоКонтроля.Новый Тогда
        Элемент.ТекущаяСтрока.ФлагПеренестиНаСкладМатериалов.Доступность = Ложь;
    КонецЕсли;
    
КонецПроцедуры

Ошибку выдает, Значение не является значением объектного типа (Доступность)
6 Вафель
 
12.09.18
11:02
условное оформление нужно использовать
7 gabd_marat
 
12.09.18
11:03
(6) ПриВыводеСтроки?
8 gabd_marat
 
12.09.18
11:03
(6) Есть пример?
9 FIXXXL
 
12.09.18
11:14
(7) у тебя формы управляемые?
10 gabd_marat
 
12.09.18
11:23
(9) Нет
11 Вафель
 
12.09.18
11:24
смотри как субконто в бп сделаны, например в авансовом отчете
12 gabd_marat
 
12.09.18
11:24
Нету бп рядом
13 FIXXXL
 
12.09.18
11:25
(10) тогда ПриАктивизацииСтроки или Выбор с отменой действия
14 gabd_marat
 
12.09.18
11:25
Процедура ДеревоЗначенийВходногоКонтроляПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
    
    Если ДанныеСтроки.Статус = Перечисления.ТХ_СтатусыВходногоКонтроля.Новый Тогда
        
        ОформлениеСтроки.ЦветФона = WebЦвета.Белый;
        ДанныеСтроки.ФлагПеренестиНаСкладМатериалов.Доступность = Ложь;
        
    ИначеЕсли ДанныеСтроки.Статус = Перечисления.ТХ_СтатусыВходногоКонтроля.ВыполняетсяПроверка Тогда
        
        ОформлениеСтроки.ЦветФона = WebЦвета.Желтый;
        
    ИначеЕсли ДанныеСтроки.Статус = Перечисления.ТХ_СтатусыВходногоКонтроля.ПроверкаПройденаУспешно Тогда
        
        ОформлениеСтроки.ЦветФона = WebЦвета.Зеленый;
        
    ИначеЕсли ДанныеСтроки.Статус = Перечисления.ТХ_СтатусыВходногоКонтроля.ПроверкаНеПройдена Тогда
        
        ОформлениеСтроки.ЦветФона = WebЦвета.Красный;      
        
    КонецЕсли;
        
КонецПроцедуры
15 gabd_marat
 
12.09.18
11:26
ДанныеСтроки.ФлагПеренестиНаСкладМатериалов.Доступность = Ложь;
Так можно обращаться к флагу строки
16 gabd_marat
 
12.09.18
11:28
У меня так же называется реквизит таблицы значений ФлагПеренестиНаСкладМатериалов
17 FIXXXL
 
12.09.18
11:29
(14) не надо ПриВыводе
18 gabd_marat
 
12.09.18
11:32
Колонка дерева значений - ПеренестиНаСкладМатериалов,  а данные флажка колонки - ФлагНачатьПроверку, Таблица значений реквизит - ФлагНачатьПроверку
19 gabd_marat
 
12.09.18
11:33
(17) ПриВыводе ни как не получиться?
20 gabd_marat
 
12.09.18
11:33
Хотелось что бы пользователь мог изначально видеть доступные  поля для изменения
21 FIXXXL
 
12.09.18
11:37
(20) красить можешь ПриВыводе
а вот блочить не получится: у тебя 10 строк на экране, 10 раз вызывается ПриВыводе, повезет тебе с блоком КОЛОНКИ?
22 gabd_marat
 
12.09.18
11:40
(21) А как можно сделать что бы пользователь мог изначально видеть доступные  поля для изменения
23 gabd_marat
 
12.09.18
11:41
или может убрать отображение флага?
24 FIXXXL
 
12.09.18
11:44
(22) покрась доступные(недоступные) ячейки
я ж хз твою задачу...
25 gabd_marat
 
12.09.18
11:53
(24) Есть дерево значений на форме, формируется по нажатию кнопки, в отображении дерева, нужно что бы пользователь не мог установить флажки истина в строках где колонка статус = Новый
26 Вафель
 
12.09.18
11:54
при выводестроки нужно делать
27 Вафель
 
12.09.18
11:54
или при полученииданных. но для дерева - это одинаково
28 gabd_marat
 
12.09.18
11:55
Там есть свойство (или как называется) "ячейки" дерева Доступность?
29 gabd_marat
 
12.09.18
12:20
Похоже можно управлять доступностью только колонки
30 gabd_marat
 
12.09.18
12:36
Как обратиться к свойству колонки дерева значений доступность?
31 gabd_marat
 
12.09.18
12:48
Заработало
Процедура ДеревоЗначенийВходногоКонтроляПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
    
    Если ДанныеСтроки.Статус = Перечисления.ТХ_СтатусыВходногоКонтроля.Новый Тогда
        
        ОформлениеСтроки.ЦветФона = WebЦвета.Белый;
        ОформлениеСтроки.Ячейки.НачатьПроверку.ОтображатьФлажок = Ложь;
        
    ИначеЕсли ДанныеСтроки.Статус = Перечисления.ТХ_СтатусыВходногоКонтроля.ВыполняетсяПроверка Тогда
        
        ОформлениеСтроки.ЦветФона = WebЦвета.Желтый;
        
    ИначеЕсли ДанныеСтроки.Статус = Перечисления.ТХ_СтатусыВходногоКонтроля.ПроверкаПройденаУспешно Тогда
        
        ОформлениеСтроки.ЦветФона = WebЦвета.Зеленый;
        
    ИначеЕсли ДанныеСтроки.Статус = Перечисления.ТХ_СтатусыВходногоКонтроля.ПроверкаНеПройдена Тогда
        
        ОформлениеСтроки.ЦветФона = WebЦвета.Красный;      
        
    КонецЕсли;
        
КонецПроцедуры
32 Вафель
 
12.09.18
12:50
лучше писать
ОформлениеСтроки.Ячейки.НачатьПроверку.ТолькоПросмотр = Истина
33 gabd_marat
 
12.09.18
12:53
(32) ок
34 gabd_marat
 
12.09.18
13:09
(32) Как для корня дерева установить только просмотр если в подчиненных все только просмотр?
35 Вафель
 
12.09.18
13:12
(34) нужно пройтись по подчиненным и сложить и установить для корня
36 gabd_marat
 
12.09.18
13:12
(35) Понтяно
37 gabd_marat
 
12.09.18
15:21
(35) Можешь подсказать как?
38 gabd_marat
 
12.09.18
15:24
Есть процедура думаю на ее примере можно сделать но не все понятно как

Процедура УстановитьФлагиРодительскойВетки(РодительскаяВетка, Элемент)
    
    Если РодительскаяВетка = Неопределено Тогда
        Возврат;
    КонецЕсли;
    
    Состояние = Неопределено;
    Для Каждого ПодчиненнаяВетка Из РодительскаяВетка.Строки Цикл
            Если Состояние = Неопределено  Тогда
                Состояние = ПодчиненнаяВетка.ФлагНачатьПроверку;
            Иначе
                Если Не Состояние = ПодчиненнаяВетка.ФлагНачатьПроверку  Тогда
                    Состояние = 2;
                    Прервать;
                КонецЕсли;
            КонецЕсли;
        

    КонецЦикла;
    
    Если Состояние <> Неопределено Тогда
        РодительскаяВетка.ФлагНачатьПроверку = Состояние;
        УстановитьФлагиРодительскойВетки(РодительскаяВетка.Родитель, Элемент);
    
    
КонецПроцедуры // УстановитьФлагиРодительскойВетки()
39 Вафель
 
12.09.18
15:24

Для каждого ПодчиненнаяСтрока из Строка.Строки Цикл
КонецЦикла
40 Вафель
 
12.09.18
15:25
посчитай количество строк с условием и всего количество строк
41 Вафель
 
12.09.18
15:25
42 gabd_marat
 
12.09.18
15:58
Это все делать в проц привыводе?
43 Вафель
 
12.09.18
16:16
зачем при выводе? добавь поле, заполняй его при выводе проверяй
44 gabd_marat
 
12.09.18
16:18
(43) Как обратиться к оформлению строки родителя?
45 Вафель
 
12.09.18
17:41
(44) не нужно к оформлению обращаться
46 Вафель
 
12.09.18
17:41
обрадайся к данным