Имя: Пароль:
1C
1С v8
Отбор в форме списка
0 STAYEKR
 
28.06.12
13:13
Нужно при открытии формы списка некоего регистра выводить данные по текущему элементу справочника. Реализовать нужно через список значений.

   Список = Новый СписокЗначений;
   Перем1= РеквФормы1;
   Список .Добавить(Перем1);

Что делать дальше, помогите! Читаю похожие темы, вникнуть не могу никак ((( Заранее спасибо!
1 Рэйв
 
28.06.12
13:13
зачем список значений?  Устанавливай нормально отбор строк при открытии формы.
2 butterbean
 
28.06.12
13:14
(1) наверно насяльника-старший-программист сказал через список делать
3 Рэйв
 
28.06.12
13:15
(2)В сад насяльника :-)
4 STAYEKR
 
28.06.12
13:17
Нужно выводить значения 2-х реквизитов. Имеется элемент справочника ЭС1 (к примеру, микрорайон). Реквизит1 (к примеру, Дом) имеет подчиненный реквизит2 (к примеру, квартира). Данные должны выводиться по дому, где в какой-либо квартире изменилось количесвто жильцов. И да, насяльника у меня зверь и бьет меня! ((
5 Рэйв
 
28.06.12
13:17
(0)Форма=РегистрыСведений.Имя.ПолучитьФормуСписка()

Форма.РегистрСведенийСписок.Отбор.НужныйРеквизит.Установить(Ссылка);
Форма.Открыть();

как то так.
6 Рэйв
 
28.06.12
13:20
Форма=РегистрыСведений.Имя.ПолучитьФормуСписка()

Форма.РегистрСведенийСписок.Отбор.Дом.Установить(Дом);
Форма.РегистрСведенийСписок.Отбор.Квартира.Установить(Квартира);
//можно даже
Форма.РегистрСведенийСписок.Отбор.ПолЧерепахиХозяина.Установить(Пол);
Форма.Открыть();
7 Рэйв
 
28.06.12
13:20
(6)->(4)
8 STAYEKR
 
28.06.12
13:20
(5) такая конструкция выводит данные по всем "микрорайонам", а нужно по конкретному
9 sanja26
 
28.06.12
13:21
Отбор (Filter)
Элементы коллекции:

ЭлементОтбора
Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются элементы отбора.
Возможно обращение к элементу отбора посредством оператора [...]. В качестве аргумента передается индекс элемента (нумерация с 0).

Свойства:

<Имя элемента отбора> (<Filter element name>)

Методы:

Добавить (Add)
Индекс (IndexOf)
Количество (Count)
Найти (Find)
Получить (Get)
ПолучитьДоступныеПоля (GetAvailableFields)
Сбросить (Reset)
Сдвинуть (Move)
Удалить (Delete)
УстановитьДоступныеПоля (SetAvailableFields)

Описание:

Предназначен для хранения условий отбора.
Представляет собой коллекцию элементов отбора. Используется для установки фильтрации данных в различных выборках, наборах записей, визуальных списках.
Каждый из элементов может устанавливать одно условие. Весь объект представляет собой составное условие, состоящее из отдельных условий, описываемых элементами, соединяющимися по "И".

Доступность:

Сервер, толстый клиент, внешнее соединение.
10 Рэйв
 
28.06.12
13:21
(8)См (6)
11 sanja26
 
28.06.12
13:21
делай через структуру
12 STAYEKR
 
28.06.12
13:22
граждане, насяльник будет бить меня палкой и перестанет кормить, если я эту потеху не осилю через список значений((
13 Рэйв
 
28.06.12
13:23
(12)А ты ему скажи, что сделал через список и покажи результат. Не полезет же он в код если все будет работать!:-)
14 STAYEKR
 
28.06.12
13:25
(13) Предпочтительнее через список, уважаемый
15 butterbean
 
28.06.12
13:29
(14) у тебя этот список значений где-то на форме сбоку от списка регистра и в нем все реквизиты элемента справочника из текущей (выделенной) строки списка регистра?? так??
16 STAYEKR
 
28.06.12
13:31
Да и выводиться значения должны по определенному элементу справочника. И если выделена группа справочника или не выделено ничего, то отбор не осуществется. Так как-то
17 butterbean
 
28.06.12
13:34
(16) понятно, ты ссылку текущего элемента справочника уже получил??
18 STAYEKR
 
28.06.12
13:35
(17)Нет((
19 butterbean
 
28.06.12
13:36
(18) ну дык получи ее сначала, а потом уже в свой список добавляй поля из ссылки
20 StanislawJack
 
28.06.12
13:40
Форма.РегистрСведенийСписок.Отбор.ПолЧерепахиХозяина.ВидСравнения = ВидСравнения.ВСписке;
Форма.РегистрСведенийСписок.Отбор.ПолЧерепахиХозяина.Значение = ТвойСписокЗначений;
Форма.РегистрСведенийСписок.Отбор.ПолЧерепахиХозяина.Использование = Истина;
21 butterbean
 
28.06.12
13:42
(20) причем тут вообще отбор регистра?? тебе надо просто вычислить элемент справочника из текущей строки списка и взять его реквизиты... или нет??
22 STAYEKR
 
28.06.12
13:53
Мне нужно чтобы при нажатии на кнопку на форме выводились данные по конретному элементу справочника.
23 butterbean
 
28.06.12
13:55
(22) во, уже кнопка какая-то появилась... может сразу опишешь все условия и что конкретно не получается
24 STAYEKR
 
28.06.12
14:08
На форме справочник "спр1" есть кнопка, при нажатии на которую надо выводить данные из регистра сведений "рег1" по конкретномуэлементу справочника. Так яснее?
25 butterbean
 
28.06.12
14:15
(24) нет, не яснее.
1. куда и в каком виде нужно выводить данные из регистра сведений
2. "по конкретномуэлементу справочника" - это по какому?? чем отличается от остальных элементов??
26 STAYEKR
 
28.06.12
14:21
(25) 1. в форму списка регистра сведений. Но не все данные из регистра, а по конкретному элементу справочника.
2. "конкретный" - это выделенный в форме элемента справочника. А так?
27 butterbean
 
28.06.12
14:26
(26) 1. стало еще непонятнее
2. нда... просто прочти вопрос и свой ответ
28 STAYEKR
 
28.06.12
14:29
сейчас данные в регистре выводятс сплошняком. А надо, чтобы выводились по конретному (активному, выделенному, текущему (тому, который "синенький" :) элементу справочника). Т.е. создать такой своеобразный фильтр. Тоже непонятно?
29 STAYEKR
 
28.06.12
15:30
Со многими деталями разобрался, спасибо! Остался еще вопрос:

Список = Новый СписокЗначений;
ЖилойДом= Дом;
Список.Добавить(ИнфоБаза.НомерДома);
Список.Добавить(ИнфоБаза.Ссылка.Квартира);
       
   Для Каждого ЖилойДом Из Список Цикл
       Если ЗначениеЗаполнено(Дом) Тогда
           Отбор.Объект.Значение = Дом;
           Отбор.Объект.ВидСравнения = ВидСравнения.ВСписке;
               Отбор.Объект.Использование = Истина;
       КонецЕсли;
   КонецЦикла;

Падает с ошибкой: "Ошибка при установке значения атрибута контекста (Значение): Неверный тип значения Отбор.Объект.Значение = Дом;
по причине: Неверный тип значения". Ошибка вылетает при обходе циклом второго значения "Квартира". Где косяк, не подскажете?
30 sanja26
 
28.06.12
15:32
в цикле отбор... чего только не вытворяют))
31 STAYEKR
 
28.06.12
15:33
(30) Да, я старался)) Поможешь по существу?
32 STAYEKR
 
28.06.12
15:34
(30) По дому нормально отрабатывает. а сквартирой валится((
33 STAYEKR
 
28.06.12
15:37
Знает кто-нибудь?
34 VasjaIvanov
 
28.06.12
15:41
чайник, я бы пдсказал,Ю но не понимаю что ты хочешь тут получить, зачем
ЖилойДом= Дом;
35 VasjaIvanov
 
28.06.12
15:41
а потом Для Каждого ЖилойДом Из Список Цикл
36 VasjaIvanov
 
28.06.12
15:41
При этом некий список
Список.Добавить(ИнфоБаза.НомерДома);
Список.Добавить(ИнфоБаза.Ссылка.Квартира);
37 VasjaIvanov
 
28.06.12
15:42
и самое интересно
Если ЗначениеЗаполнено(Дом) Тогда
х.з. зачем, если ставить то раньше до цикла надо тебе такое условие,
38 VasjaIvanov
 
28.06.12
15:43
в регистре надо так

Форма = РегистрыСведений.Vasja.ПолучитьФормуСписка();
Отбор = Новый Структура("ДокументДвижения", Документ);
Форма.ПараметрОтборПоИзмерению = Отбор;
Форма.Открыть()
39 STAYEKR
 
28.06.12
15:54
(38) Спасибо за разъяснение, Гуру!