Запрет редактирования ячейки в текущей строке табличной части документа.

1. Twirus 27.11.14 17:49 Сейчас в теме
День добрый. Подскажите пож-та как реализовать Если в заказе покупателя выбирается номенклатура из определенной группы, то ячейка "Размещение" в этой строке должна быть неактивна для изменения.А в остальных строках активна.
 ТекущаяСтрока = ЭлементыФормы.Товары.ТекущиеДанные;
	 
   Если ТекущаяСтрока.Номенклатура.ПринадлежитЭлементу(Справочники.Номенклатура(Ссылка)) Тогда
           ОформлениеСтроки.Ячейки.Размещение.ТолькоЧтение = Истина;
       КонецЕсли;


В какому событию формы привязать процедуру?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Agapov_Stas 1 27.11.14 18:20 Сейчас в теме
(1) Twirus, при ВыводеСтроки()
6. lefthander 18.01.18 17:18 Сейчас в теме
(1)Может ПриАктивацииЯчейки() ?
8. user641855_i185 21.03.20 14:44 Сейчас в теме
В моем случае надо было запретить редактировать колонку "ТоварыГоденДо" в тех строках, где Количество > 0. Я нашел вот такое решение.

&НаКлиенте
Процедура ТоварыПриАктивизацииЯчейки(Элемент)
	Количество = Элемент.ТекущиеДанные.Количество;
	Если Количество > 0 И Элемент.ТекущийЭлемент.Имя = "ТоварыГоденДо" Тогда
		Элемент.ТекущийЭлемент.ТолькоПросмотр = Истина;
	Иначе
		Элементы.ТоварыГоденДо.ТолькоПросмотр = Ложь;
	КонецЕсли;
КонецПроцедуры
Показать
mistervoron; rpashkovsky; any__uta; +3 Ответить
9. sb111 9 31.08.20 23:16 Сейчас в теме
(8)
Элемент.ТекущийЭлемент.Имя

+1 )
azbyka231; nayd; +2 Ответить
10. any__uta 04.02.22 05:10 Сейчас в теме
(8)
Количество = Элемент.ТекущиеДанные.Количество;
Если Количество > 0 И Элемент.ТекущийЭлемент.Имя = "ТоварыГоденДо" Тогда
Элемент.ТекущийЭлемент.ТолькоПросмотр = Истина;
Иначе
Элементы.ТоварыГоденДо.ТолькоПросмотр = Ложь;
КонецЕсли;

(8)
Спасибо)
3. Brawler 455 18.12.17 19:35 Сейчас в теме
Конечно я вовремя отвечаю)))

Мое видение решения ситуации такое.

Процедура ВалютыИКурсыПередНачаломИзменения(Элемент, Отказ)
	ТекущиеДанные = ЭлементыФормы.ВалютыИКурсы.ТекущиеДанные;
	Если ТекущиеДанные <> Неопределено И ТекущиеДанные.Валюта = ВалютаРубль Тогда
		Отказ = Истина;
	КонецЕсли;
КонецПроцедуры
4. PerlAmutor 129 18.01.18 16:36 Сейчас в теме
(3) Не сработает, если было разрешено менять хоть одну ячейку и после неё пользователь просто кликнул (нажал Tab, Alt+Tab) на другую, которую запрещено менять.
5. Boneman 298 18.01.18 16:44 Сейчас в теме
(4) совершенно верно,
именно поэтому тут кодировать вообще ничего не нужно, а нужно все сделать тупо условным оформлением.
criptid; SagittariusA; maiUsik; 7mya; Torero; +5 Ответить
7. sv_baranov 6 10.02.20 16:14 Сейчас в теме
У меня была задача запретить редактирование ячейки цены, если недостаток прав.
Я реализовал такое же вот так:
&НаКлиенте
Процедура СписокПродукцииПередНачаломИзменения(Элемент, Отказ)
	Если Элемент.ТекущиеДанные.Цена<>0 Тогда
		Элементы.СписокПродукцииЦена.Доступность=ДоступностьПоляЦена(); 	          КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура СписокПродукцииПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
	Элементы.СписокПродукцииЦена.Доступность=Истина;
КонецПроцедуры
Показать


Т.е. при выборе строки таблицы,проверяем и если нельзя редактировать ячейку, запрещаем редактировать всю колонку. После того как ушел из этой строки - снова разрешаем любое редактирование. У меня работает.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот