Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Документы неопределенного типа (число прочтений - 2533 )
kye
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 36
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Документы неопределенного типа
27. Июня 2006 :: 10:44
Печать  
Есть регистр след. структуры Измерения: Заказ:Документ, Номенклатура:Справочник.Номенклатура Ресурсы: Количество.Число. Заранее известно что в измерении заказ может быть только два документа, с заполненным реквизитом фирма. Возможно ли получить остатки по фирмам используя этот регистр?

Делаю следующим образом:
Код
Выбрать все
SELECT
    ОстЗаказ.Заказ [Заказ $Документ]
   , journ.Фирма [Фирма $Справочник.Фирмы]
    ,ОстЗаказ.Номенклатура [Номенклатура $Справочник.Номенклатура]
    , ОстЗаказ.КоличествоОстаток
FROM
    $РегистрОстатки.ОстаткиВЗаказах(,,,
		(Заказ, Номенклатура),
		Количество) AS ОстЗаказ
LEFT JOIN
     (select
		 iddoc,
		 $ОбщийРеквизит.Фирма as Фирма
	  from
		 _1sjourn with (NoLock)
	) as journ  on journ.iddoc = ОстЗаказ.Заказ
 


В результате получается выборка без фирм. при детальном рассмотрении ID Заказа и IDDOC журнала несоответствуют у каждого документа в регистре идет префикс KRT потом уже номер документа. Как избавится от префикса KRT? Только обрезкой первых символов?
  
Наверх
 
IP записан
 
villy
Senior Member
****
Отсутствует



Сообщений: 287
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Документы неопределенного типа
Ответ #1 - 27. Июня 2006 :: 10:53
Печать  
если я правильно понял, то ты пытаешься "... as journ  on journ.iddoc = ОстЗаказ.Заказ" приджойнить с условием char(9) = char(13). Если в данной строке заменить "ОстЗаказ.Заказ" на right(ОстЗаказ.Заказ,9), тогда джойн пройдёт успешно.
  
Наверх
IP записан
 
kye
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 36
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Документы неопределенного типа
Ответ #2 - 27. Июня 2006 :: 10:56
Печать  
Да, правильно понял, спасибо
  
Наверх
 
IP записан
 
DrACe
1c++ donor
1c++ power user
Отсутствует


1С++ любитель

Сообщений: 447
Местоположение: г. Новосибирск
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Документы неопределенного типа
Ответ #3 - 27. Июня 2006 :: 10:57
Печать  
Это не префикс - это тот самый вид (а не тип) документа char(4)

Документ непределенного вида в твоем регистре - char(13)
Документ в твоем журнале - char(9)

или возьми справа 9 символов
Код
Выбрать все
journ  on journ.iddoc = RIGHT(ОстЗаказ.Заказ,9) 


или добавь к ИдЖурнала Вид документов, благо они тебе известны
Код
Выбрать все
journ  on ($ВидДокумента36.ВидДока1 + journ.iddoc = ОстЗаказ.Заказ) or ($ВидДокумента36.ВидДока2 + journ.iddoc = ОстЗаказ.Заказ) 


что быстрее и оптимальнее - скорее просто обрезка, по iddoc есть индекс и он уникальный, так что ошибки не будет
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать