|
Как управлять доступностью элемента строки дерева 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
|
обрадайся к данным
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |