Скрыть строку в табличном поле по условию #658817


#0 by ssserg
(По результатам темы ) Добавил столбец с остатком к форме выбора справочника "Серии номенклатуры"(т.е. столбец "Остаток" не является реквизитом источника данных)  как описано здесь Но теперь встала другая задача - если остаток не равен 0, то нужно скрывать всю строку. Как я понимаю удаление строки из табличного поля мне не подходит, т.к. источником данных является справочник, т.е. мне её нужно таки скрыть. Но как? Ещё как вариант: программно менять источник данных с СправочникСписок.СерииНоменклатуры на таблицу значений из которой будут уже удалены строки, где Остаток = 0. Затем отображать эту ТЗ. Но при этом будет теряется всё оформление стоблцов Таб.поля.
#1 by MKZM
Не совсем вник, но на началовыбора поставить условие
#2 by Михаил Козлов
На список повесить фильтр, в котором вид сравнения будет "в списке", а значение отбора - список серий, по которым есть остатки.
#3 by mistеr
По-моему, тебе не подходит форма списка справочника. В типовых посмотри, все формы подбора либо общие, либо обработки.
#4 by ssserg
так в том то и дело, что это не список, а табличное поле. Возможно, что и не подходит, но надо как то на ней всё отображать.
#5 by zladenuw
ну а тип данных у него какой
#6 by ssserg
СправочникСписок.СерииНоменклатуры
#7 by zladenuw
ну так что тебе мешает сделать что написано в ?
#8 by Лефмихалыч
используй динамический список, Люк. Источник = запрос, а запрсом данные из виртуальной таблицы остатков. Быстро и просто. Таблица значений нагибнёт тебе производительнсть и на клиент ломанутся несметные тучи ненужных данных
#9 by ssserg
Обычные формы :(
#10 by ssserg
т.е. пройтись сначала по строкам ЭлементыФормы.СправочникСписок записать в ТЗ в каких строках у меня получился не 0, затем установить отбор "в списке" для СправочникСписок?
#11 by zladenuw
ты где получаешь остатки ?
#12 by zladenuw
вот там же делай отбор по массиву номенклатуры с остатками.
#13 by zladenuw
в самом запросе условие на >0
#14 by ssserg
Заработало. На форме сделал флаг отбора серий с положительным остатком. И в событии ПриПолученииДанных: Если СтрТЗ.КоличествоОстаток > 0 Тогда                    СписокОтбораСерий.Добавить(ОформлениеСтроки.ДанныеСтроки.Ссылка); КонецЕсли; Ну и далее отбор по этому списку. ОФФ: Как тут в сообщениях оформлять код?
#15 by ssserg
Он сам оказывается оформляется.
#16 by ssserg
Вот подстава. Оказывается остатки проставляются не по всей номенклатуре, а только по видимой её части в списке, из за чего нужно всегда полностью прокручивать список с номенклатурой и только потом устанавливать отбор, иначе если было в 37 записях 4 с остатками, при этом на список одновременно помещается только 36, то и отбор применится к этим 36, а к тридцать седьмой не применится, хотя у нее и может быть остаток > 0 нужно как то заставить получать сразу все записи независимо от того видны они или нет.
#17 by Defender aka LINN
У динамического списка есть разные (одна) галочки, связанные с чтением данных. З.Ы. А я один не пойму, нахрена городить колонку с остатком, чтобы потом убрать из списка все позиции, где в ней есть значения?
#18 by ssserg
в обычных формах нет динамического списка. Это для того, чтобы был отбор по этому значению.
#19 by Defender aka LINN
"в обычных формах нет динамического списка." - Сделай управляемую. "Это для того, чтобы был отбор по этому значению" - и как, появился?
#20 by ssserg
"Сделай управляемую. " Ну если уж совсем никаких вариантов, то попробую. Думаю сейчас чем это чревато? "и как, появился?" я же написал ранее, что добавил на форму флаг, который выполняет функцию отбора по значению.
#21 by Defender aka LINN
#22 by ssserg
бугагашенька
#23 by Defender aka LINN
Это к "и как, появился?". К предложению про УФ не относиццо.
#24 by Михаил Козлов
Не нужно в ПриПолученииДанных: в форме выбора номенклатура известна, поэтому ненапряжно получить ВСЕ серии этой номенклатуры с положительными остатками (в Перед или ПриОткрытии). Если нужно по флажку, то вешайте получение списка серий на изменение флажка.
#25 by ssserg
Так и сделал. Все работает.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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