Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) УложитьСписокОбъектов - валится с ошибкой (число прочтений - 6469 )
rustamakhmetov
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 21
Зарегистрирован: 20. Декабря 2006
УложитьСписокОбъектов - валится с ошибкой
20. Декабря 2006 :: 11:36
Печать  
1)
1С: 7.70.025 (DBF). Подключение через VFP OLE DB provider v9.
1cpp: 2.0.3.1


cmd_1c и cmd_dias - подключены к разным БД

Код:

ТекстЗапроса="
|SELECT top 10
| Спр.ID as [ID $Справочник.Псевдонимы],
| Спр.Code as Код,
| Спр.Descr as Наименование
|from $Справочник.Псевдонимы as Спр
|order by Спр.Code";
ТЗ = cmd_1c.ВыполнитьИнструкцию(ТекстЗапроса);
Если ТипЗначенияСтр(ТЗ)<>"ТаблицаЗначений" Тогда
//ПоказатьРезультат("Тест", "ТаблицаЗначений", ТЗ);
Возврат;
КонецЕсли;
лкСпс = СоздатьОбъект("СписокЗначений");
ТЗ.Выгрузить(лкСпс,,,"ID");
ВрТабл = "";
cmd_dias.УложитьСписокОбъектов(лкСпс, ВрТабл);

Выдает ошибку: FAILED! ICommandText::Execute(): Line 1: Incorrect syntax near '-'.

Где копать?

2) 1cpp.dll (2.0.3.1) будет работать на релизе 7.70.020 ?
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: УложитьСписокОбъектов - валится с ошибкой
Ответ #1 - 20. Декабря 2006 :: 13:56
Печать  
1) Ты берешь из одной базы конкретные значения ID и пытаешься по ним же сделать выгрузку в другой базе. А ведь ID в базах совсем разные Печаль
ИМХО тебе нужно использовать какие-то одинаковые ключи, т.е. чтобы эти ключи имели одинаковое значение, например, наименование.
2) Вроде народ работает.
Хотя где-то недавно видел тему именно о баге 1С++ при работе с 20 или 21 релизом. Поищи, была в районе двух-трех недель на форуме.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
rustamakhmetov
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 21
Зарегистрирован: 20. Декабря 2006
Re: УложитьСписокОбъектов - валится с ошибкой
Ответ #2 - 21. Декабря 2006 :: 09:06
Печать  
artbear писал(а) 20. Декабря 2006 :: 13:56:
1) Ты берешь из одной базы конкретные значения ID и пытаешься по ним же сделать выгрузку в другой базе. А ведь ID в базах совсем разные Печаль
ИМХО тебе нужно использовать какие-то одинаковые ключи, т.е. чтобы эти ключи имели одинаковое значение, например, наименование.
2) Вроде народ работает.
Хотя где-то недавно видел тему именно о баге 1С++ при работе с 20 или 21 релизом. Поищи, была в районе двух-трех недель на форуме.


А причем здесь ключи?
Сам метод "УложитьСписокОбъектов" валился с ошибкой. Причина была в том, что был не указан temp каталог, после предварительного вызова "УстановитьКаталогВремТаблиц" проблема решилась.
НО! Если пытаться уложить не документы, а например просто числовые данные, на выходе получаем таблицу с пустыми строками.

Как решается проблема передачи списка параметров в другое соединение?
  
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: УложитьСписокОбъектов - валится с ошибкой
Ответ #3 - 21. Декабря 2006 :: 09:45
Печать  
rustamakhmetov писал(а) 21. Декабря 2006 :: 09:06:
Причина была в том, что был не указан temp каталог, после предварительного вызова "УстановитьКаталогВремТаблиц" проблема решилась.
НО! Если пытаться уложить не документы, а например просто числовые данные, на выходе получаем таблицу с пустыми строками.

1. Если не указан каталог временных таблиц, то используется каталог ИБ;
2. Укладывать можно только агрегаты (Справочник/Документ/СписокЗначений (содержащий элементы типа Справочник, Документ))
  
Наверх
ICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: УложитьСписокОбъектов - валится с ошибкой
Ответ #4 - 21. Декабря 2006 :: 09:48
Печать  
+ Если хочется строки или числа, тогда делай так
Код
Выбрать все
WHERE ЧтоТо IN(СписокТвоихЧиселИлиСтрок) 

  
Наверх
 
IP записан
 
rustamakhmetov
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 21
Зарегистрирован: 20. Декабря 2006
Re: УложитьСписокОбъектов - валится с ошибкой
Ответ #5 - 21. Декабря 2006 :: 10:33
Печать  
JohnyDeath писал(а) 21. Декабря 2006 :: 09:48:
+ Если хочется строки или числа, тогда делай так
Код
Выбрать все
WHERE ЧтоТо IN(СписокТвоихЧиселИлиСтрок) 



