powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / Функция Значение в запросе
11 сообщений из 11, страница 1 из 1
Функция Значение в запросе
    #36675089
vitkhv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые участники форума, столкнулся с проблемой получения ТипаЗначения в таком Запросе:


ВЫБРАТЬ

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

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

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

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

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

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

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

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

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

Всем спасибо.
...
Рейтинг: 0 / 0
Функция Значение в запросе
    #36687849
Рассада
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть предложение использовать приведение типов для реквизита размещение.
Если передавать значение пустой ссылки как параметр - такое же поведение?
...
Рейтинг: 0 / 0
Функция Значение в запросе
    #36738993
Фотография AnyKeyMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vitkhv,
Док.Размещение .Ссылка ЕСТЬ NULL
будет равно ИСТИНА при любом виде "пустоты" (и Неопределено, и ПустаяСсылка())
...
Рейтинг: 0 / 0
Функция Значение в запросе
    #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]