Доступность элемента в строке табличной части формы документа УФ

1. webresurs 228 08.05.18 12:40 Сейчас в теме
Доброго времени суток!

В форме Документа есть таблица часть Продукция с реквизитами:
Номенклатура
Спецификация
ТОперации (по умолчании доступность =ложь)
КолВо


&НаКлиенте
Процедура ПродукцияСпецификацияПриИзменении(Элемент)
 		СтрокаТаблицы = Элементы.Продукция.ТекущиеДанные;
		Если СтрокаТаблицы.Спецификация.Пустая() Тогда
        	       СтрокаТаблицы.ТОперации.Доступность = Ложь;
		Иначе
			СтрокаТаблицы.ТОперации.Доступность = Истина;
		КонецЕсли;
КонецПроцедуры
Показать


выдает ошибку нет элемента доступность...

Как можно заблокировать элемент текущей строки ТОперации пока не выберут другой элемент Спецификацию этой же строки ?
По теме из базы знаний
Найденные решения
13. Skromnyi 13 08.05.18 14:01 Сейчас в теме
(10) Можете через настройки условного оформления сделать или программно:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	//Ваш код
	УстановитьУсловноеОформление();
	//Ваш код
	
КонецПроцедуры

&НаСервере
Процедура УстановитьУсловноеОформление()

	Элемент = УсловноеОформление.Элементы.Добавить();
	
	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ПродукцияТОперации.Имя);
	
	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Продукция.Спецификация");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
	
	Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
	Элемент.Оформление.УстановитьЗначениеПараметра("ЦветФона", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
	
КонецПроцедуры
Показать
Прикрепленные файлы:
rmarkovych; GODART; Aspire1C; ЧИА; Yan_Malyakov; fokses; simgo83; testnv0; ByByKa; user1147832; user1343611; POWone; mirrr; sanja; webresurs; +15 Ответить
5. kudlach 13 08.05.18 13:26 Сейчас в теме
У текущих данных нет доступности.

Проставить доступность можно только по всей колонке в таблице целиком.
Если нужно выборочно доступность организовать - посмотрите "ПередНачаломИзменения".
И там если условия разрешения не выполняются - отменяйте. Можно с выводом сообщений.
user1252642; HIVvich; webresurs; +3 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
10. Skromnyi 13 08.05.18 13:41 Сейчас в теме
(1) Так у Вас не получиться, нужно делать через условное оформление формы и желательно по стандарту.
13. Skromnyi 13 08.05.18 14:01 Сейчас в теме
(10) Можете через настройки условного оформления сделать или программно:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	//Ваш код
	УстановитьУсловноеОформление();
	//Ваш код
	
КонецПроцедуры

&НаСервере
Процедура УстановитьУсловноеОформление()

	Элемент = УсловноеОформление.Элементы.Добавить();
	
	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ПродукцияТОперации.Имя);
	
	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Продукция.Спецификация");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
	
	Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
	Элемент.Оформление.УстановитьЗначениеПараметра("ЦветФона", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
	
КонецПроцедуры
Показать
Прикрепленные файлы:
rmarkovych; GODART; Aspire1C; ЧИА; Yan_Malyakov; fokses; simgo83; testnv0; ByByKa; user1147832; user1343611; POWone; mirrr; sanja; webresurs; +15 Ответить
2. THEBESTolo4b 10 08.05.18 12:50 Сейчас в теме
а не проще через видимость поставить? при выборе нужного тебе реквизита или при изменении поставить видимость того что нужно тебе
3. webresurs 228 08.05.18 12:51 Сейчас в теме
4. webresurs 228 08.05.18 13:24 Сейчас в теме
можно сделать
Элементы.ПродукцияТОперации.Доступность = Ложь;


, но опять это для всей колонки будет, а надо для этого элемента этой строки
5. kudlach 13 08.05.18 13:26 Сейчас в теме
У текущих данных нет доступности.

Проставить доступность можно только по всей колонке в таблице целиком.
Если нужно выборочно доступность организовать - посмотрите "ПередНачаломИзменения".
И там если условия разрешения не выполняются - отменяйте. Можно с выводом сообщений.
user1252642; HIVvich; webresurs; +3 Ответить
9. kudlach 13 08.05.18 13:40 Сейчас в теме
Лучшее - предложил в (5)
Дальше , как меня учили - вникай сам.
12. webresurs 228 08.05.18 14:01 Сейчас в теме
(5) дошло в ТЧ - Продукция - Свойства - "ПередНачаломИзменения"

спасибо!
14. Boneman 302 08.05.18 14:41 Сейчас в теме
(12) а теперь, на заблокированной строке поклацай мышкой.
В смысле, зайди в режим редактирования какой-нибудь доступной колонки (н-р) спецификация, и не нажимая ввод мышкой перетыкнись на заблокированную колонку.
Все нормально ? Не разблокируется она ?
15. webresurs 228 08.05.18 14:57 Сейчас в теме
(14) - нет

- но возникла проблема в другом не работает на сервере

"Текущие данные таблицы недоступны на сервере"
16. Boneman 302 08.05.18 15:03 Сейчас в теме
(15) а чего, не хочешь условное оформление настроить ? Ведь даже код писать не нужно в этом случае, и работает железно. Там и доступность и видимость, и раскрашивание...что хочешь можно сделать, построчно. Условие проверки заполненности там тоже есть.
17. webresurs 228 09.05.18 13:58 Сейчас в теме
(16) - а можно примерчик?
а то все для не управляемых форм попадают...
18. Skromnyi 13 09.05.18 22:15 Сейчас в теме
(17) Я же Вам написал пример и скрин привел......
19. webresurs 228 10.05.18 06:09 Сейчас в теме
6. kudlach 13 08.05.18 13:29 Сейчас в теме
ПередНачаломИзменения относится не к реквизиту (колонке), а ко всей таблице.
Там уже смотрим Текущие данные и текущую колонку которую пытаемся начать менять, проверяем и или разрешаем действие или отменяем
7. webresurs 228 08.05.18 13:36 Сейчас в теме
удалил ТОперации (по умолчании доступность =ложь), добавил

&НаКлиенте
Процедура ПродукцияНоменклатураПриИзменении(Элемент)
	Элементы.ПродукцияТОперации.Доступность = Ложь;
КонецПроцедуры


и оставил код
&НаКлиенте
Процедура ПродукцияСпецификацияПриИзменении(Элемент)
         СтрокаТаблицы = Элементы.Продукция.ТекущиеДанные;
        Если СтрокаТаблицы.Спецификация.Пустая() Тогда
                   СтрокаТаблицы.ТОперации.Доступность = Ложь;
        Иначе
            СтрокаТаблицы.ТОперации.Доступность = Истина;
        КонецЕсли;
КонецПроцедуры
Показать


- пока тогда такое решение..., пока вы не предложите лучшего !?
8. kudlach 13 08.05.18 13:39 Сейчас в теме
(7) Ты, опять таки, при изменении одного значения в таблице меняешь доступность по всей колонке для всех строк.
11. webresurs 228 08.05.18 13:55 Сейчас в теме
(8) не понимаю...

ТекущийЭлемент.ПодчиненныеЭлементы.ПродукцияТОперации.Доступность

- объект не обнаружен
20. Nalsur 27.12.18 17:48 Сейчас в теме
Через условное оформление можно регулировать доступность для каждой отдельной строки ТЧ, однако.
Оставьте свое сообщение

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