Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / [игнор отключен] [закрыт для гостей] / Функция Значение в запросе / 11 сообщений из 11, страница 1 из 1
08.06.2010, 12:19
    #36675089
vitkhv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция Значение в запросе
Уважаемые участники форума, столкнулся с проблемой получения ТипаЗначения в таком Запросе:


ВЫБРАТЬ

ВЫБОР
КОГДА Док.Размещение.Ссылка = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
ТОГДА Док.Количество
ИНАЧЕ "ЗНАЧЕНИЕ<>"
КОНЕЦ КАК ЗНАЧЕНИЕ1,
ВЫБОР
КОГДА Док.Размещение.Ссылка <> ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
ТОГДА Док.Количество
ИНАЧЕ "ЗНАЧЕНИЕ="
КОНЕЦ КАК ЗНАЧЕНИЕ2,
ВЫБОР
КОГДА ISNULL(ВЫРАЗИТЬ(Док.Размещение КАК Справочник.Склады),0)=0
ТОГДА Док.Количество
ИНАЧЕ "ВЫРАЗИТЬ<>"
КОНЕЦ КАК ВЫРАЗИТЬ1,
ВЫБОР
КОГДА ISNULL(ВЫРАЗИТЬ(Док.Размещение КАК Справочник.Склады),0)<>0
ТОГДА Док.Количество
ИНАЧЕ "ВЫРАЗИТЬ="
КОНЕЦ КАК ВЫРАЗИТЬ2,

Док.Размещение

ИЗ
Документ.ЗаказПокупателя.Товары КАК Док
ГДЕ Док.Ссылка = &Заказ

Запрос должен проверять заполнен ли реквизит Размещение ТЧ Товары, документа ЗаказПокупателя. Реквизит имеет составной тип данных, один из типов это Склад (СправочникСсылка.Склады).
Проблема в том, что в ряде случаев Тип данного реквизита является Тип СправочникСсылка.Склады но значение реквизита не заполненно, так вот в этот момент при выполнении вышеприведенного запроса в конструкции Выбор данный реквизит в один и тот же момент равен ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка) и не равен ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка), я честно говоря в шоке.

Вопрос оправданно ли использование функции ЗНАЧЕНИЕ() в данном случае или это ошибка платформы и можеете ли вы предложить варианты обхода данной проблемы?

PS. Значение функции ISNULL(ВЫРАЗИТЬ(Док.Размещение КАК Справочник.Склады),0) в этот момент не равно 0.
...
Рейтинг: 0 / 0
08.06.2010, 12:59
    #36675226
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция Значение в запросе
это ппц
...
Рейтинг: 0 / 0
08.06.2010, 13:01
    #36675234
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция Значение в запросе
я от Вас конкретно не ожидал
ТоварыВРезервеНаСкладах
...
Рейтинг: 0 / 0
08.06.2010, 13:06
    #36675252
vitkhv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция Значение в запросе
leafя от Вас конкретно не ожидал
ТоварыВРезервеНаСкладах

Что не ожидали, и что в отчете ТоварыВРезервеНаСкладах?
...
Рейтинг: 0 / 0
08.06.2010, 13:17
    #36675292
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция Значение в запросе
это регистр остатков
не знаю ... я лично работаю с регистрами - вы как хотите ...
...
Рейтинг: 0 / 0
08.06.2010, 13:24
    #36675321
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция Значение в запросе
если же документ один и не проведен
то перебор табличной части
хотя ... кто его знает как оно правильно
...
Рейтинг: 0 / 0
08.06.2010, 13:35
    #36675353
vitkhv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция Значение в запросе
leafэто регистр остатков
не знаю ... я лично работаю с регистрами - вы как хотите ...
При чем здесь регистр остатков?
Выборка идет из ТЧ документа, формируется печатная форма. Модифицирую стандартный алгоритм печати Заказа, запрос очень сильно сокращен, что бы указать на возможно неправильную работу функции ЗНАЧЕНИЕ в запросе.
Полностью переписать алгоритм формирования печ. формы с использованием регистров - не слишком ли круто?
Релиз платформы 1С 8.1.15.14.

Уточною проблему:
1) Реквизит Размещение ТЧ товары документа ЗаказПокупателя.
2) Реквизит имеет составной тип данных.
3) При использовании функции ЗначениеЗаполненно(Размещение) = Ложь
4) При использовании Размещение.Метаданные().ПолноеИмя() = "Справочник.Склады"
5) При использовании функции ТипЗнч(Строка.Размещение) = "Справочник ссылка: Склады (места хранения)"
6) При использовании конструкции в запросе:
ВЫБОР
КОГДА Док.Размещение.Ссылка = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
ТОГДА Док.Количество
ИНАЧЕ "ЗНАЧЕНИЕ<>"
КОНЕЦ КАК ЗНАЧЕНИЕ1
= "ЗНАЧЕНИЕ<>"
7) При использовании конструкции в запросе:
ВЫБОР
КОГДА Док.Размещение.Ссылка <> ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
ТОГДА Док.Количество
ИНАЧЕ "ЗНАЧЕНИЕ="
КОНЕЦ КАК ЗНАЧЕНИЕ1
= "ЗНАЧЕНИЕ="
Все это в один и тот же момент.

Если обратите внимание на 6 и 7 пункты то в один и тот же момент Док.Размещение.Ссылка как равен так и не равен ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
...
Рейтинг: 0 / 0
08.06.2010, 13:54
    #36675433
vitkhv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция Значение в запросе
т.е. Док.Размещение.Ссылка в данный момент времени, что иное чем "равно" или "не равно" ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка).
В общем Размещение в данный момент это Есть Null.

Всем спасибо.
...
Рейтинг: 0 / 0
15.06.2010, 14:51
    #36687849
Рассада
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция Значение в запросе
Есть предложение использовать приведение типов для реквизита размещение.
Если передавать значение пустой ссылки как параметр - такое же поведение?
...
Рейтинг: 0 / 0
13.07.2010, 17:07
    #36738993
AnyKeyMan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция Значение в запросе
vitkhv,
Док.Размещение .Ссылка ЕСТЬ NULL
будет равно ИСТИНА при любом виде "пустоты" (и Неопределено, и ПустаяСсылка())
...
Рейтинг: 0 / 0
14.07.2010, 16:38
    #36741217
vitkhv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция Значение в запросе
AnyKeyManvitkhv,
Док.Размещение .Ссылка ЕСТЬ NULL
будет равно ИСТИНА при любом виде "пустоты" (и Неопределено, и ПустаяСсылка())

Спасибо.

Уже разобрался:

vitkhv
т.е. Док.Размещение.Ссылка в данный момент времени, что иное чем "равно" или "не равно" ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка).
В общем Размещение в данный момент это Есть Null.


В общем, заблудился в 3 соснах.

Вот это
vitkhv
Значение функции ISNULL(ВЫРАЗИТЬ(Док.Размещение КАК Справочник.Склады),0) в этот момент не равно 0.

ввело меня в заблуждение.

Привык в свое время на T-SQL через ISNULL проверять пустые значения.
...
Рейтинг: 0 / 0
Форумы / [игнор отключен] [закрыт для гостей] / Функция Значение в запросе / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]