|
как запретить редактировать строку, за исключением 1 колонки |
☑ |
0
temmy70
03.10.13
✎
07:19
|
В табличной части есть булевый реквизит. И по нему блокирую для редактирования всю строку табличного поля Товары. Но нужно разрешить редактировать некоторые колонки. Проверяю доступ в событии ТоварыПередНачаломИзменения, но если мы зайдем в разрешенную ячейку, то можем редактировать всю строку, переходя в соседние колонки. Идеально было бы проверять в ТоварыПриАктивизацииЯчейки, но там нет Отказа. Подскажите, как быть-то. :)
|
|
1
chelentano
03.10.13
✎
07:21
|
(0) кури "ПриПолученииДанных", там указывай доступность для ячейки
|
|
2
kosts
03.10.13
✎
07:26
|
(0) Можно установить только просмотр для всех нужных колонок
|
|
3
chelentano
03.10.13
✎
07:26
|
типа:
Для каждого ОформлениеСтроки Из ОформленияСтрок Цикл
ДанныеСтроки = ОформлениеСтроки.ДанныеСтроки;
Если ДанныеСтроки.ТвояЯчейка = Истина Тогда
ОформлениеСтроки.ЯчейкаДляПросмотра.ТолькоПросмотр = Истина;
КонецЕсли;
КонецЦикла;
|
|
4
chelentano
03.10.13
✎
07:27
|
(3) точнее: формлениеСтроки.Ячейки.ЯчейкаДляПросмотра.ТолькоПросмотр = Истина;
|
|
5
temmy70
03.10.13
✎
07:28
|
(1) "ПриПолученииДанных" вызывается уже после того как я что-то поменял. Допустим зашел в разрешенную колонку 1, потом перешел в колонку 3, и только после смены значения в колонке 3 вызывается эта процедура.
|
|
6
temmy70
03.10.13
✎
07:29
|
(4) мож туплю, щас попробую
|
|
7
chelentano
03.10.13
✎
07:30
|
(5) ты не прав
|
|
8
chelentano
03.10.13
✎
07:31
|
(5) если смущает ПриПолученииДанных, то делай то же самое ПриВыводеСтроки
|
|
9
kosts
03.10.13
✎
07:32
|
ЭлементыФормы.РаботникиОрганизации.Колонки.Колонка1.ТолькоПросмотр = Истина;
|
|
10
chelentano
03.10.13
✎
07:33
|
(9) ему нужен ТолькоПросмотр не для всей колонки, а для определённых строк
|
|
11
kosts
03.10.13
✎
07:34
|
(10) Где это написано?
|
|
12
chelentano
03.10.13
✎
07:35
|
(11) в (0) ёптыть
|
|
13
temmy70
03.10.13
✎
07:35
|
(11) в (0) писал, что блокирую строку по признаку строки, но нужно разрешить только некоторые колонки
|
|
14
kosts
03.10.13
✎
07:37
|
Ну ок, тогда
|
|
15
temmy70
03.10.13
✎
07:49
|
(7) точно не прав.
заработало вот так:
Для каждого ОформлениеСтроки Из ОформленияСтрок Цикл
ДанныеСтроки = ОформлениеСтроки.ДанныеСтроки;
Если ДанныеСтроки.ст_ТоварОплачен = Истина Тогда
Для каждого Ячейка из ОформлениеСтроки.Ячейки Цикл
Если не Ячейка.Имя = "д_Доставка" Тогда
ОформлениеСтроки.Ячейки[Ячейка.Имя].ТолькоПросмотр = Истина;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла
Большое спасибо!
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший