Имя: Пароль:
1C
1С v8
ТИПЗНАЧЕНИЯ и ТИП в Запросах?
,
0 Очкарик
 
28.02.13
10:37
Какой умысел преследовали разработчики платформы, когда в запросах сделали вот это:
ТИПЗНАЧЕНИЯ(Регистратор) = ТИП(Документ.РеализацияТоваровУслуг)

Неужели недостаточно было так:
Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг

????
1 andreymongol82
 
28.02.13
10:38
ТИПЗНАЧЕНИЯ(Регистратор) = ТИП(Документ.РеализацияТоваровУслуг) - более широкое, т.к там не только ссылка может быть, а ССЫЛКА получается подмножество
2 2S
 
28.02.13
10:39
Дурик?
3 acsent
 
28.02.13
10:39
а если тип число?
4 Очкарик
 
28.02.13
10:39
(1) не фига не понял. Можешь понагляднее объяснить?
5 acsent
 
28.02.13
10:40
ТИПЗНАЧЕНИЯ(Регистратор) = &тип
а вот так можно?
6 andreymongol82
 
28.02.13
10:40
(4) см в (3)
7 Очкарик
 
28.02.13
10:41
(3) А через ВЫРАЗИТЬ никак нельзя что-ли?
8 lxndr
 
28.02.13
10:42
чтобы можно было вот так:

ВЫБРАТЬ
   *
ИЗ
   РегистрСведений.ДополнительныеСведения
ГДЕ
   ТИПЗНАЧЕНИЯ(Значение) = ТИП(Строка)
9 acsent
 
28.02.13
10:42
(7) каким образом?
10 andreymongol82
 
28.02.13
10:42
(7) Не все можно выразить :)
11 DailyLookingOn Sunset
 
28.02.13
10:42
(7)
В ВЫРАЗИТЬ есть проверка условия?
12 Reset
 
28.02.13
10:44
(0) А если бы использовали "ССЫЛКА", ты спрашивал бы почему не "тип" ?
13 DailyLookingOn Sunset
 
28.02.13
10:45
Множество типов больше, чем множество ссылок (таблиц).
14 ssh2006
 
28.02.13
10:45
(5) да, из док-ии:

Возможна передача значения типа Тип как параметр запроса.

Пример:

ВЫБРАТЬ
 ТИПЗНАЧЕНИЯ(Остатки.Регистратор)
ИЗ
 РегистрНакопления.УчетНоменклатуры КАК Остатки
ГДЕ
 ТИПЗНАЧЕНИЯ(Остатки.Регистратор) = &Тип
15 acsent
 
28.02.13
10:45
(13) всего на 3 типа. из-за этого не стоило и огород городить
16 Reset
 
28.02.13
10:46
(15) Стоило. Хотя изза того, что можно использовать оператор В
17 Reset
 
28.02.13
10:47
+ выборка типа как поля в результате, группировка по типу и тд
18 Bober
 
28.02.13
10:50
(15) на 4 типа. Плюс функционал в (17)
19 Bober
 
28.02.13
10:54
(15)даже не 4, а 6 типов.
20 Bober
 
28.02.13
10:56
(19) не, 7 типов + описание типов и три системных перечисления. Итого уже 11.
21 Reset
 
28.02.13
10:57
(20) null, undefined, ХЗ, уникальный идентификатор + 4 базовых :)
22 Bober
 
28.02.13
10:59
(16) однозначная вещь, тем более, что фактически в таблицах есть поля с хранением значений.
23 Serginio1
 
28.02.13
11:00
Например сравнение на неустановленность значения в поле с множественными типами

|ТИПЗНАЧЕНИЯ(СчетФактура) <> &Тип";
   
Запрос.УстановитьПараметр("Тип",Тип("NULL"));
24 lxndr
 
28.02.13
11:01
(23) тут проще:
ГДЕ
СчетФактура ЕСТЬ NULL
25 Serginio1
 
28.02.13
11:08
26 Serginio1
 
28.02.13
11:09
(24) в 1с все поля БД not null. А для составных типов есть поле отвечающее за тип. А вот в нем можно понять установлено значение или нет
27 Тролль главный
 
28.02.13
11:10
(25) все работает, там запрос кривой
28 Тролль главный
 
28.02.13
11:11
(26) >>в 1с все поля БД not null
это ложь
29 Serginio1
 
28.02.13
11:12
(27) Там не кривой запрос. В итогах прописывается Null, а вот в детальных записях Null нет. Конструкция в 23 работает проверено.
30 Serginio1
 
28.02.13
11:13
(28) приведи пример
31 Reset
 
28.02.13
11:13
(30) Артикул у группы номенклатуры
32 Serginio1
 
28.02.13
11:18
(21) Точно. Вспомнил. Поля справочников только для группы или только для элемента. Прошу прощения.
33 GANR
 
28.02.13
11:20
(0) Не достаточно.

1. ТИПЗНАЧЕНИЯ(Поле) В (&СписокТипов)

2. Запросы ниже, как ни парадоксально, совершенно разные

ВЫБРАТЬ * ИЗ Документ.Реализация КАК Док
ГДЕ НЕ ТИПЗНАЧЕНИЯ(Поле) = &Тип

ВЫБРАТЬ * ИЗ Документ.Реализация КАК Док
ГДЕ ТИПЗНАЧЕНИЯ(Поле) <> &Тип

гибкости прибавилось ого-го
34 GANR
 
28.02.13
11:21
(33) опечатка

ВЫБРАТЬ * ИЗ Документ.Реализация КАК Док
ГДЕ НЕ ТИПЗНАЧЕНИЯ(Док.Товары.Поле) = &Тип

ВЫБРАТЬ * ИЗ Документ.Реализация КАК Док
ГДЕ ТИПЗНАЧЕНИЯ(Док.Товары.Поле) <> &Тип