Переключение на Главную Страницу Страницы: 1 [2] 3  ОтправитьПечать
Очень популярная тема (более 25 ответов) УстановитьТекстовыйПараметр для неопр реквизита (число прочтений - 9763 )
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: УстановитьТекстовыйПараметр для неопр реквизит
Ответ #15 - 24. Апреля 2008 :: 05:43
Печать  
mov68 писал(а) 24. Апреля 2008 :: 05:33:
Еще для одной базы ДокументОснование - документ (13), как тогда -  ВидДокумента13?
Не понял, ты о чем?

Что такое $ВидДокумента36 ты знаешь?
А что такое ВидДокумента13 - мне не известно.
  

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


I Love YaBB 2!

Сообщений: 180
Зарегистрирован: 21. Декабря 2007
Re: УстановитьТекстовыйПараметр для неопр реквизит
Ответ #16 - 24. Апреля 2008 :: 06:01
Печать  
Попробовал
     Док="' ,"D")+"'";
     ТекстЗапроса = "
     |SELECT СФС.SP11009 Страна
     |      ,ГТД.DESCR ГТД
     |FROM DH11012 AS СФ
     |INNER JOIN DT11012 AS СФС ON СФ.IDDOC = СФС.IDDOC
     |LEFT OUTER JOIN SC223 AS ГТД ON СФС.SP11010 = ГТД.ID
     |WHERE (СФ.SP11069 ="+Док+";

В Док спереди добавлен пробел, чтобы получилось 13 символов (Тип Документ)
V- вид документа, D - документ, оба из подключаемой базы
Выдает
State 42000, native 170, message [Microsoft][ODBC SQL Server Driver][SQL Server]Line 7: Incorrect syntax near ' 294  1JST   '.
  
Наверх
 
IP записан
 
mov68
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 180
Зарегистрирован: 21. Декабря 2007
Re: УстановитьТекстовыйПараметр для неопр реквизит
Ответ #17 - 24. Апреля 2008 :: 06:02
Печать  
trad писал(а) 24. Апреля 2008 :: 05:43:
mov68 писал(а) 24. Апреля 2008 :: 05:33:
Еще для одной базы ДокументОснование - документ (13), как тогда -  ВидДокумента13?
Не понял, ты о чем?

Что такое $ВидДокумента36 ты знаешь?
А что такое ВидДокумента13 - мне не известно.


Не пинайте, я просто не знаю как применить $ВидДокумента36 к документу  подключаемой базы
  
Наверх
 
IP записан
 
mov68
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 180
Зарегистрирован: 21. Декабря 2007
Re: УстановитьТекстовыйПараметр для неопр реквизит
Ответ #18 - 24. Апреля 2008 :: 06:35
Печать  
К посту 16, проверено, есть документ, в котором реквизит ДокументОснование имеет такое значение, значит скорее всего дело в способе передачи. Перепробовал все что знал. Намекните хоть куда двигаться?
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: УстановитьТекстовыйПараметр для неопр реквизит
Ответ #19 - 24. Апреля 2008 :: 06:45
Печать  
в (16)-м посте у тебя ругалось на отсутствие закрывающей скобки в конце.
Покажи, как ты "тзф" заполняешь.
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: УстановитьТекстовыйПараметр для неопр реквизит
Ответ #20 - 24. Апреля 2008 :: 07:00
Печать  
mov68 писал(а) 24. Апреля 2008 :: 06:01:
В Док спереди добавлен пробел, чтобы получилось 13 символов (Тип Документ)
V- вид документа, D - документ, оба из подключаемой базы

Сдается мне что в поле V у тебя ид вида в десятичном виде.
Но чтобы построить "длинную" ссылку правильно нужен ид вида в 36-ричной системе.
  

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


I Love YaBB 2!

Сообщений: 180
Зарегистрирован: 21. Декабря 2007
Re: УстановитьТекстовыйПараметр для неопр реквизит
Ответ #21 - 24. Апреля 2008 :: 07:49
Печать  
trad писал(а) 24. Апреля 2008 :: 07:00:
mov68 писал(а) 24. Апреля 2008 :: 06:01:
В Док спереди добавлен пробел, чтобы получилось 13 символов (Тип Документ)
V- вид документа, D - документ, оба из подключаемой базы

Сдается мне что в поле V у тебя ид вида в десятичном виде.
Но чтобы построить "длинную" ссылку правильно нужен ид вида в 36-ричной системе.


     ТекстЗапроса = "
     |SELECT СФС.SP11009 Страна
     |      ,ГТД.DESCR ГТД
     |   ,СФ.SP11069 ОСН
     |FROM DH11012 AS СФ
     |INNER JOIN DT11012 AS СФС ON СФ.IDDOC = СФС.IDDOC
     |LEFT OUTER JOIN SC223 AS ГТД ON СФС.SP11010 = ГТД.ID";
Получаем одно значение З.ОСН = "  86  1F79   "

                  Док="  86  1F79   ";
     ТекстЗапроса = "
     |SELECT СФС.SP11009 Страна
     |      ,ГТД.DESCR ГТД
     |   ,СФ.SP11069 ОСН
     |FROM DH11012 AS СФ
     |INNER JOIN DT11012 AS СФС ON СФ.IDDOC = СФС.IDDOC
     |LEFT OUTER JOIN SC223 AS ГТД ON СФС.SP11010 = ГТД.ID
     |WHERE СФ.SP11069 =:Док";

     Запр.УстановитьТекстовыйПараметр("Док",Док);
     З=Запр.ВыполнитьИнструкцию(ТекстЗапроса);

срабатывает
  
Наверх
 
IP записан
 
villy
Senior Member
****
Отсутствует



Сообщений: 287
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: УстановитьТекстовыйПараметр для неопр реквизит
Ответ #22 - 24. Апреля 2008 :: 07:52
Печать  
   |WHERE (СФ.SP11069 =:Док";

ты тут скобку убери или доставь
  
Наверх
IP записан
 
mov68
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 180
Зарегистрирован: 21. Декабря 2007
Re: УстановитьТекстовыйПараметр для неопр реквизит
Ответ #23 - 24. Апреля 2008 :: 08:38
Печать  
Наткнулся на следующее IDDoc и IDDocDef документа  "  1JST   " и "294"  соответственно,
а ссылка на этот документ в реквизите ДокументОснование "  86  1JST   "
Для частного случая я сделал, может кто подскажет как "294" соотносится с " 86" (с пробелом спереди)
  
Наверх
 
IP записан
 
villy
Senior Member
****
Отсутствует



Сообщений: 287
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: УстановитьТекстовыйПараметр для неопр реквизит
Ответ #24 - 24. Апреля 2008 :: 09:13
Печать  
mov68 писал(а) 24. Апреля 2008 :: 08:38:
Наткнулся на следующее IDDoc и IDDocDef документа  "  1JST   " и "294"  соответственно,
а ссылка на этот документ в реквизите ДокументОснование "  86  1JST   "
Для частного случая я сделал, может кто подскажет как "294" соотносится с " 86" (с пробелом спереди)

чтото из них 36-ричное, наверное
а 294 ты откуда подсмотрел?
  
Наверх
IP записан
 
mov68
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 180
Зарегистрирован: 21. Декабря 2007
Re: УстановитьТекстовыйПараметр для неопр реквизит
Ответ #25 - 24. Апреля 2008 :: 09:23
Печать  
Цитата:
mov68 писал(а) 24. Апреля 2008 :: 08:38:
Наткнулся на следующее и IDDocDef документа  "  1JST   " и "294"  соответственно,
а ссылка на этот документ в реквизите ДокументОснование "  86  1JST   "
Для частного случая я сделал, может кто подскажет как "294" соотносится с " 86" (с пробелом спереди)

чтото из них 36-ричное, наверное
а 294 ты откуда подсмотрел?


IDDocDef получен в первом запросе, там же где и IDDoc ="  1JST   "
  
Наверх
 
IP записан
 
mov68
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 180
Зарегистрирован: 21. Декабря 2007
Re: УстановитьТекстовыйПараметр для неопр реквизит
Ответ #26 - 24. Апреля 2008 :: 09:25
Печать  
Спасибо всем за наводки. Для конкретного случая сделал, для универсальности необходимо еще поковыряться
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: УстановитьТекстовыйПараметр для неопр реквизит
Ответ #27 - 24. Апреля 2008 :: 09:54
Печать  
раз уж индексы все равно никакие не используются, то универсально будет так
WHERE right(СФ.SP11069,9) =:Док
где Док = D

имей ввиду что твой запрос выполняет фулскан таблицы DH11012
  

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


I Love YaBB 2!

Сообщений: 180
Зарегистрирован: 21. Декабря 2007
Re: УстановитьТекстовыйПараметр для неопр реквизит
Ответ #28 - 24. Апреля 2008 :: 12:37
Печать  
trad писал(а) 24. Апреля 2008 :: 09:54:
раз уж индексы все равно никакие не используются, то универсально будет так
WHERE right(СФ.SP11069,9) =:Док
где Док = D

имей ввиду что твой запрос выполняет фулскан таблицы DH11012


Спасибо, учту.
Когда говорил про универсальность, имел в первую очередь именно формирование Док, Сейчас:
                   ДокВид="  86"+тзф.ПолучитьЗначение(тзф.НомерСтроки,"D");
     ТоварВид="B1  4C"+зф.SP283+"        ";
     ТекстЗапроса = "
     |SELECT СФС.SP11009 Страна
     |   ,ГТД.DESCR ГТД
     |   ,Жур.DOCNO НомерДок
     |   ,CAST(LEFT(Жур.Date_Time_IDDoc, 8) as DateTime) as ДатаДок
     |FROM _1SJourn Жур  
     |INNER JOIN DH11012 AS СФ on СФ.IDDoc  = Жур.IDDoc
     |INNER JOIN DT11012 AS СФС ON СФ.IDDOC = СФС.IDDOC
     |LEFT OUTER JOIN SC223 AS ГТД ON СФС.SP11010 = ГТД.ID
     |WHERE (СФ.SP11069 = :Док)
     |AND (СФС.SP10995 = :Товар)
     |";

     Запр.УстановитьТекстовыйПараметр("Док",ДокВид);
     Запр.УстановитьТекстовыйПараметр("Товар",ТоварВид);
     З=Запр.ВыполнитьИнструкцию(ТекстЗапроса);

ДокВид, ТоварВид формирую под конкретную базу, посмотрев как там это выглядит, почему "  86" и "B1  4C" даже не спрашивайте, взял как данность, к ним присоединяю iddocdef и ID соответственно
  
Наверх
 
IP записан
 
mov68
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 180
Зарегистрирован: 21. Декабря 2007
Re: УстановитьТекстовыйПараметр для неопр реквизит
Ответ #29 - 24. Апреля 2008 :: 12:46
Печать  
Чтобы уйти от фулскана, сейчас попробую вытащить Дату и ограничить по ней, к сожалению будет что-то >ДатаНакладной
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 3 
ОтправитьПечать