Имя: Пароль:
1C
 
Запрет редактирования строки ТЧ
0 sania_kas
 
29.11.10
15:52
Здравствуйте!
Подскажите пожалуйста, можно ли каким-то образом запретить редактирование не всей ТЧ, а отдельных строк?
Спасибо!
1 Maxus43
 
29.11.10
15:55
В принципе возможно, но криво. Например в ПриАктивизацииСтроки() - проверить можно ли редактировать строку и поставить ТолькоЧтение для всей ТЧ, при активизации другой строки - снять признак. Будет казаться что только конкретные строки можно редактировать...
2 mikecool
 
29.11.10
15:57
ПриНачалеРедактирования
отказ = Истина
3 Maxus43
 
29.11.10
15:59
Короче вариантогв много, штатно - никак, только кодить
4 sania_kas
 
29.11.10
16:07
Всем спасибо, сделал следующим образом:
Задача такая: если в документе в ТЧ значение ПВХ реквизита "Серия" (Справочник.СерииНоменклатуры) принимает значение истина, то запретить изменение данной строки.

Процедура ТоварыПередНачаломИзменения(Элемент, Отказ)
   

   
   //Запрет изменения строк ТЧ "Товары", если в них находится номенклатура, которая зарезервирована.
   Если (Проект = Справочники.Проекты.СельскохозяйственнаяТехника) Или (Проект = Справочники.Проекты.СельскохозяйственнаяТехникаJohnDeere) Или (Проект = Справочники.Проекты.СельскохозяйственнаяТехникаKvernelandтаінша) Тогда
           
       ЗапросЗначенияРезерва = Новый Запрос;
       ЗапросЗначенияРезерва.УстановитьПараметр("Серия", Элемент.ТекущаяСтрока.СерияНоменклатуры);
       ЗапросЗначенияРезерва.Текст =
       "ВЫБРАТЬ
       |    ЗначенияСвойствОбъектов.Объект КАК Серия,
       |    ЗначенияСвойствОбъектов.Значение КАК ЗначениеСерия
       |ИЗ
       |    РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
       |ГДЕ
       |    ЗначенияСвойствОбъектов.Объект ССЫЛКА Справочник.СерииНоменклатуры
       |    И ЗначенияСвойствОбъектов.Свойство = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СвойстваОбъектов.РезервПоСериям)
       |    И ЗначенияСвойствОбъектов.Объект = &Серия
       |    И ЗначенияСвойствОбъектов.Значение = ИСТИНА";
       
       Результат = ЗапросЗначенияРезерва.Выполнить();
       Если Не Результат.Пустой() Тогда
           Отказ = Истина;    
       КонецЕсли;    
       
   КонецЕсли;
       
       
   
КонецПроцедуры
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.