Условное оформление таблицы на форме #754558


#0 by termos
Здравствуйте! Скажите, пожалуйста, почему следующий код неправильно отрабатывает, когда добавляешь сравнение с перечислением? (без него работает) Процедура УстановитьОформлениеТабличнойЧастиТовары(Форма) Без куска кода (элемента отбора) всё работает: А как только добавляешь - перестает. В типовых решениях в конфигурации посмотрел сравнения с перечислениями имеются и отрабатывают корректно, а в данном случае не отрабатывает. У кого какие мысли? Подскажите, куда смотреть, пожалуйста.
#1 by jurassic
правое значение ни разу не список
#2 by termos
Да, извиняюсь! Я по разному пробовал. И в списке и просто.. Вот осталось ВСписке перед копированием сюда! Сорри. Факт в том что не работает и не ругается даже если
#3 by termos
Если не добавлять сравнение с перечислением, то условное оформление работает и все отмененные строки отмечаются красным цветом, а если добавлять сравнение с перечислением для проверки, что это товар, то ничего не происходит и не отмечается.
#4 by jurassic
а код написал для "неотменённые товары красным"
#5 by termos
Тороплюсь в ответах. Всё верно - задача отметить все неотмененные строки, которые имеют тип номенклатуры "товар". Данный код не работает:
#6 by jurassic
руками пробовал?
#7 by Nuobu
А Работает?
#8 by termos
попробовал сейчас. Срабатывает первое условие, но не срабатывает второе, то есть окрашиваются все неотмененные строки и в том числе услуги.
#9 by termos
и товары.
#10 by termos
Вот коллекция элементов отбора - посмотрел при отладке. Выглядит всё правильно.
#11 by termos
И в данном случае отрабатывает только первое условие
#12 by jurassic
отрабатывают оба, сравнение с типом у тебя истина
#13 by Nuobu
Тебя это ни на что не наталкивает??))
#14 by termos
У меня в документе 2 строки. В первой строке тип номенклатуры товар, а во второй тип номенклатуры услуга и обе строки не отменены. При отборе, допустим, "Отменено = Ложь" и "ТипНоменклатуры Не Равно Товар" должна окраситься только одна строчка - вторая. Или я не прав?
#15 by termos
как же истина, если в документе разные типы номенклатуры имеются? почему окрашиваются обе?
#16 by jurassic
>как же истина так работает конкатенация
#17 by termos
А если делаешь сравнение "Равно Товар", то не окрашивается ни одна строка :)
#18 by jurassic
*конъюнкция, конечно
#19 by jurassic
а вот тут уже ложь
#20 by termos
Так какой выход из ситуации? Не могу понять что-то.
#21 by jurassic
взять в руки мышь и пытать форму интерактивно, пока не дойдёт
#22 by termos
спасибо за совет! но как пытать её интерактивно, если интерактивного доступа к условному оформлению таблицы нет?
#23 by Nuobu
Юзай простой отбор.
#24 by jurassic
это как?
#25 by termos
Всё я понял о чем речь :) Спасибо! ИСТИНА, ЛОЖЬ в логической операции И.
#26 by jurassic
аллах акбар
#27 by termos
)))) Спасибо. Хорошего Вам дня!
#28 by termos
Что-то всё равно не могу понять что не так - условия отбора в коде прописываю следующие - "Отменено = Ложь" И "ТипНоменклатуры Равно Товар". Группа элементов отбора И. Строки ТЧ документа (отмененных строк не имеется): 1) Номенклатура - Товар: Отменено = Ложь (результат - ИСТИНА), ТипНоменклатуры = Товар (результат - ИСТИНА) ИТОГО ПО СТРОКЕ: Истина И Истина = Истина! Эта строчка подходит по отбору. Должна быть окрашена. 2) Номенклатура - Услуга: Отменено = Ложь (результат - ИСТИНА), ТипНоменклатуры = Товар (результат - ЛОЖЬ) ИТОГО ПО СТРОКЕ: Истина И Ложь = Ложь! Эта строчка не подходит по отбору. Не должна быть окрашена. А у меня же при данном условии не окрашивается ни одна строка. Что я делаю не так? Ведь условие то верное стоит.
#29 by jurassic
>ТипНоменклатуры = Товар (результат - ИСТИНА) вот откуда этот вывод?
#30 by termos
Тип номенклатуры установлен в карточке товара у данной номенклатуры и он равен "Товар".
#31 by termos
По сути этим условием мы и проверяем тип номенклатуры Объект.Товары.Номенклатура.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Товар
#32 by jurassic
а поморгай Отключеной. или вовсе убери
#33 by jurassic
Отмененой
#34 by termos
Убрал условие на проверку отменена ли позиция... Ситуация не изменилась. Возможно ли, что неправильно отрабатывает потому что путь такой длинный? Объект.Товары.Номенклатура.ТипНоменклатуры
#35 by jurassic
на форме есть этот тип?
#36 by jurassic
а пофиг, у меня такое не видит, даже если есть
#37 by termos
Так как быть в итоге?
#38 by jurassic
ну, например, заделать колонку и заполнять её
#39 by jurassic
или "номенклатура в списке товаров"
#40 by termos
Сейчас попробую решение с колонкой и отпишусь.
#41 by termos
В общем, действительно проблема в длинном пути в отборах условного оформления. Создал новый реквизит табличной части программно, заполняя его типом номенклатуры и в последующем сравнивал уже с этим новым реквизитом, а не с длинным путем "Объект.Товары.Номенклатура.ТипНоменклатуры". Всё заработало! jurassic, благодарю за внимание и идеи!
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С