Имя: Пароль:
1C
 
Отражение записей регистра сведений.
0 Pinokio
 
11.02.20
10:26
Доброго времени суток уважаемые знатоки).

Есть справочник номенклатура, в него мы добавили табличное поле, где выводим список значений из регистра сведений.
на данный момент там отражены полностью все записи.
ЗАдача такая. сделать ПриАктивацииСтроки() чтобы выводило те записи из регистра которые относятся именно к этой номенклатуре.

ЭтаФорма.ЭлементыФормы.ТабличноеПолеАналоги ТипЗначение = РегистрСведенийСписок.Аналоги;

В регистре 2 измерения Номенклатура и Аналог.


Вот такой запрос на отбор сделал. но как мне в этом табличном поле, показать только те. которые нашел запрос.
или может как то еще задать параметры. отбора.
1 Волшебник
 
модератор
11.02.20
10:30
И где здесь запрос на отбор?
2 butterbean
 
11.02.20
10:30
УФ?
3 CaIIIka
 
11.02.20
10:47
(2) Судя по "ЭлементыФормы" - нет.
4 spiller26
 
11.02.20
10:48
(0) Если УФ, динамический список на форме с запросом параметром.
При активации менять параметр.
5 Pinokio
 
11.02.20
10:58
Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Аналоги.Аналог
        |ИЗ
        |    РегистрСведений.Аналоги КАК Аналоги
        |ГДЕ
        |    Аналоги.Номенклатура = &Номенклатура";
    
    Запрос.УстановитьПараметр("Номенклатура", ЭтаФорма.ЭлементыФормы.СправочникСписок.ТекущаяСтрока.Ссылка);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        
        
        
    КонецЦикла;
6 Pinokio
 
11.02.20
10:59
spiller26 -  Вот как реализовать вашу мысль.
7 Pinokio
 
11.02.20
11:02
настройки отбора почему то в ошибку улетает "метод объекта не обнаружен",
8 Pinokio
 
11.02.20
11:05
НаборЗаписей = ЭтаФорма.ЭлементыФормы.ТабличноеПолеАналоги.НастройкаОтбора;//  это отработало


НаборЗаписей.Номенклатура.Установить(ЭтаФорма.ЭлементыФормы.СправочникСписок.ТекущаяСтрока.Ссылка);// Не понимает установить.  
НаборЗаписей.Отбор.Номенклатура.Установить(ЭтаФорма.ЭлементыФормы.СправочникСписок.ТекущаяСтрока.Ссылка);// Не понимает установить. и отбор.
9 catena
 
11.02.20
11:08
(8)А если не Настройки, а просто Отбор?
10 CaIIIka
 
11.02.20
11:09
Вы бы сказали, что у вас обычные формы, неуправляемые.

Не особо уже помню, как с ними работать. Можно таблицу значений (ТабЗн) сделать и привязать к ней табличное поле. В нее грузить результат запроса.

В процедуре ПриАктивизацииСтроки

Дальше как в (5) половину текста, потом

    Результат = Запрос.Выполнить();
    
    Если Результат.Пустой() Тогда
    
        Возврат;
    
    КонецЕсли;
    
    ТабЗн.Загрузить(Результат.Выгрузить());
11 CaIIIka
 
11.02.20
11:11
+10 Возможно как-то через отборы напрямую можно, но я не помню. Давно не кодил в обычных формах. А через ТЗ должно работать.
12 Pinokio
 
11.02.20
11:12
Отбор  ругается. не видит метода.
через ТабЧасть не хотелось бы( сам понимаю что так проще.
13 НЕА123
 
11.02.20
11:14
ОтборСтрок
14 Pinokio
 
11.02.20
11:21
В данных формы видна структура
- ТабличноеПолеАналоги
     - Отбор            
           - Номенклатура
                  Значение
           - Аналог
                  Значение
15 НЕА123
 
11.02.20
11:28
(14)
определись уж, с чем ты работаешь.
16 Pinokio
 
11.02.20
11:28
НастройкаОтбор = ЭтаФорма.Отбор;//  отрабатывает нормально

НастройкаОтбор.Наименование.Значение   = ЭтаФорма.ЭлементыФормы.СправочникСписок.ТекущаяСтрока.Ссылка; // неверный тип значения

НастройкаОтбор.Наименование.Значение   = Справочники.Номенклатура.НайтиПоКоду("000000002");// так тоже не верный тип значения.
17 Pinokio
 
11.02.20
11:29
Работаем с ТабличноеПолеАналоги - (РегистрСведенийСписок.Аналоги)
18 НЕА123
 
11.02.20
11:31
(17)
в (8) Элемент формы, однако.
19 НЕА123
 
11.02.20
11:36
ТабличноеПолеАналоги.Отбор.Номенклатура.Установить(Нечто);
20 catena
 
11.02.20
11:49
(16)Ну надо немножко СП почитать, а не методом тыка перебирать знакомые буквы

Отбор = ОтчетОстатки.ПостроительОтчета.Отбор;
Если Отбор.Найти("Номенклатура") = Неопределено Тогда
    Отбор.Добавить("Номенклатура");
КонецЕсли;
Отбор["Номенклатура"].Использование = Истина;
Отбор["Номенклатура"].Значение      = Номенклатура;
Отбор["Номенклатура"].ВидСравнения  =
        ?(Номенклатура.ЭтоГруппа,
            ВидСравнения.ВСпискеПоИерархии,
            ВидСравнения.Равно);

С регистром так же.
21 Pinokio
 
11.02.20
12:10
catena
Метод недоступен для данного объекта.
22 Pinokio
 
11.02.20
12:17
нашОтбор = ЭтаФорма.ТабличноеПолеАналоги.Отбор;
Номенклатура = ЭтаФорма.ЭлементыФормы.СправочникСписок.ТекущаяСтрока.Ссылка;

нашОтбор["Номенклатура"].Использование = Истина;
нашОтбор["Номенклатура"].Значение      = Номенклатура;
нашОтбор["Номенклатура"].ВидСравнения  =
        ?(Номенклатура.ЭтоГруппа,
            ВидСравнения.ВСпискеПоИерархии,
            ВидСравнения.Равно);
//  РАБОЧИЙ КОД )

catena спасибо большое) ты супер!!!!!
Всем остальным тоже очень благодарен.