Имя: Пароль:
1C
1C 7.7
v7: Вид справочника в прямом запросе 1с++
0 mikecool
 
10.10.12
16:28
Есть реквизит тип Справочник
Как в запросе получить вид выбранного значения и сравнить с $ВидСправочника?
хочу типа
case when $Реквизит.Вид = $ВидСправочника и т.п.
1 mikecool
 
10.10.12
16:29
хочу аналог ССЫЛКА )
2 GLazNik
 
10.10.12
16:33
(0) так бери первые 4 символа и сравнивай с $ВидСправочника36.НужныйВид
3 ADirks
 
10.10.12
16:36
4 mikecool
 
10.10.12
16:36
спасибо
5 ADirks
 
10.10.12
16:50
а ещё можно про реляционную алгебру почитать, чисто для просветления :)
например: http://citforum.ru/database/dblearn/dblearn04.shtml
6 Злой Бобр
 
11.10.12
02:22
(5) Какая алгебра?.. Человек поиском пользоваться неумеет ... )))
7 ЧеловекДуши
 
11.10.12
05:40
Очень просто, первые четыре символа в ссылке типа Справочник и содержат твой вид. Если это неопределенный тип, то берешь последние 13 символов из ссылки и левые 4 символа это твой вид :)

1.1.1. Хранение ID объекта

ID может иметь 3 представления (уровня) в зависимости от длины (количества значащих символов):

   9 символов – определен тип и вид объекта (например «Справочник.Клиенты»), в ID включается только порядковый номер в 36-ричной системе исчисления. Под порядковый номер отводятся первые 6 символов, последние 3 символа зарезервированы под код базы УРБД.
   13 символов – определен только тип объекта, вид не задан (например «Справочник»). Первые 4 символа – идентификатор вида (как он задан в метаданных), последующие 9 символов – по аналогии с предыдущим пунктом.
   23 символа – не определен тип и вид объекта. В таком случае в первых 2 символах хранится тип объекта (будет рассмотрен ниже), следующие 13 символов формируются аналогично предыдущему пункту.

В некоторых случаях, при указании неопределенного типа объекта (длина ID кода 23 символа) создается дополнительное поле с символом «T» вначале (например, если в справочнике задан реквизит SP235 как неопределенный, то в таблице справочника будет создано еще одно поле TSP235). Рассмотрим поподробнее значения этого поля. Это поле по умолчанию заполняется пустой строкой (3 пробела).

   Для невыбранного типа (заполняется по умолчанию): TSP235 = '   ' (3 пробела), при этом связанное неопределенное поле SP235 заполняется значением 'U                      ' (символ U и 22 пробела), что скорее всего означает «Undefined», т.е. неопределенный.
   Для типов «Число»: связанное поле SP235 заполняется строковым значением числа, но с символом «N» в начале строки (например 'N                     2' для целого числа 2). Возможные значения TSP235:
       'F30' - число с плавающей запятой (float);
       '320' - число, состоящее только из десятичных (0.99, т.е. Число(3,2)).
       'A00' - целое число (int);
   Для типов «Строка»: связанное поле SP235 заполняется строкой, но с символом 'S' слева (например 'SАбвгдежзклимно        '). Возможные значения TSP235 в этом случае: количество знаков, определенных для строкового значения, например, '14' - количество знаков в строке, в 36-ричном формате (_IDToStr). Следует отметить, хотя 1С и назначает длину строки больше 22 символов, но фактически в этом поле можно хранить только 22 символа (1 разряд приходиться на обозначение типа поля 'S').
   Для типов «Дата»: связанное поле SP235 заполняется строкой, но с символом 'D' слева (например 'D20050303              '). TSP235 - '   ' (3 пробела), т.е. поле пустое.
   Для типов 1С (Справочник, Документ, Перечисление, Счет, и т.д.): связанное поле SP235 заполняется строкой включающий полный идентификатор объекта (его тип, вид, внутренний ИД код). Следует отметить, что для типов «Перечисление» нельзя не назначать вид, так как неназначение вида приведет к несовпадению типов и незаполнению неопределенного поля. Возможные значения TSP235:
       '0  ' - был назначен только тип объекта, вид не назначен (например «НазначитьТип(«Справочник»)»)
       '1  ' - был назначен как тип объекта, так и его вид (например «НазначитьТип(«Справочник.Клиенты»)»)

Примечание

Поскольку для неопределенных реквизитов (полей) длина поля всегда равна 23 символам, то соответственно в такое поле можно записать значение максимум с 22 символьным значением (1 отводится под определение типа, в случае базовых типов, таких как число, строка, дата).
Основная теорема систематики: Новые системы плодят новые проблемы.