Имя: Пароль:
1C
 
1sqlite, метод УложитьОбъекты
0 Zakarum
 
18.05.11
11:21
Подскажите -- а что, метод УложитьОбъекты в 1sqlite не отрабатывет с группой подчиненного справочника, если ее надо развернуть на внутренние элементы? Или может я еще чего не так делаю?
Осваиваю 1sqlite, возникла такая задача: установить множественным фильтром выборку по свойствам номенклатуры, точнее по группе свойств. Такой код не работает, выборка пустая:

база = СоздатьОбъект("SQLiteBase");
база.Открыть(":memory:");
Запрос = база.НовыйЗапрос();
Запрос.ВыполнитьЗапрос("PRAGMA journal_mode = OFF");
Поз=0;
ТаблицаМФ.НайтиЗначение("ЗначенияСвойств",Поз,"Вид");
Если ТаблицаМФ.ПолучитьЗначение(Поз,"ФлВкл")=2 Тогда
   ИмяТаблицы="ТмпФильтрСвойств";
   база.УложитьОбъекты(ТаблицаМФ.ПолучитьЗначение(Поз,"СписокЭлементов"),ИмяТаблицы,,"ЗначенияСвойств");
   //дальше отладка
   ТекстПоВременнойТаблице="
   |SELECT
   |    val
   |FROM
   |    "+ИмяТаблицы+"
   |";
   ТЗ = СоздатьОбъект("ТаблицаЗначений");
   Запрос.ВыполнитьЗапрос(ТекстПоВременнойТаблице,ТЗ);
   ВывестиОтладочную(ТЗ, "объекты из МФ, свойства номенклатуры");
   //конец отладки
КонецЕсли

Если не использовать иерархию, т.е.
база.УложитьОбъекты(ТаблицаМФ.ПолучитьЗначение(Поз,"СписокЭлементов"),ИмяТаблицы)
то все отрабатывает, список не пустой, в нем id группы свойств.
База дбф конечно.
1 Zakarum
 
18.05.11
12:21
^
2 Zakarum
 
18.05.11
13:21
ап
3 Ёпрст
 
гуру
18.05.11
13:30
ээ..
А нафига в подчиненном справочнике группы упёрлись ?
4 Zakarum
 
18.05.11
13:40
(3) а почему нет?
5 Ёпрст
 
гуру
18.05.11
13:42
(4) имхо, это изврат..
А так, спрашивай у автора компоненты, как у него УложитьОбъекты устроено..
По идее должно быть пофик на то, что справочник подчинён.
6 Ёпрст
 
гуру
18.05.11
13:42
У тебя в списке группа справочника ведь ?
7 Zakarum
 
18.05.11
13:47
(5) (6)
>>имхо, это изврат..
Ну, так уж устроено.
>>По идее должно быть пофик
по идее да, структура справочника не противоречит такому использованию, и передается ведь не пустой элемент справочника.
В списке группа справочника. Пробовал ее передавать вне списка, но результат тот же
8 Ёпрст
 
гуру
18.05.11
13:54
(7) ну тогда не судьба, придётся ручонками список самому разворачивать (либо собственный разворот в самом запросе лепить)
9 Chum
 
18.05.11
13:56
(7) ну извратись уже до конца: самостоятельно построй список вложенных элементов нужного подчинения и затолкай в УложитьСписокОбъектов
10 Zakarum
 
18.05.11
13:57
(8) да это не проблема. Выяснить бы где собака порылась :)
11 Zakarum
 
18.05.11
13:59
(9) УложитьСписокОбъектов -- это из 1с++, а тут sqlite
12 orefkov
 
18.05.11
14:02
(0)
Кинь пжста кусок dd'шника в части индексов этого справочника.
13 Zakarum
 
18.05.11
14:04
(12) вот:
#----Indexes------
# Name     |Descr         |Unique|Indexed fields                                              |DBName    
I=IDD      |of ID         |0     |ID                                                          |IDD        
I=PCODE    |of PARENT and |0     |PARENTEXT,PARENTID,ISFOLDER,CODE(UPPER)                     |PCODE      
I=PDESCR   |of PARENT and |0     |PARENTEXT,PARENTID,ISFOLDER,DESCR(UPPER)                    |PDESCR    
I=CODE     |of CODE       |0     |CODE(UPPER)                                                 |CODE      
I=DESCR    |of DESCR      |0     |DESCR(UPPER)                                                |DESCR      
I=VI29343  |VI29343       |0     |SP29343                                                     |VI29343    
I=VIP29343 |VIP29343      |0     |PARENTEXT,PARENTID,ISFOLDER,SP29343                         |VIP29343
14 orefkov
 
18.05.11
14:14
(13)
Усе понятно.
Для разворота справочника по группам 1sqlite использует 2ой по порядку индекс, полагая, что он
PARENTID,ISFOLDER,...
А тут в начале индекса добавляется еще поле PARENTEXT.
Баг зафиксировал, в конце мая постараюсь исправить.
Ща просто в отпуске, на работу заскочил на пять минут за отпускными.
15 Zakarum
 
18.05.11
14:15
(14)ну слава богу, все прояснилось :)
16 Ёпрст
 
гуру
18.05.11
14:31
(14) можно еще, сделать так, чтоб укладывались простые типы данных в список ?
Типа Строка/число/дата ?
чтоб не было приведения их к 9 символам ?
А тупо как есть ?
17 orefkov
 
18.05.11
14:35
(16)
Тогда метод не может называться "УложитьОбъекты" :)
18 Ёпрст
 
гуру
18.05.11
15:54
(17) ну.. Уложить же присутствует
:)
19 runoff
 
18.05.11
19:52
юзайте 1срр и перестаньте использовать всякую crazy-hand-made хеpню типа 1sqlite..
20 orefkov
 
18.05.11
22:58
(19)
Чувак, ты вообще не в теме об чем речь.
21 Ёпрст
 
гуру
19.05.11
08:38
(19) с абрикоса упал ?
22 runoff
 
19.05.11
15:24
а что.. есть дебилы, которые и то, и то используют что ли -)
23 Ёпрст
 
гуру
19.05.11
16:16
(22) Видать ты с дбф никогда не работал, про Табличное поле вообще не слышал, ну и дальше, разговор ни о чем..
ЗЫ: да, и 1sqlite в глаза не видел
24 runoff
 
19.05.11
17:34
(23) лана.. перегнул палку.. извините за резкость -)
с ДБФ работал очень давно..
ps.. и зачем ты защищаешь sqlite, если в глаза его не видел..
25 Ёпрст
 
гуру
19.05.11
18:00
(24) Ты о ком ?
тебе поделок на 1sqlite показать ?
http://goo.gl/tZ3Ad
да итак, отчетов написано до едрени фени + куски в модуле проведения на 1sqlite написаны.