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


1C++ rocks!

Сообщений: 13
Зарегистрирован: 15. Ноября 2010
Запрос 1С++ SQL не видит новый реквизит
15. Ноября 2010 :: 08:58
Печать  
1C 77 MS SQL

Создал новый реквизит в справочнике "Адреса.ДниНедПер" в SQL "SP28348" тип строка (10). Запрос 1С++ его не видит, старые реквизиты проходят, а новый нет.

В таблице SQL оно существует и в описании структуры (1Cv7.DDS) также присутствует.


Вот собственно запрос:
     ТекстЗапроса = "
           |SELECT Контрагенты.CODE КодКонтрагента
           |      , Контрагенты.DESCR Контрагент
|      , $Контрагенты.ЮридическийАдрес ЮридическийАдрес
|      , Адреса.SP28348 ДниНедПер
           |      , Номенклатура.CODE КодТовара
           |      , Номенклатура.DESCR Номенклатура
           |      , $РасходнаяНакладнаяСтроки.Количество Количество
           |      , $РасходнаяНакладнаяСтроки.Цена Цена
           |      , $РасходнаяНакладнаяСтроки.Всего Сумма
           |      , Журнал.DOCNO НомерДок
           |      , (Cast(Left(Журнал.DATE_TIME_IDDOC, 8) as Datetime)) ДатаДок
           |      , Журнал.DATE_TIME_IDDOC ПозицияДокумента
           |      , РасходнаяНакладная.$ОбщийРеквизит.Комментарий Комментарий
           |FROM $ДокументСтроки.РасходнаяНакладная AS РасходнаяНакладнаяСтроки
           |      INNER JOIN _1SJOURN AS Журнал ON РасходнаяНакладнаяСтроки.IDDOC = Журнал.IDDOC
           |      INNER JOIN $Документ.РасходнаяНакладная AS РасходнаяНакладная ON РасходнаяНакладнаяСтроки.IDDOC = РасходнаяНакладная.IDDOC
           |      INNER JOIN $Справочник.Номенклатура AS Номенклатура ON $РасходнаяНакладнаяСтроки.Товар = Номенклатура.ID
           |      INNER JOIN $Справочник.Контрагенты AS Контрагенты ON $РасходнаяНакладная.Контрагент = Контрагенты.ID
|      INNER JOIN $Справочник.Адреса AS Адреса ON $РасходнаяНакладная.Адрес = Адреса.ID
           |WHERE Журнал.DATE_TIME_IDDOC BETWEEN :НачДата AND :КонДата~
           |      AND ($РасходнаяНакладная.Проводная = 1)
           |      AND ((Журнал.CLOSED & 1) = 1)
           |ORDER BY (Cast(Left(Журнал.DATE_TIME_IDDOC, 8) as Datetime)), Журнал.DOCNO
           |";

