Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
Если ТекущиеДанные.НомерЗаявки <> "" Тогда
ОтборПоКорзинe = Новый ФиксированнаяСтруктура("НомерЗаявки",ТекущиеДанные.НомерЗаявки);
Если НЕ ТекущиеДанные.ТМЦ.Пустая() Тогда
ОтборПоКорзинe = Новый ФиксированнаяСтруктура("НомерЗаявки,ТМЦ",ТекущиеДанные.НомерЗаявки,ТекущиеДанные.ТМЦ);
Если НЕ ТекущиеДанные.ФизЛицо.Пустая() Тогда
ОтборПоКорзинe = Новый ФиксированнаяСтруктура("НомерЗаявки,ТМЦ,ФизЛицо",ТекущиеДанные.НомерЗаявки,ТекущиеДанные.ТМЦ,ТекущиеДанные.ФизЛицо);
КонецЕсли;
КонецЕсли;
КонецЕсли;
Элементы.КорзинаВыдаваемыхТМЦ.ОтборСтрок = ОтборПоКорзинe;
КонецПроцедуры
Если я нахожусь на строке, где заполнен номер заявки или ТМЦ, все корректно.
Как только выбираю строку с заполненным ФизЛицо
условие Если ТекущиеДанные.НомерЗаявки <> "" Тогда не работает
Хотя в отладке НомерЗаявки присвоен.
Текущие данные - это строки дерева значений. Группировки НомерЗаявки/ТМЦ/Физлицо. Т.е при заполенном физлицо номерзаявки не может быть пустим никак.
Это глюк какой-то недокументированный?
Тупанул. Надо было в фиксированную структуру засунуть структуру с параметрами отбора. Вопрос закрыт.
СтруктураПараметров = Новый Структура;
Если ТекущиеДанные.НомерЗаявки <> "" Тогда
СтруктураПараметров.Вставить("НомерЗаявки",ТекущиеДанные.НомерЗаявки);
КонецЕсли;
Если НЕ ТекущиеДанные.ТМЦ.Пустая() Тогда
СтруктураПараметров.Вставить("ТМЦ",ТекущиеДанные.ТМЦ);
КонецЕсли;
Если НЕ ТекущиеДанные.ФизЛицо.Пустая() Тогда
СтруктураПараметров.Вставить("ФизЛицо",ТекущиеДанные.ФизЛицо);
КонецЕсли;
Элементы.КорзинаВыдаваемыхТМЦ.ОтборСтрок = Новый ФиксированнаяСтруктура(СтруктураПараметров);