Имя: Пароль:
1C
1С v8
УФ: отбор в форме справочника по владельцу
0 katerinaUniv
 
18.11.14
15:30
Доброго времени суток!

У меня не получается установить отбор по владельцу, выводит ошибку на строке кода, в которой устанавливаю левое значение. В чем ошибка?
1 katerinaUniv
 
18.11.14
15:31
элементОтбора = Список.Отбор.Элементы.Добавить(Тип("СправочникСсылка.АГС_Суда"));
        элементОтбора.ЛевоеЗначение = Список.Отбор.ДоступныеПоляОтбора.НайтиПоле("Владелец").Поле;
        элементОтбора.ВидСравнения = ВидСравнения.Равно;
        элементОтбора.ПравоеЗначение = этотОбъект.АГС_СудноОтбор;
        элементОтбора.Использование = Истина;
2 Fish
 
18.11.14
15:33
А где ты этот код пишешь?
3 katerinaUniv
 
18.11.14
15:38
(2)на клиенте
4 katerinaUniv
 
18.11.14
15:38
нужно на сервере?
5 olegves
 
18.11.14
15:39
(1) можно проще: Открыть свойства ДС - Настройка списка Открыть, далее перейти на закладку Отбор и дважды кликнуть на поле Владелец, потом снять флаг использование - закрыть форму и сохранить

ЭлементОтбора = Список.Отбор.Элементы[0];
//здесь настроить Использование и Правое значение


и всё
6 katerinaUniv
 
18.11.14
15:41
(5) на форме есть поле, в которое пользователь выбирает элемент справочника АГС_Суда. По этому полю должен быть установлен отбор у справочника (по полю Владелец)
7 katerinaUniv
 
18.11.14
15:43
(5) (6) поняла. это сохранится у пользователя?
8 olegves
 
18.11.14
15:43
(6) вставишь текст (5) в модуль команды твоего поля ПриИзменении, дополнив строкой:
Элементы.Список.Обновить();
9 sapphire
 
18.11.14
15:44
(1)
ДоступныеПоляКомпоновкиДанных (DataCompositionAvailableFields)
НайтиПоле (FindField)
Синтаксис:

НайтиПоле(<Поле>)
Параметры:

<Поле> (обязательный)

Тип: ПолеКомпоновкиДанных.
Поле системы компоновки данных
10 antoneus
 
18.11.14
15:44
СвязиПараметровВыбора? ПараметрыВыбора?
11 sapphire
 
18.11.14
15:45
элементОтбора = Список.Отбор.Элементы.Добавить(Тип("СправочникСсылка.АГС_Суда"));
        элементОтбора.ЛевоеЗначение = Список.Отбор.ДоступныеПоляОтбора.Элементы.НайтиПоле("Владелец").Поле;
        элементОтбора.ВидСравнения = ВидСравнения.Равно;
        элементОтбора.ПравоеЗначение = этотОбъект.АГС_СудноОтбор;
        элементОтбора.Использование = Истина;
12 sapphire
 
18.11.14
15:47
+(11)
элементОтбора = Список.Отбор.Элементы.Добавить(Тип("СправочникСсылка.АГС_Суда"));
        элементОтбора.ЛевоеЗначение = Список.Отбор.ДоступныеПоляОтбора.Элементы.Найти("Владелец").Поле; // Здесь просто найти
        элементОтбора.ВидСравнения = ВидСравнения.Равно;
        элементОтбора.ПравоеЗначение = этотОбъект.АГС_СудноОтбор;
        элементОтбора.Использование = Истина;
13 katerinaUniv
 
18.11.14
15:47
(12) спасибо!!!
14 katerinaUniv
 
18.11.14
15:48
такие вещи писать правильно на клиенте, так?
15 olegves
 
18.11.14
15:49
(7) если ты для реквизита формы (Владелец) проставишь соотв.флаг в свойствах
16 sapphire
 
18.11.14
15:50
(1) Смотрите, Вы ищете по полю, а надо по идентфикатору поля:

Ваш вариант:
Список
.Отбор
.ДоступныеПоляОтбора
.НайтиПоле("Владелец") // Вызовет ошибку, т.к ожидается поле в качестве параметра, а Вы передаете идентификатор

Правильно:
.Отбор
.ДоступныеПоляОтбора
.Элементы //КоллекцияДоступныхПолейКомпоновкиДанных
.Найти("Владелец") // Возвращаемое значение:
//Тип: ДоступноеПолеКомпоновкиДанных;
//ДоступноеПолеОтбораКомпоновкиДанных; Неопределено.
.Поле
17 olegves
 
18.11.14
15:51
(14) ПриИзменении выполняется на клиенте
18 olegves
 
18.11.14
15:51
этотОбъект - это что за хрень?
19 katerinaUniv
 
18.11.14
15:52
(18)как правильно получить значение поля с формы при изменении? раньше я б написала элемент.значение
20 olegves
 
18.11.14
15:53
+ (18) для поля на форме д.б. создан реквизит формы с типом Владельца справочника - его и подставлять в правое значение
21 sapphire
 
18.11.14
15:54
(19) Просто Объект.АГС_СудноОтбор
22 olegves
 
18.11.14
15:56
(21) нет, просто АГС_Судно (реквизит формы)
23 sapphire
 
18.11.14
15:57
(22) Смотря откуда вызывать
24 katerinaUniv
 
18.11.14
16:02
в итоге решила и без отборов, но если нужно будет сделать это программно, то теперь знаю, как. спасибо!
25 antoneus
 
18.11.14
16:05
Отбор по владельцу в 2 щелчка мыши делается вроде как. Или я путаю что?

http://i.imgur.com/4pkcnZo.jpg
26 olegves
 
18.11.14
17:02
(25) это если он нужен всегда, а если надо отключаемый, то через реквизит формы
Основная теорема систематики: Новые системы плодят новые проблемы.