Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Тип объекта, по строковому представлению (число прочтений - 3483 )
jiva
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 3
Местоположение: Москва
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Тип объекта, по строковому представлению
10. Февраля 2007 :: 15:30
Печать  
Собственно сабж. Имеется  13-символьное строковое представление объекта как узнать его тип Справочник, Документ....
  
Наверх
ICQ  
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Тип объекта, по строковому представлению
Ответ #1 - 10. Февраля 2007 :: 17:45
Печать  
По первым четырем символам. Где ищем? _1sjourn?
  
Наверх
 
IP записан
 
jiva
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 3
Местоположение: Москва
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Тип объекта, по строковому представлению
Ответ #2 - 12. Февраля 2007 :: 12:40
Печать  
При работе с распределенной БД есть таблица 1SUPDTS в ней поля ид объекта (9)  и вид объекта (4). Для получения объекта из этих данных необходимо знать его тип.  По строке вида  получаю номер вида . Далее через список значений всех видов для документов и справочников проверяю входит текущий вид в один из списков.  Может быть есть более простой способ?
  
Наверх
ICQ  
IP записан
 
bes
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 4
Зарегистрирован: 06. Декабря 2006
Re: Тип объекта, по строковому представлению
Ответ #3 - 13. Февраля 2007 :: 12:01
Печать  
Может так???:

Мета = СоздатьОбъект("MetaDataWork");
Объект = Мета.ЗначениеИзДлиннойСтрокиБД("Строка 13 симв");

Из синтакс помошника:
Синтаксис:
ЗначениеИзДлиннойСтрокиБД(<Type>,<strVal>)
Назначение:
метод преобразует из строки внутреннего представления объекта в сам объект, конкретного типа и вида. В отличие от метода ValueFromDBString в данный метод нет необходимости передавать вид объекта, т.к. вид должен содержаться в самой строке внутреннего представления. Формат внутреннего представления: [Kind(4)][ID(6)][Sign(3)] = 13 символов.
  
Наверх
 
IP записан
 
Locke
YaBB Newbies
*
Отсутствует


Все фигня, кроме пчел.
Да и пчелы если разобраться

Сообщений: 2
Местоположение: Судя по погоде Магадан
Зарегистрирован: 13. Февраля 2007
Пол: Мужской
Re: Тип объекта, по строковому представлению
Ответ #4 - 13. Февраля 2007 :: 12:53
Печать  
Цитата:
Может так???:
ЗначениеИзДлиннойСтрокиБД(<Type>,<strVal>)
.

Там же все равно надо хотя бы тип <Type> указывать, а в 1SUPDS непонятно док это или справочник.
Я выкручивался тем что по очереди отбирал сначала все справочники, потом все доки. примерно так:
ТЗ=СоздатьОбъект("ТаблицаЗначений");
     ВидОБъектов=?(Что=1,"SC","DH");
     ТекстЗапроса="SELECT      _1SUPDTS.OBJID ИД,_1SUPDTS.TYPEID Вид
     |FROM         _1SUPDTS INNER JOIN
     |                      sysobjects ON '"+ВидОБъектов+"' +
     |CONVERT(char, _1SUPDTS.TYPEID) = sysobjects.name";
     Если Выборка.Открыть(ТекстЗапроса)=1 Тогда 
           Выборка.ПолучитьРезультатыВ_ТЗ(ТЗ,1);
           Выборка.Закрыть();
     КонецЕсли;
     ВидОБъектов=?(Что=1,11,12);
     ТЗ.ВыбратьСтроки();
     Пока ТЗ.ПолучитьСтроку()=1 Цикл
           ОБъекты.ДобавитьЗначение(Мета.ЗначениеИзСтрокиБД(ВидОБъектов,ТЗ.Вид,ТЗ.ИД));
     КонецЦикла;
  
Наверх
 
IP записан
 
jiva
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 3
Местоположение: Москва
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Тип объекта, по строковому представлению
Ответ #5 - 15. Февраля 2007 :: 07:56
Печать  
Спасибо за участие, делаю примерно, то же самое. Просто думал, что есть более простой подход
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать