Имя: Пароль:
1C
1С v8
Динамический список. Не работает поиск по числовым полям.
0 Rounder
 
26.02.13
15:16
8.2.15.294
УПП 1.3.24.2
Управляемый интерфейс

Для отображения номенклатуры с характеристиками создан отдельный динамический список.

Не работает поиск по числовым полям. При нажатии на "Найти" и вводе условия на равенство - получаю пустой список - хотя данные удовлетворяющие условию есть точно.
Со значениями типа строка или ссылка - отрабатывает корректно.

При использовании отбора по числовым полям - любые сравнения на "Равно" возвращают пустой список, на "Не равно" полный (не отфильтрованный), корректно отрабатывают только "Заполнено" и "Не заполнено".
В какую сторону копать?
1 Rounder
 
26.02.13
15:29
Актуально.
2 Rounder
 
26.02.13
15:49
Дополнительная информация - не работает только на числовых полях получаемых из РегистраСведений.
3 Rounder
 
26.02.13
18:17
Актуально
4 Rounder
 
27.02.13
14:48
Продолжаю поиски.
В консоли СКД создал отчет. Заполнил к конструкторе запроса закладку Характеристики.

Создал схему, настроил несколько полей.
Выполнил.
Посмотрел запрос, который сформировала СКД.

ВЫБРАТЬ
   СправочникНоменклатура.Ссылка КАК Ссылка,
   СправочникНоменклатура.Представление КАК СсылкаПредставление,
   ЗначенияСвойствОбъектов.Значение КАК Значение,
   ПРЕДСТАВЛЕНИЕССЫЛКИ(ЗначенияСвойствОбъектов.Значение) КАК ЗначениеПредставление,
   ЗначенияСвойствОбъектов1.Значение КАК Значение1,
   ПРЕДСТАВЛЕНИЕССЫЛКИ(ЗначенияСвойствОбъектов1.Значение) КАК Значение1Представление,
   ЗначенияСвойствОбъектов2.Значение КАК Значение2
   ПРЕДСТАВЛЕНИЕССЫЛКИ(ЗначенияСвойствОбъектов2.Значение) КАК Значение2Представление
ИЗ
   Справочник.Номенклатура КАК СправочникНоменклатура
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
       ПО (ЗначенияСвойствОбъектов.Объект = СправочникНоменклатура.Ссылка
               И ЗначенияСвойствОбъектов.Свойство = &П)
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов1
       ПО (ЗначенияСвойствОбъектов1.Объект = СправочникНоменклатура.Ссылка
               И ЗначенияСвойствОбъектов1.Свойство = &П2)
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов2
       ПО (ЗначенияСвойствОбъектов2.Объект = СправочникНоменклатура.Ссылка
               И ЗначенияСвойствОбъектов2.Свойство = &П3)
ГДЕ
   СправочникНоменклатура.ВидНоменклатуры = &ВидНоменклатуры

Далее взял этот запрос в консоль запросов, заполнил параметры и выполнил там.
Результат аналогичный. Дальше начал экспериментировать с отбором.

Добавил к запросу

   И ЗначенияСвойствОбъектов2.Значение = 12

Получил пустую выборку, а взяв 12 в кавычки в условии, получил то что хочу, но при этом в плане видов характеристик тип значения этого свойства число. И в регистре, где хранятся значения свойств хранится число. Где происходит косяк и как его обойти?
5 RomaH
 
naïve
27.02.13
14:57
ТипЗначения  в запросе на это поле что возвращает?
6 RomaH
 
naïve
27.02.13
14:58
а не в запросе = получи запись, и ТипЗнч() на неё
7 Rounder
 
27.02.13
15:27
Тип = Число.
8 RomaH
 
naïve
27.02.13
15:29
скрин
9 Rounder
 
27.02.13
15:41
5 сек
10 Rounder
 
27.02.13
15:49
11 Rounder
 
27.02.13
15:50
12 Rounder
 
27.02.13
16:07
Проблему вроде нашел.
Если подтвердится - то потом опишу в чем было дело.
13 Rounder
 
27.02.13
16:37
Проблема была в следующем.
Человек, который делал обработку для загрузки свойств из внешнего источника данных СокрЛП() применил ко всем полям, независимо от типа. Т.о. изменил типизацию числовых полей.
Но возникает вопрос - какого хрена мне в отладчике показывает тип Число - если реально там строка? Получается отладчик в данном случае берет не тип значения - а тип свойства объекта из плана видов характеристик.
14 Rounder
 
27.02.13
16:38
Т.е. не реальный тип - а ожидаемый.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.