На больших объемах данных -- не работает.

Ситуация следующая:
Есть 2 базы:
1) 1c DBF
2) MS SQL не 1C

Необходимо сравнивать (используя sql запросы) данные между этими базами.
Т.е. данные полученные из (1) использовать в запросах к (2), и наоборот.

Как это можно реализовать?
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: УложитьСписокОбъектов - валится с ошибкой
Ответ #6 - 21. Декабря 2006 :: 11:15
Печать  
Ну если на больших объёмах не работает - засунь всё во временную таблицу.
  
Наверх
 
IP записан
 
rustamakhmetov
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 21
Зарегистрирован: 20. Декабря 2006
Re: УложитьСписокОбъектов - валится с ошибкой
Ответ #7 - 21. Декабря 2006 :: 13:56
Печать  
JohnyDeath писал(а) 21. Декабря 2006 :: 11:15:
Ну если на больших объёмах не работает - засунь всё во временную таблицу.


В этом и проблема.
Как передать временную таблицу в соединение с базой 1C (dbf) ?
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: УложитьСписокОбъектов - валится с ошибкой
Ответ #8 - 22. Декабря 2006 :: 07:27
Печать  
rustamakhmetov писал(а) 21. Декабря 2006 :: 09:06:
Сам метод "УложитьСписокОбъектов" валился с ошибкой. Причина была в том, что был не указан temp каталог, после предварительного вызова "УстановитьКаталогВремТаблиц" проблема решилась.

Дай полное название каталога ИБ.
Типа <C:\1C\Бухгалтерия>

На наших тестах не было никакой разницы между каталогом по умолчанию (ИБ) и каталогом врем. таблиц.

ИМХО у тебя в пути к каталогу ИБ есть пробелы.

В итоге путь к временной таблице становится неопределенным Печаль

ЗЫ Кирилл, нужно не забыть добавить эту проверку.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: УложитьСписокОбъектов - валится с ошибкой
Ответ #9 - 22. Декабря 2006 :: 07:28
Печать  
rustamakhmetov писал(а) 21. Декабря 2006 :: 13:56:
Как передать временную таблицу в соединение с базой 1C (dbf) ?

Можешь закинуть свою врем.таблицу в каталог ИБ, а потом просто использовать в запросе типа
Код
Выбрать все
ТекстЗапроса = "select *
from "+ИмяВремТаблицы+" as temptab" 



Только не забудь потом ее удалить Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: УложитьСписокОбъектов - валится с ошибкой
Ответ #10 - 22. Декабря 2006 :: 07:32
Печать  
если каталог временных таблиц не переопределен, то пробелы побоку.
если же переопределен, то на этот счет в документации есть оговорка.
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: УложитьСписокОбъектов - валится с ошибкой
Ответ #11 - 22. Декабря 2006 :: 07:58
Печать  
spock писал(а) 22. Декабря 2006 :: 07:32:
1. если каталог временных таблиц не переопределен, то пробелы побоку.

Да, ты прав.
А ведь у меня была подобная ошибка Печаль на домашнем компе.
Но на рабочем ошибка не повторяется, специально написанный для этого тест проходит Улыбка

ЗЫ на всякий случай еще вечером на домашнем компе тесты прогоню.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: УложитьСписокОбъектов - валится с ошибкой
Ответ #12 - 22. Декабря 2006 :: 08:06
Печать  
да у него скорее всего какая-то хня, а пока он не покажет больше кода, помочь ему нечем.
  
Наверх
ICQ  
IP записан
 
rustamakhmetov
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 21
Зарегистрирован: 20. Декабря 2006
Re: УложитьСписокОбъектов - валится с ошибкой
Ответ #13 - 22. Декабря 2006 :: 09:31
Печать  
spock писал(а) 22. Декабря 2006 :: 08:06:
да у него скорее всего какая-то хня, а пока он не покажет больше кода, помочь ему нечем.


Сорри!!! Мой косяк.  Печаль
Я перепутал строчки подключения и подключался к "Driver={SQL Server}"  вместо "Provider=VFPOLEDB.1".
  
Наверх
 
IP записан
 
rustamakhmetov
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 21
Зарегистрирован: 20. Декабря 2006
Re: УложитьСписокОбъектов - валится с ошибкой
Ответ #14 - 22. Декабря 2006 :: 09:38
Печать  
artbear писал(а) 22. Декабря 2006 :: 07:28:
Можешь закинуть свою врем.таблицу в каталог ИБ, а потом просто использовать в запросе типа
Код
Выбрать все
ТекстЗапроса = "select *
from "+ИмяВремТаблицы+" as temptab" 



Только не забудь потом ее удалить Улыбка


У меня MSSQL запрос возвращает таблицу значений, как теперь её засунуть в dbf ?
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать