Имя: Пароль:
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С чудит тут - при выборе элемента она делает фильтрацию, когда жмешь показать все, а список последних когда просто жмем на треугольник для выбора она не фильтрует. Хотя если делал по владельцу или по родителю, такого бага не возникало ...
Ошибка? Это не ошибка, это системная функция.