|
Изменение и запрет изменения в табличном поле.
| ☑ |
0
ЗлаяЗая
27.01.23
✎
11:31
|
Помогите, пожалуйста. Никак с событиями не разберусь.
Есть таблица в обработке.
Колонки: Номенклатура, Заказчик, Количество, Признак
Нужно сделать так: если Признак=1, то ничего в этой строке править нельзя.
Если Признак=2, то только ячейку "Количество".
Всякие события попробовала, никак не получается.
|
|
1
ЗлаяЗая
27.01.23
✎
11:32
|
Если Признак=3, то все можно править.
|
|
2
eddy_n
27.01.23
✎
11:36
|
Есть обработчик события у этого Элемента управления типа Таблица. Называется ПередНачаломИзменения. В нем и работай.
|
|
3
Trimax
27.01.23
✎
11:40
|
(2) Нафига? Есть оператор Доступность. Им и оперировать. Типа Если Признак=1 тогда ТекущаяСтрока.Доступность=Ложь.... Или через Элементы...
|
|
4
ЗлаяЗая
27.01.23
✎
11:43
|
(2) делала. там написала
Если Элемент.ТекущиеДанные.Признак=2 Тогда
Отказ=Истина;
КонецЕсли;
Тогда вся строка блокируется от изменений. А мне нужно 1 ячейку оставить.
|
|
5
Мультук
гуру
27.01.23
✎
11:43
|
(0) Я так понимаю, сначала нужно угадать обычные формы у вас или управляемые.
ИМХО, в управляемых формах пишем два условных оформления и всё.
|
|
6
ЗлаяЗая
27.01.23
✎
11:44
|
(5) обычные
|
|
7
Trimax
27.01.23
✎
11:46
|
(4) Если Элемент.ТекущиеДанные.Признак=2 Тогда
ТекущиеДанные.Доступность=Ложь;
Элемент.ТекущиеДанные.Количество.Доступность=Истина;
КонецЕсли;
|
|
8
Мультук
гуру
27.01.23
✎
11:53
|
(0)
Событие таб.части "ПриАктивизацииСтроки"
Процедура ТабличнаяЧасть1ПриАктивизацииСтроки(Элемент)
тек = Элемент.ТекущиеДанные;
Если тек.Признак = 1 Тогда //Ничего
ЭлементыФормы.ТабличнаяЧасть1.Колонки.Реквизит1.ТолькоПросмотр = Истина;
ЭлементыФормы.ТабличнаяЧасть1.Колонки.Количество.ТолькоПросмотр = Истина;
ИначеЕсли тек.Признак = 2 Тогда //только количество
ЭлементыФормы.ТабличнаяЧасть1.Колонки.Реквизит1.ТолькоПросмотр = Истина;
ЭлементыФормы.ТабличнаяЧасть1.Колонки.Количество.ТолькоПросмотр = Ложь;
Иначе //все
ЭлементыФормы.ТабличнаяЧасть1.Колонки.Реквизит1.ТолькоПросмотр = Ложь;
ЭлементыФормы.ТабличнаяЧасть1.Колонки.Количество.ТолькоПросмотр = Ложь;
КонецЕсли;
КонецПроцедуры
|
|
9
eddy_n
27.01.23
✎
11:54
|
(7) Всё правильно. Только лишний раз дёргать ТекущиеДанные - признак плохого тона. Вынеси вначале, примерно так:
ТекДанные = Элементы.Товары.ТекущиеДанные;
И работай дальше в процедуре только с ТекДанные.
|
|
10
ЗлаяЗая
27.01.23
✎
13:11
|
Спасибо. Получилось как в (8).
ПриАктивизацииКолонки и ПриАктивизацииЯчейки ковыряла, а это событие -нет :)
|
|
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший