Изменение цвета фона Поля ввода в режиме ТолькоПросмотр

1. kmish 02.02.22 10:20 Сейчас в теме
Добрый день,
есть проблема с изменением свойства ЦветФона у Поля ввода.
Поле в режиме ТолькоПросмотр. Если поле редактируемое, данная проблема не возникает.
Поле должно копироваться (поэтому Доступность = false - не вариант).
Есть реквизит, который выводится в форме. Фон поля реквизита хочу сделать серым:

Код не устанавливает цвет, хотя значение свойства устанавливается:
thisform.Элементы.ext_internalNum.ЦветФона = Новый Цвет(244, 244, 244);


Установка свойства через настройку формы также работает, но цвет в итоге не меняется (см. рис)

Поле должно быть серым.
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
9. user-z99999 68 02.02.22 13:44 Сейчас в теме
(1)
При открытии формы, задаём цвет.
А в событии ПередЗаписью - возвращаем изменения, как было раньше.
(включать свойство Доступность или ТолькоПросмотр нельзя т.к. цвет не будет работать.
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)   
	
	Если ЗначениеЗаполнено(Объект.ВидНоменклатуры) Тогда
		Элементы.ВидНоменклатуры.ЦветФона = Новый Цвет(255, 0, 0);  
		//Элементы.ВидНоменклатуры.Доступность = Ложь;
		//Элементы.ВидНоменклатуры.ТолькоПросмотр = Истина;  		 	
	КонецЕсли; 
	
КонецПроцедуры    

&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
	
	Если ЗначениеЗаполнено(Объект.Ссылка.ВидНоменклатуры) Тогда
		Объект.ВидНоменклатуры = Объект.Ссылка.ВидНоменклатуры;
	    //Объект.ВидНоменклатуры  // новое значение
	    //Объект.Ссылка.ВидНоменклатуры // старое значение
	КонецЕсли;	  
	
КонецПроцедуры


Показать
Obertone; +1 Ответить
17. spacecraft 03.02.22 13:07 Сейчас в теме
(1) устанавливать свойство Доступность в Ложь будет наглядно.
18. kmish 03.02.22 13:24 Сейчас в теме
(17) не пойдет, в таком случае поле не копируемым становится.
2. user1203706 13 02.02.22 11:34 Сейчас в теме
3. kmish 02.02.22 11:46 Сейчас в теме
(2)
ЦветФонаПоля

нет такого реквизита
4. antz 02.02.22 11:57 Сейчас в теме
Да все работает, вот, сделал цвет посерее.
Прикрепленные файлы:
ВнешняяОбработка1.epf
5. kmish 02.02.22 12:10 Сейчас в теме
(4)точно работает, проблема оказалась тривиальная
когда ТолькоПросмотр = true,
то ЦветФона перестает работать...
а смысл серого как раз показать, что поле readonly

есть решения такой проблемы?
Прикрепленные файлы:
7. namazi74 4 02.02.22 12:47 Сейчас в теме
(5)
точно работает, проблема оказалась тривиальная
когда ТолькоПросмотр = true,
то ЦветФона перестает работать...
а смысл серого как раз показать, что поле readonly


снять галочку Доступность и будет серым, не?
19. kmish 03.02.22 13:26 Сейчас в теме
(7) нет, должно копироваться
6. user1203706 13 02.02.22 12:26 Сейчас в теме
(5) ну сними только просмотр, делов-то, в предопределенных событиях, типа Выбор воткни Отказ = Истина если фон серенький
8. user1203706 13 02.02.22 13:08 Сейчас в теме
(7) не будет..УФ оно такое..
10. BomjBandit 02.02.22 13:51 Сейчас в теме
А через условное оформление не проще, не?
Прикрепленные файлы:
11. user-z99999 68 02.02.22 14:03 Сейчас в теме
(10)
Интересно, как как делать через условное оформление?
Поле может быть текстовым, полем выбора.
Например с текстовым полем что делать в условном оформлении?
12. BomjBandit 02.02.22 14:27 Сейчас в теме
(11) там есть свойство заполнено/ не заполнено
13. user-z99999 68 02.02.22 14:35 Сейчас в теме
(12)
свойство заполнено/ не заполнено - как это поможет, когда текст меняется на другой, если это текстовое поле.

Решение в (9) смотрели?
14. kmish 02.02.22 14:48 Сейчас в теме
(10)
через условное оформление не проще

никакой реакции
Прикрепленные файлы:
22. fixin 4258 06.08.23 18:44 Сейчас в теме
(14) Через условное оформление работает:
	ЭлементОформления = УсловноеОформление.Элементы.Добавить();
	
	ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Доступно"); // имя поля
	ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено; // либо задаем свой
	ЭлементОтбора.Использование = Истина;       
	
	ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.ЦветМорскойВолны);
	
	//ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить();
	//ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("ТоварыНоменклатура");
	//ПолеОформления.Использование = Истина;
	
	ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить();
	ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("ТоварыДоступно");
	ПолеОформления.Использование = Истина;

Показать
23. пользователь 06.08.23 21:37
Сообщение было скрыто модератором.
...
24. fixin 4258 07.08.23 13:08 Сейчас в теме
(23) Код мой. А где логика насчет закомментированных строк? Я проверял на доступном поле Номенклатура и на недоступном.
15. SlavaKron 02.02.22 15:18 Сейчас в теме
Можно поместить реквизит в группу и поиграться с цветом фона группы.
ikekoval; InJey; Obertone; AnryMc; +4 Ответить
21. Obertone 76 27.03.23 14:33 Сейчас в теме
(15) Очень дельный совет, спасибо!
26. InJey 28.01.24 13:55 Сейчас в теме
(15) отличный совет, решает проблему с ограничением при установке флага "только просмотр"
16. user-z99999 68 03.02.22 13:01 Сейчас в теме
В событии ПриИзменении возвращать первоначальное значение.
https://infostart.ru/public/1598060/
Obertone; +1 Ответить
20. user1559729 12.04.22 19:31 Сейчас в теме
25. soulner 399 27.11.23 16:31 Сейчас в теме
Элементы.ДоговорКонтрагента.ТолькоПросмотр = Ложь;
Элементы.ДоговорКонтрагента.КнопкаВыбора = Ложь;
Элементы.ДоговорКонтрагента.КнопкаСоздания = Ложь;
Элементы.ДоговорКонтрагента.РедактированиеТекста = Ложь;

Вот рабочее решение для поля, фон установить можно, значение поля изменить нельзя, скопировать значение можно, правда кнопка выбора остаётся, не удалось её убрать.
27. Сметанин 29.01.24 13:16 Сейчас в теме
(25) Да снять галку "Редактирование текста" - решение.
Оставьте свое сообщение

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