Вот, что оно пишет:
State 42S22, native 207, message [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'SP28348'.

Подскажите, как решить эту проблему. Мож что-то нужно обновить...
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Запрос 1С++ SQL не видит новый реквизит
Ответ #1 - 15. Ноября 2010 :: 09:33
Печать  
SP28348 не слишком ли много реквизитов у тебя?
может лишнюю цифру написал

почему вместо
Адреса.SP28348
не написать
$Адреса.ДниНедПер
  
Наверх
 
IP записан
 
victor
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 13
Зарегистрирован: 15. Ноября 2010
Re: Запрос 1С++ SQL не видит новый реквизит
Ответ #2 - 15. Ноября 2010 :: 11:10
Печать  
Z1 писал(а) 15. Ноября 2010 :: 09:33:
SP28348 не слишком ли много реквизитов у тебя?
может лишнюю цифру написал

почему вместо
Адреса.SP28348
не написать
$Адреса.ДниНедПер


спасибо...
все нужны, так тоже писал тоже самое выдает...
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Запрос 1С++ SQL не видит новый реквизит
Ответ #3 - 15. Ноября 2010 :: 11:25
Печать  
(0)что выдает запрос

select top 10 $Адреса.ДниНедПер from $Справочник.Адреса AS Адреса



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


1C++ rocks!

Сообщений: 13
Зарегистрирован: 15. Ноября 2010
Re: Запрос 1С++ SQL не видит новый реквизит
Ответ #4 - 15. Ноября 2010 :: 11:44
Печать  
Z1 писал(а) 15. Ноября 2010 :: 11:25:
(0)что выдает запрос

select top 10 $Адреса.ДниНедПер from $Справочник.Адреса AS Адреса




спасибо...
этого не пробывал, щас нет возможности  через 10 часов будет под рукой...
  
Наверх
 
IP записан
 
victor
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 13
Зарегистрирован: 15. Ноября 2010
Re: Запрос 1С++ SQL не видит новый реквизит
Ответ #5 - 15. Ноября 2010 :: 11:50
Печать  
в 1С предприятии в форме он отображается и заполняется- значения также отображаются в таблице sql и имя реквизита идентично....
  
Наверх
 
IP записан
 
victor
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 13
Зарегистрирован: 15. Ноября 2010
Re: Запрос 1С++ SQL не видит новый реквизит
Ответ #6 - 15. Ноября 2010 :: 12:01
Печать  
архитектура доступа такова - каталог иб лежит на диске win2008 и запускается от туда же, там же установлен sql 2005, а база находится на другом сервере win 2003 и крутится по SQL 2000 - так намудрено сисадмином вероятно из за плохой совместимости 1С77 и 2008... мож проблема с совместимостью ODBC?
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Запрос 1С++ SQL не видит новый реквизит
Ответ #7 - 15. Ноября 2010 :: 12:10
Печать  
victor писал(а) 15. Ноября 2010 :: 12:01:
архитектура доступа такова - каталог иб лежит на диске win2008 и запускается от туда же, там же установлен sql 2005, а база находится на другом сервере win 2003 и крутится по SQL 2000 - так намудрено сисадмином вероятно из за плохой совместимости 1С77 и 2008... мож проблема с совместимостью ODBC?

нет этого не может быть.
лучше скажите результат из #3
  
Наверх
 
IP записан
 
victor
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 13
Зарегистрирован: 15. Ноября 2010
Re: Запрос 1С++ SQL не видит новый реквизит
Ответ #8 - 16. Ноября 2010 :: 00:06
Печать  
Z1 писал(а) 15. Ноября 2010 :: 11:25:
(0)что выдает запрос

select top 10 $Адреса.ДниНедПер from $Справочник.Адреса AS Адреса




Попробывал выдает тоже самое
State 42S22, native 207, message [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'sp28348'.
c:\sp28348.bmp
  
Наверх
 
IP записан
 
victor
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 13
Зарегистрирован: 15. Ноября 2010
Re: Запрос 1С++ SQL не видит новый реквизит
Ответ #9 - 16. Ноября 2010 :: 00:27
Печать  
Вот поле/реквизит в MS SQL
  

sp28348.bmp ( 137 KB | Загрузки )
sp28348.bmp
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Запрос 1С++ SQL не видит новый реквизит
Ответ #10 - 16. Ноября 2010 :: 05:41
Печать  
тогда попробуй
rc.Отладка(1);
ТЗ = rc.ВыполнитьИнструкцию("select top 10 $Адреса.ДниНедПер from $Справочник.Адреса AS Адреса");
из поля отладки выполни запрос в qa

также попробуй
ТЗ = rc.ВыполнитьИнструкцию("select top 10 sp28348 from sc26688");
  
Наверх
 
IP записан
 
victor
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 13
Зарегистрирован: 15. Ноября 2010
Re: Запрос 1С++ SQL не видит новый реквизит
Ответ #11 - 16. Ноября 2010 :: 06:45
Печать  
Z1 писал(а) 16. Ноября 2010 :: 05:41:
тогда попробуй
rc.Отладка(1);
ТЗ = rc.ВыполнитьИнструкцию("select top 10 $Адреса.ДниНедПер from $Справочник.Адреса AS Адреса");
из поля отладки выполни запрос в qa

также попробуй
ТЗ = rc.ВыполнитьИнструкцию("select top 10 sp28348 from sc26688");


Вот что получилось...
select top 10 Адреса.sp28348 from sc26688 AS Адреса
тзСтрокиРасходныхНакладных = рс.ВыполнитьИнструкцию(ТекстЗапроса);
ФАКТУРАМИ - КОПИЯ.ERT(244)}: State 42S22, native 207, message [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'sp28348'.
select top 10 sp28348 from sc26688
тзСтрокиРасходныхНакладных = рс.ВыполнитьИнструкцию(ТекстЗапроса);
ФАКТУРАМИ - КОПИЯ.ERT(246)}: State 42S22, native 207, message [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'sp28348'.
  
Наверх
 
IP записан
 
orefkov
1c++ developer
1c++ moderator
Отсутствует


I Love YaBB 2!

Сообщений: 896
Зарегистрирован: 20. Мая 2006
Re: Запрос 1С++ SQL не видит новый реквизит
Ответ #12 - 16. Ноября 2010 :: 07:26
Печать  
select top 10 * from $Справочник.Адреса
что показывает? Есть там такое поле?
Поди не в ту базу лезешь?
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Запрос 1С++ SQL не видит новый реквизит
Ответ #13 - 16. Ноября 2010 :: 07:41
Печать  
victor писал(а) 16. Ноября 2010 :: 06:45:
Z1 писал(а) 16. Ноября 2010 :: 05:41:
тогда попробуй
rc.Отладка(1);
ТЗ = rc.ВыполнитьИнструкцию("select top 10 $Адреса.ДниНедПер from $Справочник.Адреса AS Адреса");
из поля отладки выполни запрос в qa

также попробуй
ТЗ = rc.ВыполнитьИнструкцию("select top 10 sp28348 from sc26688");


Вот что получилось...
select top 10 Адреса.sp28348 from sc26688 AS Адреса
тзСтрокиРасходныхНакладных = рс.ВыполнитьИнструкцию(ТекстЗапроса);
ФАКТУРАМИ - КОПИЯ.ERT(244)}: State 42S22, native 207, message [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'sp28348'.
select top 10 sp28348 from sc26688
тзСтрокиРасходныхНакладных = рс.ВыполнитьИнструкцию(ТекстЗапроса);
ФАКТУРАМИ - КОПИЯ.ERT(246)}: State 42S22, native 207, message [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'sp28348'.

то что
select top 10 sp28348 from sc26688 не дает результата как-то странно
разумное объяснение что действительно не в ту базу идет запрос

Сделай следующий запрос из 1с
select top 10 * from sc26688
и есть ли в результате sp28348

PS также из 1с выполните еще запрос
select top 10 * from <ИмяСервера>.<ИмяБазы>.dbo.sc26688
где <ИмяСервера> имя конкретного sql сервера
<ИмяБазы> имя конкретной бд
« Последняя редакция: 16. Ноября 2010 :: 09:12 - Z1 »  
Наверх
 
IP записан
 
victor
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 13
Зарегистрирован: 15. Ноября 2010
Re: Запрос 1С++ SQL не видит новый реквизит
Ответ #14 - 16. Ноября 2010 :: 09:17
Печать  
Z1 писал(а) 16. Ноября 2010 :: 05:41:
тогда попробуй
rc.Отладка(1);
ТЗ = rc.ВыполнитьИнструкцию("select top 10 $Адреса.ДниНедПер from $Справочник.Адреса AS Адреса");
из поля отладки выполни запрос в qa

также попробуй
ТЗ = rc.ВыполнитьИнструкцию("select top 10 sp28348 from sc26688");


то что
select top 10 sp28348 from sc26688 не дает результата как-то странно
разумное объяснение что действительно не в ту базу идет запрос

Сделай следующий запрос из 1с
select top 10 * from sc26688
и есть ли в результате sp28348

PS также из 1с выполните еще запрос
select top 10 * from <ИмяСервера>.dbo.sc26688
где <ИмяСервера> имя конкретного sql сервера
[/quote]

Все прошло без ошибки в результате этого поля нет!

Вот какие оператор выполняю...

ИБ = СоздатьОбъект("ODBCDataBase");
рс = СоздатьОбъект("ODBCRecordset");
ИБ.ПрисоединитьИБ("N:\Bases1C77\ProgUprHab\"....);
рс.УстБД(ИБ);
рс.ВыполнитьИнструкцию("select top 10 sp28348 from sc26688");

ИБ лежит в N:\Bases1C77\ProgUprHab\

Вот файлы находящиеся в каталоге. может на ваш проф. взгляд, что то сразу может посказать...
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать