| 
    
            
         
         | 
    
    
  | 
Скрыть строку в табличном поле по условию | ☑ | ||
|---|---|---|---|---|
| 
    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) Так и сделал. Все работает.     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |