|   |   | 
| 
 | Изменение и запрет изменения в табличном поле. | ☑ | ||
|---|---|---|---|---|
| 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). 
 ПриАктивизацииКолонки и ПриАктивизацииЯчейки ковыряла, а это событие -нет :) | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |