Имя: Пароль:
1C
1С v8
Скрыть строку в табличном поле по условию
0 ssserg
 
29.03.13
19:53
(По результатам темы v8: Вычисляемое поле в форме выбора )

Добавил столбец с остатком к форме выбора справочника "Серии номенклатуры"(т.е. столбец "Остаток" не является реквизитом источника данных)  как описано здесь Книга знаний: Размещение колонки с остатками в списке справочника
Но теперь встала другая задача - если остаток не равен 0, то нужно скрывать всю строку.
Как я понимаю удаление строки из табличного поля мне не подходит, т.к. источником данных является справочник, т.е. мне её нужно таки скрыть. Но как?

Ещё как вариант: программно менять источник данных с СправочникСписок.СерииНоменклатуры на таблицу значений из которой будут уже удалены строки, где Остаток = 0.
Затем отображать эту ТЗ.
Но при этом будет теряется всё оформление стоблцов Таб.поля.
1 MKZM
 
29.03.13
20:23
Не совсем вник, но на началовыбора поставить условие
2 Михаил Козлов
 
29.03.13
20:29
На список повесить фильтр, в котором вид сравнения будет "в списке", а значение отбора - список серий, по которым есть остатки.
3 mistеr
 
29.03.13
21:51
По-моему, тебе не подходит форма списка справочника. В типовых посмотри, все формы подбора либо общие, либо обработки.
4 ssserg
 
31.03.13
21:38
(2) так в том то и дело, что это не список, а табличное поле.
(3) Возможно, что и не подходит, но надо как то на ней всё отображать.
5 zladenuw
 
31.03.13
22:05
(4) ну а тип данных у него какой
6 ssserg
 
31.03.13
22:46
(5) СправочникСписок.СерииНоменклатуры
7 zladenuw
 
31.03.13
22:57
ну так что тебе мешает сделать что написано в (2) ?
8 Лефмихалыч
 
31.03.13
23:08
(0) используй динамический список, Люк.
Источник = запрос, а запрсом данные из виртуальной таблицы остатков. Быстро и просто. Таблица значений нагибнёт тебе производительнсть и на клиент ломанутся несметные тучи ненужных данных
9 ssserg
 
31.03.13
23:14
(8) Обычные формы :(
10 ssserg
 
31.03.13
23:18
(7) т.е. пройтись сначала по строкам ЭлементыФормы.СправочникСписок
записать в ТЗ в каких строках у меня получился не 0,
затем установить отбор "в списке" для СправочникСписок?
11 zladenuw
 
31.03.13
23:24
(10) ты где получаешь остатки ?
12 zladenuw
 
31.03.13
23:26
вот там же делай отбор по массиву номенклатуры с остатками.
13 zladenuw
 
31.03.13
23:26
в самом запросе условие на >0
14 ssserg
 
01.04.13
00:38
Заработало. На форме сделал флаг отбора серий с положительным остатком. И в событии ПриПолученииДанных:
Если СтрТЗ.КоличествоОстаток > 0 Тогда                    СписокОтбораСерий.Добавить(ОформлениеСтроки.ДанныеСтроки.Ссылка);
КонецЕсли;

Ну и далее отбор по этому списку.

ОФФ: Как тут в сообщениях оформлять код?
15 ssserg
 
01.04.13
00:38
(14) Он сам оказывается оформляется.
16 ssserg
 
01.04.13
13:27
Вот подстава. Оказывается остатки проставляются не по всей номенклатуре, а только по видимой её части в списке,
из за чего нужно всегда полностью прокручивать список с номенклатурой и только потом устанавливать отбор,
иначе если было в 37 записях 4 с остатками, при этом на список одновременно помещается только 36,
то и отбор применится к этим 36, а к тридцать седьмой не применится, хотя у нее и может быть остаток > 0

нужно как то заставить получать сразу все записи независимо от того видны они или нет.
17 Defender aka LINN
 
01.04.13
13:33
(16) У динамического списка есть разные (одна) галочки, связанные с чтением данных.
З.Ы. А я один не пойму, нахрена городить колонку с остатком, чтобы потом убрать из списка все позиции, где в ней есть значения?
18 ssserg
 
01.04.13
13:45
(17) в обычных формах нет динамического списка.

Это для того, чтобы был отбор по этому значению.
19 Defender aka LINN
 
01.04.13
13:47
(18) "в обычных формах нет динамического списка." - Сделай управляемую.
"Это для того, чтобы был отбор по этому значению" - и как, появился?
20 ssserg
 
01.04.13
13:55
"Сделай управляемую. "
Ну если уж совсем никаких вариантов, то попробую. Думаю сейчас чем это чревато?

"и как, появился?"
я же написал ранее, что добавил на форму флаг, который выполняет функцию отбора по значению.
21 Defender aka LINN
 
01.04.13
14:01
22 ssserg
 
01.04.13
14:03
(21) бугагашенька
23 Defender aka LINN
 
01.04.13
14:04
(22) Это к "и как, появился?". К предложению про УФ не относиццо.
24 Михаил Козлов
 
01.04.13
16:54
(14) Не нужно в ПриПолученииДанных: в форме выбора номенклатура известна, поэтому ненапряжно получить ВСЕ серии этой номенклатуры с положительными остатками (в Перед или ПриОткрытии). Если нужно по флажку, то вешайте получение списка серий на изменение флажка.
25 ssserg
 
01.04.13
19:20
(24) Так и сделал. Все работает.