Имя: Пароль:
1C
 
Как в запросе проверить на незаполненное значение поле типа "ДокументСсылка"
0 ЭЦ
 
17.10.14
16:55
ГОСПОДА !
В регистре имеется поле типа ДокументСсылка нужно в запросе проверить заполнено оно или нет.
Если бы было ДокументСсылка.ТипДокумента тогда понятно а тут просто ДокументСсылка
Прошу подсказать.
Спасибо
1 Рэйв
 
17.10.14
16:55
ГДЕ Поле.Ссылка   Есть NULL
2 Enders
 
17.10.14
16:56
ДокументСсылка = Значение(Документ.ТвойДокумент.ПустаяСсылка)
3 Рэйв
 
17.10.14
16:56
(2)Он типа дока не знает
4 Enders
 
17.10.14
16:58
(3) Это как? В конфигураторе нельзя посмотреть?
Или имеется ввиду составной тип?
5 Рэйв
 
17.10.14
17:00
(4)Скорее всего составной
6 ЭЦ
 
17.10.14
17:05
Посмотреть можно в ЗУП УПП
Регистр ДополнителныеНачисленияработниковОрганизаций
поле СторнируемыйДокумент
7 ЭЦ
 
17.10.14
17:06
там тип ДокументСсылка
8 Рэйв
 
17.10.14
17:06
(6):-) Какое прекрасное взаимопонимание!
Это он тебе предлагал там посмотреть.
9 Рэйв
 
17.10.14
17:07
он просто не понял что составной тип
10 Жан Пердежон
 
17.10.14
17:10
(1) а если там пустаяссылка?
11 Enders
 
17.10.14
17:11
(6) не, спасибо конечно, но у меня таких вопросов не возникает=)

(9) Та похоже на то и судя по названию поля, то там составной тип.
Ну тогда как ты в (1) написал или через проверку всех документов и неопределено (хз что быстрее будет, а проверять лень)
12 Enders
 
17.10.14
17:12
(10) Там поле.ссылка, если само поле пустая ссылка, то пустаяссылка.ссылка всё равно вернёт NULL
13 ЭЦ
 
17.10.14
17:28
А в это время
ДополнительныеНачисленияРаботниковОрганизаций.СторнируемыйДокумент ЕСТЬ NULL
всегда выдает ЛОЖЬ
14 ЭЦ
 
17.10.14
17:28
что неправильно
15 Fragster
 
гуру
17.10.14
17:31
не буду тебя тыкать в (1), напишу просто так:

ДополнительныеНачисленияРаботниковОрганизаций.СторнируемыйДокумент.Ссылка ЕСТЬ NULL
16 ssh2QQ6
 
17.10.14
17:34
А если пустая ссылка некого типа...
17 ЭЦ
 
17.10.14
17:36
(15) Да так работает.
Удивлен
Спасибо
18 hhhh
 
17.10.14
17:37
(13) НЕОПРЕДЕЛЕНО проверяй. НО могут быть и пустые ссылки
19 ssh2QQ6
 
17.10.14
17:38
(16) сторно, тогда (12)
20 H A D G E H O G s
 
17.10.14
17:42
Жесть.
ГДЕ Реквизит в (Неопределено, &МассивПустыхСсылокРазныхТиповСформированныйПрограммно)
21 H A D G E H O G s
 
17.10.14
17:42
(15) Это херовый, оченннь херовый вариант.
22 Fragster
 
гуру
17.10.14
17:43
(21) для разовой обработки?
23 Fragster
 
гуру
17.10.14
17:43
ну будет там несколько clustered index seek, да и фиг ты с ним
24 H A D G E H O G s
 
17.10.14
17:44
(22) Не увидел про разовую обработку, но...
Даже и для разовой обработки твой вариант может поставить колом наполенную систему (запрос не выполниться часами).
25 H A D G E H O G s
 
17.10.14
17:44
(23) Хехе.
26 ЭЦ
 
17.10.14
17:47
(21) В чем херовость варианта ? Интересно было бы узнать.
27 H A D G E H O G s
 
17.10.14
17:49
Хотя конечно, для случая ДокументСсылка надо принимать другие меры - пизд^&ли, паяльник, прижимание пальцев дверью.

У нас тоже есть такой "наследный" реквизит, уже не исправишь, он вызывает боль-страдания-унижения у сервера 1С.
28 H A D G E H O G s
 
17.10.14
17:49
(26) Левое соединение со всеми документами в системе. Для варианта класса УПП это жесткий вариант.
29 Fragster
 
гуру
17.10.14
17:54
30 ЭЦ
 
17.10.14
17:55
Ну у меня (15) работает
пока я доволен
31 H A D G E H O G s
 
17.10.14
17:56
(29) А у нас каждый пользователь при проведении документа запросом получает значение из ДокументСсылка. Без сложенный реквизитов к этому ДокументСсылка. Первый раз сервер 1С замирает на 1 секунду. Это напрягает.
32 Fragster
 
гуру
17.10.14
17:58
(31) для такого случая я сделал так: (ни с чем не связанный кусок кода)

    // так как регистраторов много, а в результирующем запросе строк мало (как правило, одна), заполним то,
    // что в полях составного типа "точечным" запросом по нужным метаданным
    Шаблон =
    "ВЫБРАТЬ ПЕРВЫЕ 1
    |    Таблица.Дата,
    |    Таблица.Номер,
    |    Таблица.ВидОперации.Представление КАК ВидОперации
    |ИЗ
    |    &_Таблица КАК Таблица
    |ГДЕ
    |    Таблица.Ссылка = &Ссылка";                                        
    Для каждого СтрокаТаблицы Из Таблица Цикл
        Запрос.Текст = СтрЗаменить(Шаблон, "&_Таблица", СтрокаТаблицы.Ссылка.Метаданные().ПолноеИмя());
        Запрос.УстановитьПараметр("Ссылка", СтрокаТаблицы.Ссылка);
        Выборка = Запрос.Выполнить().Выбрать();
        Если Выборка.Следующий() Тогда
            ЗаполнитьЗначенияСвойств(СтрокаТаблицы, Выборка);
        КонецЕсли;
    КонецЦикла;
33 Рэйв
 
17.10.14
18:02
Хренасе вокруг простого, давно на сотню веток запиленого вопроса дискуссию развернули:-)

Пятница походу. Всем скучно.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн