Имя: Пароль:
1C
1С v8
СвязиПараметровВыбора по пустой ссылке
0 laby1
 
17.02.16
11:59
Подскажите в форме в ТЧ надо одно из полей ограничить выбор - нужно чтоб документ из списка ссылался на этот документ либо вообще не ссылался - "Объект.Ссылка" работает. А вот что во второй связи написать вместо "ПустаяСсылка"?

&НаСервере
Процедура ПриОткрытииНаСервере()
    ИзПунктовПриИзмененииНаСервере();
    ВПунктыПриИзмененииНаСервере();
    
    Если НЕ Объект.Ссылка.Пустая() тогда
        НовыйМассив = Новый Массив();
        НовыйМассив.Добавить(Новый СвязьПараметраВыбора("Отбор.Место", "Объект.Ссылка"));
        НовыйМассив.Добавить(Новый СвязьПараметраВыбора("Отбор.Место", "ПустаяСсылка"));
        НовыеСвязи = Новый ФиксированныйМассив(НовыйМассив);
        Элементы.ПеремещениеПроба.СвязиПараметровВыбора = НовыеСвязи;
    КонецЕсли;
    
КонецПроцедуры
1 FIXXXL
 
17.02.16
12:02
предопределенноеЗначение(пустоаяСсылкаТвоегоТипа)?
2 laby1
 
17.02.16
12:52
там тип составной
3 laby1
 
17.02.16
13:02
Что-то уже много перепробывал (даже NULL :) ), хоть куда копать?
4 laby1
 
17.02.16
14:16
Добавил новый реквизит к форме ПустоеМестоПробы с тем же составным типом.

        НовыйМассив.Добавить(Новый СвязьПараметраВыбора("Отбор.Место", "ПустоеМестоПробы"));

Заработало!
5 laby1
 
17.02.16
14:19
Правда не совсем, почему-то только с пустыми ссылками берет, то есть игнорируется первая

        НовыйМассив.Добавить(Новый СвязьПараметраВыбора("Отбор.Место", "Объект.Ссылка"));
6 laby1
 
17.02.16
14:21
Если так:

        НовыйМассив = Новый Массив();
        НовыйМассив.Добавить(Новый СвязьПараметраВыбора("Отбор.Место", "ПустоеМестоПробы"));
        НовыйМассив.Добавить(Новый СвязьПараметраВыбора("Отбор.Место", "Объект.Ссылка"));
        НовыеСвязи = Новый ФиксированныйМассив(НовыйМассив);
        Элементы.ПеремещениеПроба.СвязиПараметровВыбора = НовыеСвязи;

то отбор по ссылке,

А если так:

        НовыйМассив = Новый Массив();
        НовыйМассив.Добавить(Новый СвязьПараметраВыбора("Отбор.Место", "Объект.Ссылка"));
        НовыйМассив.Добавить(Новый СвязьПараметраВыбора("Отбор.Место", "ПустоеМестоПробы"));
        НовыеСвязи = Новый ФиксированныйМассив(НовыйМассив);
        Элементы.ПеремещениеПроба.СвязиПараметровВыбора = НовыеСвязи;

тогда по пустой
7 laby1
 
17.02.16
14:28
Какие варианты есть чтобы не по одному равенству, а по равенству одного из нескольких значений было?
8 laby1
 
17.02.16
14:55
Похоже неразрешимая задача. Вот тебе и 1С.
9 laby1
 
18.02.16
09:55
Ладно, раз нельзя, пусть отбор будет только по

НовыйМассив.Добавить(Новый СвязьПараметраВыбора("Отбор.Место", "ПустоеМестоПробы"));

Но вот 1С чудит тут - при выборе элемента она делает фильтрацию, когда жмешь показать все, а список последних когда просто жмем на треугольник для выбора она не фильтрует. Хотя если делал по владельцу или по родителю, такого бага не возникало ...