v7: Вид справочника в прямом запросе 1с++ #633645


#0 by mikecool
Есть реквизит тип Справочник Как в запросе получить вид выбранного значения и сравнить с $ВидСправочника? хочу типа case when $Реквизит.Вид = $ВидСправочника и т.п.
#1 by mikecool
хочу аналог ССЫЛКА )
#2 by GLazNik
так бери первые 4 символа и сравнивай с $ВидСправочника36.НужныйВид
#3 by ADirks
читай тут:
#4 by mikecool
спасибо
#5 by ADirks
а ещё можно про реляционную алгебру почитать, чисто для просветления :) например:
#6 by Злой Бобр
Какая алгебра?.. Человек поиском пользоваться неумеет ... )))
#7 by ЧеловекДуши
Очень просто, первые четыре символа в ссылке типа Справочник и содержат твой вид. Если это неопределенный тип, то берешь последние 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 отводится под определение типа, в случае базовых типов, таких как число, строка, дата).
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С