|
Отбор для таблице значений на форме. Глюк? | ☑ | ||
|---|---|---|---|---|
|
0
егаис
27.06.26
✎
16:02
|
&НаКлиенте
Процедура ДеревоЗаявокПриАктивизацииСтроки(Элемент) ТекущиеДанные = Элементы.ДеревоЗаявок.ТекущиеДанные; Если ТекущиеДанные = Неопределено Тогда Возврат; КонецЕсли; Если ТекущиеДанные.НомерЗаявки <> "" Тогда ОтборПоКорзинe = Новый ФиксированнаяСтруктура("НомерЗаявки",ТекущиеДанные.НомерЗаявки); Если НЕ ТекущиеДанные.ТМЦ.Пустая() Тогда ОтборПоКорзинe = Новый ФиксированнаяСтруктура("НомерЗаявки,ТМЦ",ТекущиеДанные.НомерЗаявки,ТекущиеДанные.ТМЦ); Если НЕ ТекущиеДанные.ФизЛицо.Пустая() Тогда ОтборПоКорзинe = Новый ФиксированнаяСтруктура("НомерЗаявки,ТМЦ,ФизЛицо",ТекущиеДанные.НомерЗаявки,ТекущиеДанные.ТМЦ,ТекущиеДанные.ФизЛицо); КонецЕсли; КонецЕсли; КонецЕсли; Элементы.КорзинаВыдаваемыхТМЦ.ОтборСтрок = ОтборПоКорзинe; КонецПроцедуры Если я нахожусь на строке, где заполнен номер заявки или ТМЦ, все корректно. Как только выбираю строку с заполненным ФизЛицо условие Если ТекущиеДанные.НомерЗаявки <> "" Тогда не работает Хотя в отладке НомерЗаявки присвоен. Текущие данные - это строки дерева значений. Группировки НомерЗаявки/ТМЦ/Физлицо. Т.е при заполенном физлицо номерзаявки не может быть пустим никак. Это глюк какой-то недокументированный? |
|||
|
3
Chameleon1980
27.06.26
✎
16:24
|
пошагово в отладку
с отбором строк проблем замечено не было |
|||
|
4
егаис
27.06.26
✎
16:26
|
Тупанул. Надо было в фиксированную структуру засунуть структуру с параметрами отбора. Вопрос закрыт.
СтруктураПараметров = Новый Структура; Если ТекущиеДанные.НомерЗаявки <> "" Тогда СтруктураПараметров.Вставить("НомерЗаявки",ТекущиеДанные.НомерЗаявки); КонецЕсли; Если НЕ ТекущиеДанные.ТМЦ.Пустая() Тогда СтруктураПараметров.Вставить("ТМЦ",ТекущиеДанные.ТМЦ); КонецЕсли; Если НЕ ТекущиеДанные.ФизЛицо.Пустая() Тогда СтруктураПараметров.Вставить("ФизЛицо",ТекущиеДанные.ФизЛицо); КонецЕсли; Элементы.КорзинаВыдаваемыхТМЦ.ОтборСтрок = Новый ФиксированнаяСтруктура(СтруктураПараметров); |
|||
|
5
Chameleon1980
27.06.26
✎
16:25
|
ак только выбираю строку с заполненным ФизЛицо
покажите, что в этот момент в ТекущиеДанные.НомерЗаявки в табло |
|||
|
6
Fedor-1971
29.06.26
✎
14:32
|
(0) твой изначальный алгоритм не равен (4)
Если ТекущиеДанные.НомерЗаявки <> "" Тогда
ОтборПоКорзинe = Новый ФиксированнаяСтруктура("НомерЗаявки",ТекущиеДанные.НомерЗаявки);
Если НЕ ТекущиеДанные.ТМЦ.Пустая() Тогда
ОтборПоКорзинe = Новый ФиксированнаяСтруктура("НомерЗаявки,ТМЦ",ТекущиеДанные.НомерЗаявки,ТекущиеДанные.ТМЦ);
Если НЕ ТекущиеДанные.ФизЛицо.Пустая() Тогда
ОтборПоКорзинe = Новый ФиксированнаяСтруктура("НомерЗаявки,ТМЦ,ФизЛицо",ТекущиеДанные.НомерЗаявки,ТекущиеДанные.ТМЦ,ТекущиеДанные.ФизЛицо);
КонецЕсли;
КонецЕсли;
КонецЕсли;
У тебя не будет формироваться структура если НомерЗаявки ="" В (4) собрал структуру отбора нужной конфигурации и отправил в отбор, только предусмотри ситуацию, когда не выбрано ни одной строки ОтборСтрок = Неопределено, возможно, при вводе новой строки, у тебя пока не заполнены нужные поля, соответственно и отбор некорректный. Собственно, текущая строка уже установлена, но пустая (дообработай отбор после окончания редактирования строки) |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |