Имя: Пароль:
1C
1С v8
Недоступность изменения значения ячейки в табличной части документа (для отдельной строки)
0 K1RSAN
 
26.04.19
13:51
В общем, надо реализовать момент, что в зависимости от вида движения в данной строке в табличной части, например, приход обнулялся становился недоступен для редактирования, и наоборот. Решено было использовать обработчик "ОбработкаВыбора" и "ПриАктивизацииСтроки". При выборе строки все нормально работает. НО при таком коде после изменения вида движения с прихода на расход сразу "обнуление" не срабатывает, а только при перевыборе строки. Если убрать комментарий во второй ветке ветвения - почему-то значение вида движения вообще не меняется. Не могу понять в чем проблема

&НаКлиенте
Процедура ДвижениеВидДвиженияДСОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
    ТекСтрока = Элементы.Движение.ТекущиеДанные;
    Если ВыбранноеЗначение.Пустая() Тогда
        ТекСтрока.Приход.Доступность = Ложь;
        ТекСтрока.Расход.Доступность = Ложь;
        ТекСтрока.ПервичныйДокумент.Доступность = Ложь;
        Сообщить("Выберите вид движения Денежных средств!");
    Иначе
        //ВидДвижения = ПолучитьВидДвижения(ВыбранноеЗначение);
        //Если ВидДвижения = "1" Тогда
        //    Элементы.ДвижениеПриход.Доступность = Истина;
        //    Элементы.ДвижениеРасход.Доступность = Ложь;
        //    ТекСтрока.Расход = 0;
        //ИначеЕсли ВидДвижения = "2" Тогда
        //    Элементы.ДвижениеПриход.Доступность = Ложь;
        //    ТекСтрока.Приход = 0;
        //    Элементы.ДвижениеРасход.Доступность = Истина;            
        //КонецЕсли;    
    
    КонецЕсли;
    ДвижениеПриАктивизацииСтроки(Элемент);
КонецПроцедуры

&НаКлиенте
Процедура ДвижениеПриАктивизацииСтроки(Элемент)
    
    ТекСтрока = Элементы.Движение.ТекущиеДанные;
    ВидДвижения = ПолучитьВидДвижения(ТекСтрока.ВидДвиженияДС);
    Если ВидДвижения = "1" Тогда
        Элементы.ДвижениеПриход.Доступность = Истина;
        Элементы.ДвижениеРасход.Доступность = Ложь;
        ТекСтрока.Расход = 0;
    ИначеЕсли ВидДвижения = "2" Тогда
        Элементы.ДвижениеПриход.Доступность = Ложь;
        ТекСтрока.Приход = 0;
        Элементы.ДвижениеРасход.Доступность = Истина;            
    КонецЕсли;
    
КонецПроцедуры
1 sqr4
 
26.04.19
14:01
При начале редактирования же вроде решили
2 K1RSAN
 
26.04.19
14:04
(1) Спасибо, попробую
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn