|
Запрос по регистру свойств | ☑ | ||
---|---|---|---|---|
0
spectre1978
17.05.13
✎
08:19
|
1С8.2 УПП. У контрагента есть свойство НомерВнутриСети, Число [5]. Делаем запрос:
"ВЫБРАТЬ | К.Ссылка КАК Контрагент |ИЗ | Справочник.Контрагенты КАК К, | РегистрСведений.ЗначенияСвойствОбъектов КАК ЗСО |ГДЕ | НЕ К.ПометкаУдаления И | К.ИНН = &ИНН И | К.КПП = &КПП И | ЗСО.Объект = К.Ссылка И | ЗСО.Свойство.Наименование = ""НомерВнутриСети"" И | ЗСО.Значение = &НомерВнутриСети"; Запрос работает, но в случае если передать НомерВнутриСети числом, то возвращает примерно половину записей, а если строкой, то остальную половину. Пока вышел из положения извращенно: "ВЫБРАТЬ | К.Ссылка КАК Контрагент |ИЗ | Справочник.Контрагенты КАК К, | РегистрСведений.ЗначенияСвойствОбъектов КАК ЗСО |ГДЕ | НЕ К.ПометкаУдаления И | К.ИНН = &ИНН И | К.КПП = &КПП И | ЗСО.Объект = К.Ссылка И | ЗСО.Свойство.Наименование = ""НомерВнутриСети"" И | (ЗСО.Значение = &НомерВнутриСетиЧ ИЛИ ЗСО.Значение = &НомерВнутриСетиС)"; и передаю два параметра - один в виде строки, другой в виде числа. Пробовал использовать ВЫРАЗИТЬ (ЗСО.Значение КАК ... Число, Строка, запрос с этой конструкцией стал работать существенно дольше, а результат тот же. Как сделать правильно? |
|||
1
1Сергей
17.05.13
✎
08:20
|
соединение юзай
|
|||
2
shuhard
17.05.13
✎
08:21
|
(0)[Как сделать правильно?]
правильно сделать у контрагента реквизит, загрузить в него текущие значения и не лохматить бабушку |
|||
3
Jonny_Khomich
17.05.13
✎
08:21
|
(2) если она типовая, то не лучший вариант
|
|||
4
spectre1978
17.05.13
✎
08:23
|
Реквизит не хочу. Свойства отличная тема, я очень рад что их в восьмерке запилили. Хочу чтобы вся пристыкованная инфа работала на них.
|
|||
5
spectre1978
17.05.13
✎
08:46
|
(1), переписал
" ВЫБРАТЬ К.Ссылка КАК Контрагент ИЗ Справочник.Контрагенты КАК К СОЕДИНЕНИЕ ( ВЫБРАТЬ ЗСО.Объект, ЗСО.Значение КАК НомерВнутриСети ИЗ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗСО ГДЕ ЗСО.Свойство.Наименование = "НомерВнутриСети" И ВЫРАЗИТЬ (ЗСО.Объект КАК Справочник.Контрагенты) ССЫЛКА Справочник.Контрагенты И ЗСО.Значение = &НомерВнутриСети ) Свойства ПО К.Ссылка = Свойства.Объект ГДЕ К.ИНН = &ИНН И К.КПП = &КПП " Эффект один в один тот же что и был. Вы что имели в виду, можно поточнее? |
|||
6
Rounder
17.05.13
✎
09:22
|
(0) А ты уверен, что у тебя верным типом заполнено свойство?
|
|||
7
Rounder
17.05.13
✎
09:24
|
с подобным сталкивался - вот тема v8: Динамический список. Не работает поиск по числовым полям.
Полагаю, что все же свойство заполнено не данными двух типов. |
|||
8
spectre1978
17.05.13
✎
09:35
|
Ну вообще-то там после того как создал свойство и внес в него чего-нибудь - тип никто изменить уже не может. Так что по идее кривым типом заполняться не должно. Но похоже, верной мыслью будет выбрать и принудительно перезаписать значения в регистре.
|
|||
9
1Сергей
17.05.13
✎
09:54
|
(5)
ГДЕ ЗСО.Свойство.Наименование = "НомерВнутриСети" И ВЫРАЗИТЬ (ЗСО.Объект КАК Справочник.Контрагенты) ССЫЛКА Справочник.Контрагенты И ЗСО.Значение = &НомерВнутриСетиЧисло ИЛИ ЗСО.Значение = &НомерВнутриСетиСтрока |
|||
10
unregistered
17.05.13
✎
09:54
|
Уже вторая ветка за утро где в операторе сравнения ССЫЛКА используется функция ВЫРАЗИТЬ.
В чем прикол? Я может чего не знаю?... |
|||
11
spectre1978
17.05.13
✎
10:09
|
Все, вопрос снят. Проблема действительно в том, что в регистре оказались значения разных типов. Виновата, предположительно, процедура экспорта из старой системы, которая записала часть значений в виде строки. Всем спасибо!
|
|||
12
1Сергей
17.05.13
✎
10:15
|
(11) просто не нужно менять тип свойства, когда уже внесены данные. Или же надо преобразовать после таких изменений
|
|||
13
spectre1978
17.05.13
✎
10:43
|
Его руками и нельзя менять, если хотя бы одно значение записано. Но вот обработочкой пихнуть какого-нибудь говнеца в регистр - как делать нечего. Что и произошло :(
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |