Оформление строк табличной части справочника на управляемых формах

1. vfeof 18.02.19 12:28 Сейчас в теме
Доброго всем!

Помогите с проблемой.

На форме справочника выведена табличная часть ВидыРасчетов и необходимо чтобы можно было редактировать колонки показателей
"ВидыРасчетовЗначениеПоказателя1" если "ВидыРасчетовПоказатель1".ЗаполняетсяВДокументе = Истина
"ВидыРасчетовЗначениеПоказателя2" если "ВидыРасчетовПоказатель2".ЗаполняетсяВДокументе = Истина
"ВидыРасчетовЗначениеПоказателя3" если "ВидыРасчетовПоказатель3".ЗаполняетсяВДокументе = Истина
"ВидыРасчетовЗначениеПоказателя4" если "ВидыРасчетовПоказатель4".ЗаполняетсяВДокументе = Истина
"ВидыРасчетовЗначениеПоказателя5" если "ВидыРасчетовПоказатель5".ЗаполняетсяВДокументе = Истина

Незнаю понятно ли я изъясняюсь - прикрепляю скрин формы



Вот как это пытаюсь делать (но безрезультатно):
//Работает с условным оформлением компоновки данных
&НаСервере
Процедура ОформитьТЧ()
	
		
	СписокПоказателейКРедактированию = ПолучитьСписокПоказателейКРедактированию();
	
	УсловноеОформление.Элементы.Очистить();
	
	//Управляем видимостью
	
	//Управляем доступностью

	//Создадим условные оформления
	Для Ключ = 1 ПО 5 Цикл
		
		Оформление = УсловноеОформление.Элементы.Добавить();
		
		//Отбор
		Отбор = Оформление.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
		Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ВидыРасчетовПоказатель"+Ключ);
		Отбор.ПравоеЗначение = СписокПоказателейКРедактированию;
		Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
		Отбор.Использование = Истина;
		
		//Оформление
		ПараметрКомпоновки = Оформление.Оформление.Элементы.Найти("ТолькоПросмотр");
		ПараметрКомпоновки.Значение = Истина;
		ПараметрКомпоновки.Использование = Истина;
		
		ПараметрКомпоновки = Оформление.Оформление.Элементы.Найти("Видимость");
		ПараметрКомпоновки.Значение = Истина;
		ПараметрКомпоновки.Использование = Истина;
		
		//Оформляемые поля 
		НовоеОформляемоеПоле = Оформление.Поля.Элементы.Добавить();
		НовоеОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("ВидыРасчетовПоказатель1"+Ключ); 
		НовоеОформляемоеПоле.Использование = Истина;
		
		НовоеОформляемоеПоле = Оформление.Поля.Элементы.Добавить();
		НовоеОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("ВидыРасчетовЗначениеПоказателя"+Ключ); 
		НовоеОформляемоеПоле.Использование = Истина;
		
		Оформление.Использование = Истина;
		
	КонецЦикла;
	
КонецПроцедуры //Процедура ОформитьТЧ()

&НаСервере
Функция ПолучитьСписокПоказателейКРедактированию()
	
	Запрос = Новый Запрос("ВЫБРАТЬ Ссылка ИЗ Справочник.ПоказателиРасчетаЗаработнойПлаты ГДЕ ЗаполняетсяВДокументе");	
	Список = Новый СписокЗначений;
	Список.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"));
	
	Возврат Список;
	
КонецФункции //Функция ПолучитьСписокПоказателейКРедактированию()
Показать
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
10. dhurricane 18.02.19 13:16 Сейчас в теме
(8) Еще поле отбора неверно указано. Надо писать полный путь к полю. Примерно так:
Объект.ВидыРасчетов.Показатель1

В оформляемых полях вроде все верно, менять не надо.
13. fd13 18.02.19 13:25 Сейчас в теме
(9) Условное оформление есть у динамического списка и у самой формы.

и почему и Таблицы нет условного оформления?


Это уже вопрос к разработчикам платформы.
14. vfeof 18.02.19 13:33 Сейчас в теме
(13)
(10)

Верно! не правильно отбор указывал - нужно указывать реквизит объекта указать а я указывал элемент формы.

Спасибо - заработало!
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. dhurricane 18.02.19 13:03 Сейчас в теме
(1) У Вас путаница в условном оформлении. Вы задает условие, что Вид расчетов показателя должен быть в списке, полученный запросом. В запросе проверяется условие "ЗаполняетсяВДокументе", но при этом устанавливаете "ТолькоПросмотр = Истина". Полагаю, нужно исправить условие на "НеВСписке".
8. vfeof 18.02.19 13:10 Сейчас в теме
(5) Никак не пашет. Такое чувство что условное оформление вообще никак не влияет на реальное отображение. Я пробовал и цвет менять - должна была первый показатель одним цветом а другие другим - не канает.

Не понимаю почему лыжи не едут.
10. dhurricane 18.02.19 13:16 Сейчас в теме
(8) Еще поле отбора неверно указано. Надо писать полный путь к полю. Примерно так:
Объект.ВидыРасчетов.Показатель1

В оформляемых полях вроде все верно, менять не надо.
11. dhurricane 18.02.19 13:18 Сейчас в теме
(8) Еще попробуйте возвращать своей функцией с запросом не массив, а список значений. Вроде, с этим тоже были у меня когда-то проблемы.
12. vfeof 18.02.19 13:21 Сейчас в теме
(11)
Еще попробуйте возвращать своей функцией с запросом не массив, а список значений. Вроде, с этим тоже были у меня когда-то проблемы.


Возвращается список значений


Список = Новый СписокЗначений;
Список.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"));
15. dhurricane 18.02.19 13:33 Сейчас в теме
(12) Да, плохо глядел, извините.
Тогда остается только исправить поле отбора.
2. vfeof 18.02.19 12:32 Сейчас в теме
https://infostart.ru/public/181336/ - читал вот этот материал, но у меня на форме нет кнопки "Настроить список" - может это как то связано с тем что мне не удается управлять настройками?
3. killitch 30 18.02.19 12:32 Сейчас в теме
В обработчике события ПриАктивацииЯчейки проверяйте какой показатель(колонка) и есть ли галка. И на основе этих данных либо позволяете редактировать либо нет.
4. vfeof 18.02.19 12:57 Сейчас в теме
(3) Нет такого события
Прикрепленные файлы:
6. fd13 18.02.19 13:04 Сейчас в теме
Есть :)
Прикрепленные файлы:
7. killitch 30 18.02.19 13:08 Сейчас в теме
(6)Вот туда и пихайте логику доступности.
9. vfeof 18.02.19 13:12 Сейчас в теме
(6) Спасибо, пробую.

но вопрос остается открытым - почему через условное оформление формы не удается управлять элементами?
и почему и Таблицы нет условного оформления?
13. fd13 18.02.19 13:25 Сейчас в теме
(9) Условное оформление есть у динамического списка и у самой формы.

и почему и Таблицы нет условного оформления?


Это уже вопрос к разработчикам платформы.
14. vfeof 18.02.19 13:33 Сейчас в теме
(13)
(10)

Верно! не правильно отбор указывал - нужно указывать реквизит объекта указать а я указывал элемент формы.

Спасибо - заработало!
Оставьте свое сообщение

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