Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) Преобразование дока в $Неопределенный (число прочтений - 4812 )
Istribitel_Slftk
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 10
Зарегистрирован: 09. Октября 2006
Преобразование дока в $Неопределенный
11. Октября 2006 :: 11:29
Печать  
Немогу справиться с преобразованием. Пишу

'B1' + Right('    ' + dbo.convsyst(Проводки.IDDOCDEF), 4) + Проводки.IDDOC - не работает.

'A1' + Right('    ' + dbo.convsyst(Проводки.IDDOCDEF), 4) + Проводки.IDDOC - не работает.

Где dbo.convsyst - функция преобразования десятичного числа в шестнадцатиричное. А Проводки - наименование регистра.
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Преобразование дока в $Неопределенный
Ответ #1 - 11. Октября 2006 :: 12:16
Печать  
ну во-первых: 1с не оперирует идентификаторами в системе счисления с основанием 16. Только 10 и 36.
  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Преобразование дока в $Неопределенный
Ответ #2 - 11. Октября 2006 :: 12:17
Печать  
чего хотим сделать-то? может по другому как-нибудь получиться.
  

1&&2&&3
Наверх
 
IP записан
 
Istribitel_Slftk
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 10
Зарегистрирован: 09. Октября 2006
Re: Преобразование дока в $Неопределенный
Ответ #3 - 11. Октября 2006 :: 12:19
Печать  
тьфу,  Смех оговорился. Разумеется в 36-ричную систему переводиться.

           |CREATE FUNCTION ConvSyst(@num int)
           |RETURNS varchar(99)
           |AS
           |BEGIN      
           |  declare @syst int
           |  declare @r varchar(99)
           |  set @r='';
           |  set @syst = 36;
           |  while @num>0
           |    select @r=char(case when @num%@syst < 10
           |                   then @num%@syst + ascii('0')
           |                   else @num%@syst + ascii('A')-10 end)   +@r, 
         |                     @num=@num / @syst
           |
           |  return @r
           |END";


Вот функция переода - протестировал работает 100 верно. Никак не могу понять, где проблема.(((
  
Наверх
 
IP записан
 
Istribitel_Slftk
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 10
Зарегистрирован: 09. Октября 2006
Re: Преобразование дока в $Неопределенный
Ответ #4 - 11. Октября 2006 :: 12:25
Печать  
trad писал(а) 11. Октября 2006 :: 12:17:
чего хотим сделать-то? может по другому как-нибудь получиться.


Да у меня в union большой по нескольким регистрам - там может быть и справочник и документ - я все к неопределенному преобразую.
  
Наверх
 
IP записан
 
Istribitel_Slftk
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 10
Зарегистрирован: 09. Октября 2006
Re: Преобразование дока в $Неопределенный
Ответ #5 - 11. Октября 2006 :: 12:52
Печать  
Коллеги, прошу прощения за назойливость! Но мне очень надо сегодня сдать эту работу!  Плачущий
  
Наверх
 
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Преобразование дока в $Неопределенный
Ответ #6 - 11. Октября 2006 :: 13:09
Печать  
Если Проводки это регистр, то в поле IDDOCDEF может находиться только вид документа, а в IDDOC идентификатор документа, а идентификатор типа Документ 'O1', следовательно писать надо так:
'O1' + Right('    ' + dbo.convsyst(Проводки.IDDOCDEF), 4) + Проводки.IDDOC
  
Наверх
ICQ  
IP записан
 
Istribitel_Slftk
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 10
Зарегистрирован: 09. Октября 2006
Re: Преобразование дока в $Неопределенный
Ответ #7 - 11. Октября 2006 :: 13:34
Печать  
Спасибо!
Хочу заметить, что если написать

'B1' + Right('    ' + dbo.convsyst(Проводки.IDDOCDEF), 4) + Проводки.IDDOC

и выгрузить результат в таблицу значений, - тогда документ есть, а если выводить это в таблицу - тогда показывает, что Объект не найден. А при попытке отладить 1С вылетала с руганью на память.
  
Наверх
 
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Преобразование дока в $Неопределенный
Ответ #8 - 11. Октября 2006 :: 15:27
Печать  
Каждый V7-SQL прогер должен помнить это магическое заклинание: "EBOCATKP".  Подмигивание
  
Наверх
ICQ  
IP записан
 
Istribitel_Slftk
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 10
Зарегистрирован: 09. Октября 2006
Re: Преобразование дока в $Неопределенный
Ответ #9 - 11. Октября 2006 :: 20:10
Печать  
а можно рашифровать? Ужас надо думать тут зашифровано выражение про драйвер?  Очень довольный
  
Наверх
 
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Преобразование дока в $Неопределенный
Ответ #10 - 12. Октября 2006 :: 05:18
Печать  
Это первые символы идентификаторов типа для всех агрегатных типов V7 в порядке номеров типа (возвращаемых функцией ТипЗначения()).
Второй символ всегда "1".
  
Наверх
ICQ  
IP записан
 
Istribitel_Slftk
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 10
Зарегистрирован: 09. Октября 2006
Re: Преобразование дока в $Неопределенный
Ответ #11 - 12. Октября 2006 :: 20:00
Печать  
а-а-а..  Смех а я-то подумал, что Вы про krivie_ryki.sys  Смех Смех Смех Смех Смех Смех Смех Смех Смех Смех Смех
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать