Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) Определить IDDoc (число прочтений - 5715 )
rimidalv
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 12
Зарегистрирован: 21. Января 2011
Определить IDDoc
07. Июня 2012 :: 10:18
Печать  
ТЗ возвращает 0, почему? Хочу определить IDDoc документа, в отладчике он виден, как его вытащить?
SELECT
   Äîê.IDDoc as [Äîê_1c_type_Äîêóìåíò_äîê_ÍàêëàäíàÿÐîçíèöû],
     Äîê.sp11609 as ÍàêëÍîìåð
FROM
   dh11626 as Äîê
WHERE
   Äîê.IDDoc = '  7ZXX   '
 <-- вот ОН Улыбка
Код
Выбрать все
RS.УстановитьТекстовыйПараметр("ТекДок",ТабДок.Док.ТекущийДокумент());
ВидДокумента=ТабДок.Док.Вид();

ТекстЗапроса = "
	|SELECT
	|    Док.IDDoc as [Док $Документ."+СокрЛП(ВидДокумента)+"],
	|	$Док.НаклНомер as НаклНомер
	|FROM
	|    $Документ."+СокрЛП(ВидДокумента)+" as Док
	|WHERE
	|    Док.IDDoc = :ТекДок";

//RS.Отладка(1);
ТЗ = RS.ВыполнитьИнструкцию(ТекстЗапроса);
ТЗ.ВыбратьСтроку(0); 

  
Наверх
 
IP записан
 
rimidalv
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 12
Зарегистрирован: 21. Января 2011
Re: Определить IDDoc
Ответ #1 - 07. Июня 2012 :: 11:07
Печать  
Да! И саму таблицу документа подскажите как выудить?

SELECT
  Äîê.IDDoc as [Äîê_1c_type_Äîêóìåíò_äîê_ÍàêëàäíàÿÐîçíèöû],
    Äîê.sp11609 as ÍàêëÍîìåð
FROM
  dh11626 as Äîê   <-- Вот ОНА Улыбка
WHERE
  Äîê.IDDoc = '  7ZXX   '  
  
Наверх
 
IP записан
 
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: Определить IDDoc
Ответ #2 - 07. Июня 2012 :: 11:08
Печать  
Эти запросом ты типизируешь iddoc
если ще надо и объет и iddoc
то добавь
Док.IDDoc as idd,
  
Наверх
 
IP записан
 
rimidalv
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 12
Зарегистрирован: 21. Января 2011
Re: Определить IDDoc
Ответ #3 - 07. Июня 2012 :: 11:17
Печать  
Если так
Код
Выбрать все
ТекстЗапроса = "
	|SELECT
	|    Док.IDDoc as [Док $Документ."+СокрЛП(ВидДокумента)+"],
	|	Док.IDDoc as idd
	|FROM
	|    $Документ."+СокрЛП(ВидДокумента)+" as Док
	|WHERE
	|    Док.IDDoc = :ТекДок"; 


То результат тот-же, ТЗ=0
  
Наверх
 
IP записан
 
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: Определить IDDoc
Ответ #4 - 07. Июня 2012 :: 11:31
Печать  
А может сделать по другому?
Для начала сделай так:

Код
Выбрать все
select
j.iddoc iddoc,
j.iddoc [Док $Документ],
j.iddocdef Док_вид
from _1sjourn j (nolock)
where
j.iddoc=:ВыбДок
 


Незнаю как у тябя у меня все в норме.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Определить IDDoc
Ответ #5 - 07. Июня 2012 :: 11:47
Печать  
Код
Выбрать все
ТекстЗапроса = "
	|SELECT
	|    Док.IDDoc as [Док $Документ."+ТекДок.Вид()+"],
	|	Док.IDDoc as idd
	|FROM
	|    $Документ."+ТекДок.Вид()+" as Док
	|WHERE
	|    Док.IDDoc = :ТекДок";
 


весьма забавный и бессмысленный код
  
Наверх
 
IP записан
 
rimidalv
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 12
Зарегистрирован: 21. Января 2011
Re: Определить IDDoc
Ответ #6 - 07. Июня 2012 :: 11:54
Печать  
В теме забыл написать, детям с завышенной самооценкой просьба не отписыватся.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Определить IDDoc
Ответ #7 - 07. Июня 2012 :: 12:15
Печать  
Дурилко, тебе всего лишь исправили твой не рабочий код.

ЗЫ: а iddoc можно получить и другими методами, как штатными через ЗначениеВСтрокуУнутрь, так и через методы встроенного класса метадатаворк.
  
Наверх
 
IP записан
 
rimidalv
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 12
Зарегистрирован: 21. Января 2011
Re: Определить IDDoc
Ответ #8 - 07. Июня 2012 :: 12:55
Печать  
Код
Выбрать все
текID = ЗначениеВСтрокуВнутр( ТабДок.Док.ТекущийДокумент()  );
		текID = Сред(текID, СтрДлина(текID)-14,  13); 


текID не получает '  7ZXX   ',собственно, я это и знал
Епрст! можешь пойти лесом? Спасибо!

Код
Выбрать все
RS.УстановитьТекстовыйПараметр("ВыбДок",ТабДок.Док.ТекущийДокумент());
		ВидДокумента=ТабДок.Док.Вид();

		ТекстЗапроса = "
		|select j.iddoc iddoc, j.iddoc [Док $Документ], j.iddocdef as [Док $Документ."+СокрЛП(ВидДокумента)+"]
		|from _1sjourn j (nolock)
		|where j.iddoc=:ВыбДок"; 


В ТЗ ничего не попадает.
Результат отладчика
Код
Выбрать все
select j.iddoc iddoc, j.iddoc [Äîê_1c_type_Äîêóìåíò], j.iddocdef as [Äîê_1c_type_Äîêóìåíò_äîê_ÍàêëàäíàÿÐîçíèöû]
from _1sjourn j (nolock)
where j.iddoc='  7ZXX   ' 



что-то я не так написал? Может быть причина в том, что 1с SQL-ая, а база ДБФ-ная?
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Определить IDDoc
Ответ #9 - 07. Июня 2012 :: 13:05
Печать  
rimidalv писал(а) 07. Июня 2012 :: 12:55:
           текID = Сред(текID, СтрДлина(текID)-14,  13); [/code]
текID не получает '  7ZXX   ',собственно, я это и знал


а в 36 кто переводить будет ?

ознакомься
http://my1c-archive.narod.ru/knowhow/get_id.html

и это, мой код то хоть проверил ?
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Определить IDDoc
Ответ #10 - 07. Июня 2012 :: 13:09
Печать  
rimidalv писал(а) 07. Июня 2012 :: 11:17:
Если так
Код
Выбрать все
ТекстЗапроса = "
	|SELECT
	|    Док.IDDoc as [Док $Документ."+СокрЛП(ВидДокумента)+"],
	|	Док.IDDoc as idd
	|FROM
	|    $Документ."+СокрЛП(ВидДокумента)+" as Док
	|WHERE
	|    Док.IDDoc = :ТекДок"; 


То результат тот-же, ТЗ=0



Приведи весь текст от и до .
похоже просто забыл ( или неправильно его задал )
установитьтекстовыйпараметр
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Определить IDDoc
Ответ #11 - 07. Июня 2012 :: 13:13
Печать  
rimidalv писал(а) 07. Июня 2012 :: 12:55:
что-то я не так написал? Может быть причина в том, что 1с SQL-ая, а база ДБФ-ная?


Это как ?

У тебя база в скуле, судя по _1sjourn

Цитата:
j.iddocdef as [Док $Документ."+СокрЛП(ВидДокумента)+"]


в iddocdef  хранится вид документа, типизировать его к <Документ.Вид> бессмысленно


ЗЫ: если че

Код
Выбрать все
мд = СоздатьОбъект("metadatawork");
сообщить(мд.ЗначениеВСтрокуБД(ТекДок));
ЗначениеВСтрокуБД() 


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



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Определить IDDoc
Ответ #12 - 07. Июня 2012 :: 13:27
Печать  
Eprst писал(а) 07. Июня 2012 :: 13:13:
У тебя база в скуле, судя по _1sjourn

а это не его код Смех

судя по его коду  [Äîê_1c_type_Äîêóìåíò_äîê_ÍàêëàäíàÿÐîçíèöû],
- это dbf
  

1&&2&&3
Наверх
 
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Определить IDDoc
Ответ #13 - 07. Июня 2012 :: 13:28
Печать  
rimidalv писал(а) 07. Июня 2012 :: 12:55:
Код
Выбрать все
текID = ЗначениеВСтрокуВнутр( ТабДок.Док.ТекущийДокумент()  );
		текID = Сред(текID, СтрДлина(текID)-14,  13); 


В данном случае, имхо, должно быть Сред(.., .., 9)

Не понятно как у тебя
[quote]where j.iddoc='  7ZXX   '
получилось из 9-ти символов.

Проверил у себя на 1sqlite.
Цитата:
Выбрать
iddoc
Из ЖурналДокументов
Где iddoc= :СтрID

возвращает соответственно одну строку с заданым IDDOC.


Вообще сабжевый вопрос оставляет впечатление легкого бреда. Объясни по-человечески, для чего это в конечном счете надо - засовывать ИД в запрос в качестве текстового параметра.
  
Наверх
GTalkICQ  
IP записан
 
rimidalv
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 12
Зарегистрирован: 21. Января 2011
Re: Определить IDDoc
Ответ #14 - 07. Июня 2012 :: 13:30
Печать  
Код
Выбрать все
Зн36 = _IdToStr(текID); 


А как быть с названием таблицы? неужели рыскать по DD-ику, 1с++ как-то определяет?
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать