Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Как использовать УложитьОбъекты(СписокЗначений, "СписокЗначений") (число прочтений - 2071 )
Andrey (sttt)
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 49
Зарегистрирован: 10. Января 2009
Пол: Мужской
Как использовать УложитьОбъекты(СписокЗначений, "СписокЗначений")
12. Марта 2015 :: 08:44
Печать  
Вроде все правильно делаю, но список на выходе выводит с пятью пустыми строками.
Что делаю не так?
ВыполнитьЗапрос использовал с разными параметрами:

Код
Выбрать все
	СписокКодов = СоздатьОбъект("СписокЗначений");
	СписокКодов.ДобавитьЗначение("11111", "11111");
	СписокКодов.ДобавитьЗначение("22222", "22222");
	СписокКодов.ДобавитьЗначение("33333", "33333");
	СписокКодов.ДобавитьЗначение("44444", "44444");
	СписокКодов.ДобавитьЗначение("55555", "55555");

	мБаза = СоздатьОбъект("SQLiteBase");
	мБаза.Открыть(":memory:");

	мБаза.УложитьОбъекты(СписокКодов, "СписокКодов");

	Запрос = мБаза.НовыйЗапрос();

	ТекстЗапроса = "select * from СписокКодов";

	СписокВыборки = СоздатьОбъект("СписокЗначений");

	Запрос.ВыполнитьЗапрос(ТекстЗапроса, СписокВыборки);

	ВыбранноеЗначение = "";
	НомерПозиции = 0;

	СписокВыборки.ВыбратьЗначение(ВыбранноеЗначение, "Список выборки", НомерПозиции,, 0);

	Сообщить("Номер позиции: " + Строка(НомерПозиции));
	Сообщить("Выбранное значение: " + ВыбранноеЗначение); 

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



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Как использовать УложитьОбъекты(СписокЗначений, "СписокЗначений")
Ответ #1 - 12. Марта 2015 :: 09:40
Печать  
укладывай тз (только обязательно с типизированной колонкой) в запросе.
А твой список, будет приведён к виду id9
  
Наверх
 
IP записан
 
varelchik_f
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 36
Местоположение: Киев
Зарегистрирован: 10. Апреля 2014
Пол: Мужской
Re: Как использовать УложитьОбъекты(СписокЗначений,
Ответ #2 - 13. Марта 2015 :: 05:51
Печать  
УложитьОбъекты
Какие же у вас объекты в списке?
Объекты это Справочники,Документы,Перечисления.
Учите матчасть.
Укладываються Агрегатные объекты, а не числа и строки.
  
Наверх
 
IP записан
 
DartVader
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 29
Зарегистрирован: 13. Марта 2015
Re: Как использовать УложитьОбъекты(СписокЗначений, "СписокЗначений")
Ответ #3 - 13. Марта 2015 :: 09:09
Печать  
Вот мое решение данного вопроса создаем временную таблицу и используем в запросе

RecordsetExt.Выполнить("
     |IF EXISTS (SELECT * FROM tempdb..sysobjects WHERE
     |ID=OBJECT_ID('tempdb..#TempTab') AND sysstat & 0xf = 3 )
     |DROP TABLE #TempTab);");
     RecordsetExt.Выполнить("
     |CREATE TABLE #TempTab (Val Int, PRIMARY KEY CLUSTERED (Val) )");
     RecordsetExt.Подготовить("Insert into #TempTab Values (?)");
     RecordsetExt.ВыполнитьSQL_ИзТЗ(тбТовКодОбмен1С);

     
     ВыбДата = РабочаяДата();
     ТекстЗапроса = "SELECT Товар.ID as Товар, Товар.CODE AS Код, Товар.DESCR AS Наименование, Товар.SP39 AS Штрихкод,
     |      Товар.SP41 AS флЗапрещен, Товар.SP108 AS ЦенаВх, Товар.SP109 AS ЦенаР,
    |    Перечисления.Значение AS ВидНДС, Перечисления_2.Значение AS БазЕд,
    |    Перечисления_1.Значение AS ВидТовара
     |FROM         SC38 AS Товар WITH (NOLOCK) LEFT OUTER JOIN
    |   Перечисления AS Перечисления_1 ON Товар.SP46 = Перечисления_1.ID LEFT OUTER JOIN
    |   Перечисления AS Перечисления_2 ON Товар.SP48 = Перечисления_2.ID FULL OUTER JOIN
    |   Перечисления ON Товар.SP45 = Перечисления.ID
     |WHERE     (Товар.ISFOLDER = 2) AND (Товар.ISMARK = 0) AND (CAst(Товар.CODE as int) IN (SELECT Val FROM #TempTab))";
     тбТоварВнешнЗапр = RecordsetExt.ВыполнитьИнструкцию(ТекстЗапроса);   
     RecordsetExt.Закрыть();
     ИБ.Закрыть();
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Как использовать УложитьОбъекты(СписокЗначений, "СписокЗначений")
Ответ #4 - 13. Марта 2015 :: 12:10
Печать  
DartVader писал(а) 13. Марта 2015 :: 09:09:
Вот мое решение данного вопроса создаем временную таблицу и используем в запросе



круто, че..

одно но : у ТС sqllite
  
Наверх
 
IP записан
 
DartVader
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 29
Зарегистрирован: 13. Марта 2015
Re: Как использовать УложитьОбъекты(СписокЗначений, "СписокЗначений")
Ответ #5 - 13. Марта 2015 :: 12:34
Печать  
Видел, но думал там аналогично можно, создать табличку и условием попользоваться... Улыбка
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Как использовать УложитьОбъекты(СписокЗначений, "СписокЗначений")
Ответ #6 - 13. Марта 2015 :: 12:41
Печать  
Можно, УложитьТЗ.. самое простое.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать