|
УТ 11. Раскрасить табличную часть в документе | ☑ | ||
---|---|---|---|---|
0
Румата
20.02.18
✎
09:17
|
Обработка "УправлениеОтгрузкой" в стандартной УТ 11. Хочу по состоянию документов раскрасить их. Написал вот такой код :
МассивИменКолонокДляПодсветки = Новый Массив; МассивИменКолонокДляПодсветки.Добавить(Элементы.РаспоряженияНаОтгрузку.ПодчиненныеЭлементы.РаспоряженияНаОтгрузкуПолучатель.Имя); МассивИменКолонокДляПодсветки.Добавить(Элементы.РаспоряженияНаОтгрузку.ПодчиненныеЭлементы.РаспоряженияНаОтгрузкуГруппаТипДокумента.Имя); МассивИменКолонокДляПодсветки.Добавить(Элементы.РаспоряженияНаОтгрузку.ПодчиненныеЭлементы.РаспоряженияНаОтгрузкуРаспоряжениеНомер.Имя); МассивИменКолонокДляПодсветки.Добавить(Элементы.РаспоряженияНаОтгрузку.ПодчиненныеЭлементы.РаспоряженияНаОтгрузкуРаспоряжениеДата.Имя); МассивИменКолонокДляПодсветки.Добавить(Элементы.РаспоряженияНаОтгрузку.ПодчиненныеЭлементы.РаспоряженияНаОтгрузкуСостояние.Имя); МассивИменКолонокДляПодсветки.Добавить(Элементы.РаспоряженияНаОтгрузку.ПодчиненныеЭлементы.РаспоряженияНаОтгрузкуРаспоряжение.Имя); Для каждого ТекЭлемент из МассивИменКолонокДляПодсветки Цикл ОформляемоеПоле = ЭлементОформления.Поля.Элементы.Добавить(); ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных(ТекЭлемент); КонецЦикла; ПутьКПризнакуТребуетсяСертификация = "Объект.РаспоряженияНаОтгрузку.РаспоряженияНаОтгрузкуСостояние"; ЭлементОформления = УсловноеОформление.Элементы.Добавить(); ЭлементОформления.Использование = Истина; ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Желтый); ЭлементУсловия = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементУсловия.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ПутьКПризнакуТребуетсяСертификация); ЭлементУсловия.ПравоеЗначение = Перечисления.СостоянияОтбораТоваров.ОжидаетсяОтгрузка; ЭлементУсловия.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементУсловия.Использование = Истина; ===================================== Условие на оформление не срабатывает. Подскажите почему ? |
|||
1
Румата
20.02.18
✎
09:20
|
Пробовал вот так писать :
ЭлементУсловия.ПравоеЗначение = "отгрузка"; ЭлементУсловия.ВидСравнения = ВидСравненияКомпоновкиДанных.Содержит; Все равно условие не срабатывает ... |
|||
2
Румата
20.02.18
✎
09:22
|
В названии темы ошибся - таблицу надо раскрасить в обработке !!!!
|
|||
3
FIXXXL
20.02.18
✎
09:24
|
(0) без кода пробовал?
|
|||
4
Румата
20.02.18
✎
09:27
|
(FIXXXL) Без кода тоже пробовал, тоже не получается, там все рано на эту колонку надо отбор поставить....
Только начинаю осваивать управляемые формы... Помогите пожалуйста разобраться. |
|||
5
Румата
20.02.18
✎
09:29
|
Проблема в том, что я не могу понять что находится в колонке "РаспоряженияНаОтгрузкуСостояние". Текст ? Или перечисление ? Или ещё что-то ..
|
|||
6
Румата
20.02.18
✎
09:36
|
Вот такой код работает, только когда в модуле формы заменяю процедуру :
&НаСервере Процедура УстановитьУсловноеОформление() УсловноеОформление.Элементы.Очистить(); МассивИменКолонокДляПодсветки = Новый Массив; МассивИменКолонокДляПодсветки.Добавить(Элементы.РаспоряженияНаОтгрузку.ПодчиненныеЭлементы.РаспоряженияНаОтгрузкуПолучатель.Имя); МассивИменКолонокДляПодсветки.Добавить(Элементы.РаспоряженияНаОтгрузку.ПодчиненныеЭлементы.РаспоряженияНаОтгрузкуГруппаТипДокумента.Имя); МассивИменКолонокДляПодсветки.Добавить(Элементы.РаспоряженияНаОтгрузку.ПодчиненныеЭлементы.РаспоряженияНаОтгрузкуРаспоряжениеНомер.Имя); МассивИменКолонокДляПодсветки.Добавить(Элементы.РаспоряженияНаОтгрузку.ПодчиненныеЭлементы.РаспоряженияНаОтгрузкуРаспоряжениеДата.Имя); МассивИменКолонокДляПодсветки.Добавить(Элементы.РаспоряженияНаОтгрузку.ПодчиненныеЭлементы.РаспоряженияНаОтгрузкуСостояние.Имя); МассивИменКолонокДляПодсветки.Добавить(Элементы.РаспоряженияНаОтгрузку.ПодчиненныеЭлементы.РаспоряженияНаОтгрузкуРаспоряжение.Имя); ПутьКПризнакуТребуетсяСертификация = "Объект.РаспоряженияНаОтгрузку.РаспоряженияНаОтгрузкуСостояние"; ЭлементОформления = УсловноеОформление.Элементы.Добавить(); ЭлементОформления.Использование = Истина; ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Желтый); ЭлементУсловия = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементУсловия.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ПутьКПризнакуТребуетсяСертификация); ЭлементУсловия.ПравоеЗначение = Перечисления.СостоянияОтбораТоваров.ОжидаетсяОтгрузка; ЭлементУсловия.ВидСравнения = ВидСравненияКомпоновкиДанных.НЕРавно; ЭлементУсловия.Использование = Истина; Для каждого ТекЭлемент из МассивИменКолонокДляПодсветки Цикл ОформляемоеПоле = ЭлементОформления.Поля.Элементы.Добавить(); ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных(ТекЭлемент); КонецЦикла; КонецПроцедуры ======================= Но опять же работает только когда ВидСравнения = идСравненияКомпоновкиДанных.НЕРавно; Если ставлю условие Равно, отбор не работает... |
|||
7
Румата
20.02.18
✎
09:39
|
Получается все проблема в этих строках :
ЭлементУсловия.ПравоеЗначение = Перечисления.СостоянияОтбораТоваров.ОжидаетсяОтгрузка; ЭлементУсловия.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; Я пробовал вот так : ЭлементУсловия.ПравоеЗначение = "Отгрузка"; ЭлементУсловия.ВидСравнения = ВидСравненияКомпоновкиДанных.Содержит; Не работает ни один из вариантов. |
|||
8
FIXXXL
20.02.18
✎
09:48
|
(7) смотри в отладчике вот это лучше
"Объект.РаспоряженияНаОтгрузку.РаспоряженияНаОтгрузкуСостояние" смотри какой тип там лежит в таблице |
|||
9
Румата
20.02.18
✎
10:03
|
(FIXXXL) В этой же процедуре поставил точку остановы. Смотрю знаение "объект.РаспоряженияНаОтгрузку" - Поле объекта не обнаружено "РаспоряженияНаОтгрузку"
|
|||
10
Румата
20.02.18
✎
10:15
|
Вот так посмотрел в отладчике в процедуре "ПриОткрытии":
этаформа.РаспоряженияНаОтгрузку[0].Состояние = "В процессе отбора" и есть вот такое значение: этаформа.РаспоряженияНаОтгрузку[1].Состояние = "Ожидается отгрузка" Тип строка. Поменял условие на такое : ЭлементУсловия.ПравоеЗначение = "Ожидается отгрузка"; ЭлементУсловия.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; Не срабатывает условие! |
|||
11
catena
20.02.18
✎
10:17
|
этаформа.РаспоряженияНаОтгрузку[0].Состояние
РаспоряженияНаОтгрузку.РаспоряженияНаОтгрузкуСостояние По-моему разные пути, не? |
|||
12
catena
20.02.18
✎
10:17
|
Что там в таблице? ДС?
|
|||
13
Румата
20.02.18
✎
10:50
|
Разобрался, надо было вместо :
ПутьКПризнакуТребуетсяСертификация = "Объект.РаспоряженияНаОтгрузку.РаспоряженияНаОтгрузкуСостояние"; Написать : ПутьКПризнакуТребуетсяСертификация = "РаспоряженияНаОтгрузку.Состояние"; Вот работающий код : Процедура УстановитьУсловноеОформление() УсловноеОформление.Элементы.Очистить(); МассивИменКолонокДляПодсветки = Новый Массив; МассивИменКолонокДляПодсветки.Добавить(Элементы.РаспоряженияНаОтгрузку.ПодчиненныеЭлементы.РаспоряженияНаОтгрузкуПолучатель.Имя); МассивИменКолонокДляПодсветки.Добавить(Элементы.РаспоряженияНаОтгрузку.ПодчиненныеЭлементы.РаспоряженияНаОтгрузкуГруппаТипДокумента.Имя); МассивИменКолонокДляПодсветки.Добавить(Элементы.РаспоряженияНаОтгрузку.ПодчиненныеЭлементы.РаспоряженияНаОтгрузкуРаспоряжениеНомер.Имя); МассивИменКолонокДляПодсветки.Добавить(Элементы.РаспоряженияНаОтгрузку.ПодчиненныеЭлементы.РаспоряженияНаОтгрузкуРаспоряжениеДата.Имя); МассивИменКолонокДляПодсветки.Добавить(Элементы.РаспоряженияНаОтгрузку.ПодчиненныеЭлементы.РаспоряженияНаОтгрузкуСостояние.Имя); МассивИменКолонокДляПодсветки.Добавить(Элементы.РаспоряженияНаОтгрузку.ПодчиненныеЭлементы.РаспоряженияНаОтгрузкуРаспоряжение.Имя); ПутьКПризнакуТребуетсяСертификация = "РаспоряженияНаОтгрузку.Состояние"; ЭлементОформления = УсловноеОформление.Элементы.Добавить(); ЭлементОформления.Использование = Истина; ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Зеленый); ЭлементУсловия = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементУсловия.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ПутьКПризнакуТребуетсяСертификация); ЭлементУсловия.ПравоеЗначение = "жидается"; ЭлементУсловия.ВидСравнения = ВидСравненияКомпоновкиДанных.содержит; ЭлементУсловия.Использование = Истина; Для каждого ТекЭлемент из МассивИменКолонокДляПодсветки Цикл ОформляемоеПоле = ЭлементОформления.Поля.Элементы.Добавить(); ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных(ТекЭлемент); КонецЦикла; КонецПроцедуры ============ Всем спасибо, вопрос закрыт ! |
|||
14
VladZ
20.02.18
✎
10:53
|
(4) Не понял, в чем именно проблема сделать без кода.
|
|||
15
Румата
20.02.18
✎
11:25
|
(VladZ) Проблема была в процедуре:
Процедура УстановитьУсловноеОформление() УсловноеОформление.Элементы.Очистить(); КонецПроцедуры Она очищала условное оформление, когда сделал так : Процедура УстановитьУсловноеОформление() //УсловноеОформление.Элементы.Очистить(); КонецПроцедуры Вручную тоже заработало |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |