Имя: Пароль:
1C
1С v8
Программный отбор отрабатывает только первый раз (обычные формы)
0 Cratos
 
29.03.17
16:20
...
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
    СправочникСписок.Отбор.Ссылка.Использование = Ложь;
    СправочникСписок.Отбор.Ссылка.ВидСравнения = ВидСравнения.Равно;
    СправочникСписок.Отбор.Ссылка.Значение = Справочники.Номенклатура.ПустаяСсылка();//перестрахуемся
Иначе
    СправочникСписок.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке;
    СправочникСписок.Отбор.Ссылка.Значение.ЗагрузитьЗначения(РезультатЗапроса.Выгрузить().ВыгрузитьКолонку("Номенклатура"));
    СправочникСписок.Отбор.Ссылка.Использование = Истина;
КонецЕсли;


Нужно по отдельному списку значений делать отбор. Добавляю первый элемент - отбор корректно накладывается, форма отрисовывает 4 элемента номенклатуры. Далее добавляю ещё одно значение отбора, отбор устанавливается корректно (уже меньше подходящих значений, 3) - а форма всё ещё отображает 4 элемента. Если вручную зайти в отбор и например поставить "Комментарий НеРавно "впваыилвдппфжвадпо", то форма отрефрешится верно на 3 элемента.

Как победить? Платформа 8.3.9.2170
1 Cratos
 
29.03.17
16:35
Нашёл решение: надо изначально сбросить использование, тогда отработают все потайные ветки логики платформы:

СправочникСписок.Отбор.Ссылка.Использование = Ложь;
Ошибка? Это не ошибка, это системная функция.