Имя: Пароль:
1C
1С v8
Вопрос по SQL
,
0 DmitriyDI
 
28.05.14
10:12
Делаю вот так

Command.CommandText = SQL_ТекстЗапроса;
Command.CommandType = 1;
RS = Command.execute();

Пока RS.EOF = 0 Цикл

Сообщить(RS.Fields(6).Value);
RS.MoveNext();

КонецЦикла;

а как мне не обходить циклом, а выгрузить результат в ТЗ?
1 shuhard
 
28.05.14
10:14
(0) трудно представить более нелепое название топика
2 DmitriyDI
 
28.05.14
10:16
(1) как трудно например : "Вопрос по 1с!"
3 rendez-vous
 
28.05.14
10:17
(0) Никак.
4 Maxus43
 
28.05.14
10:17
никак, заполняй в цикле ТЗ
5 DmitriyDI
 
28.05.14
10:20
ясно, спасибо
6 Serginio1
 
28.05.14
12:47
7 Serginio1
 
28.05.14
12:49
8 МихаилМ
 
28.05.14
15:47
(0)

GetRows

gameWithFire
9 DmitriyDI
 
28.05.14
16:02
(8) спасибо посмотрим
10 Maxus43
 
28.05.14
16:03
(9) в (7) пример, но это не универсально, внешние компоненты с конфой таскать будешь?
11 DmitriyDI
 
28.05.14
16:14
(10) да конфа все равно рукописная, лежит всегда на одном месте)
12 Fragster
 
гуру
28.05.14
16:18
//Команда = СтрЗаменить(Команда, "&ТекущаяДата", Формат(ТекущаяДата(), "ДФ=yyyyMMdd"));
    Command.CommandText = Команда;
    Recordset = Command.Execute();
    
    ТЗ = Новый ТаблицаЗначений();
    СтруктураКолонок = Новый Структура;
    Для Сч = 0 по Recordset.Fields.Count-1 Цикл
        //ТЗ.Колонки.Добавить(Recordset.Fields(Сч).Name, Новый ОписаниеТипов("Строка",,Новый КвалификаторыСтроки(150)));
        ИмяКолонки = Recordset.Fields(Сч).Name;
        СтруктураКолонок.Вставить(ИмяКолонки, Recordset.Fields(Сч));
        МассивТипов = Новый Массив;
        МассивТипов.Добавить(ТипЗнч(Recordset.Fields(Сч).Value));
        ТЗ.Колонки.Добавить(ИмяКолонки, Новый ОписаниеТипов(МассивТипов, Новый КвалификаторыЧисла(15,2), Новый КвалификаторыСтроки(150), Новый КвалификаторыДаты(ЧастиДаты.Дата)));
    КонецЦикла;
    
    Пока Не Recordset.EOF Цикл
        Стр = Тз.Добавить();
        Для каждого Колонка Из СтруктураКолонок Цикл
            Стр[Колонка.Ключ] = Колонка.Значение.Value;
        КонецЦикла;
        
        Recordset.MoveNext();
    КонецЦикла;
13 Fragster
 
гуру
28.05.14
16:19
только имена у результата должны быть подходящими для имен колонок
14 DmitriyDI
 
28.05.14
16:19
(12) Как вариант, спасибо, я так понимаю gameWithFire, точно также в цикле делает.
15 МихаилМ
 
28.05.14
16:26
(14)
спарашивайте тут http://main.1c-ei.ru/Home/forum
16 МихаилМ
 
28.05.14
16:35
17 el7cartel
 
28.05.14
16:35
(14) не ипи мозг! велосипедист!
18 МихаилМ
 
28.05.14
17:26
(17) и к всем.
коли тема - велосипед,

подскажите  


учитвая, что в серверных модулях GWF НЕ работает, а GetRows  - работает    

поделитесь, как сгенерировать пустую ТЗ для загрузки из GetRows без долгого .Добавить() ?

учитвая, что размер буфера чтения CacheSize  
ограничен и может быть задача чтения порциями,

как объединить порции (ТЗ) без .Добавить()
19 orefkov
 
28.05.14
18:24
(18)
Извратиться с ЗначениеИзСтрокиВнутр?
20 МихаилМ
 
28.05.14
18:43
(19)

сомневаюсь , что будет быстрее
1с8 исправлять текст и соединять.

первый вопрос 1 решил через

создание пустой тз из мнимого ТД

ТД = Новый ТабличныйДокумент;
    областьТД = ТД.Область(1,1,1,1);
    областьТД.Текст = "1";
    областьТД = ТД.Область(1,1,КолвоСтрокВсего+1,1);
    
    ПостроительЗапроса = Новый ПостроительЗапроса;
    ПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных(областьТД);

    Результат = ПостроительЗапроса.Результат; // отобранные строки типа РезультатЗапроса    

    ОбщаяТЗ = Результат.Выгрузить();
21 orefkov
 
28.05.14
18:54
(20)
Ну, если обход выборки и конкатенацию строк сделать джаваскриптом в полехтмлдокумента, да еще и через push/join, имхо можно вполне быстро отстреляться.
И эта... - да, я знаю толк в извращениях :)
22 orefkov
 
28.05.14
19:03
(16)
Я сейчас в раздумьях - будет ли актуальна TurboData с учетом появления внешних источников данных. 1С многими своими "полурешениями" создает для меня, как разработчика-коммерсанта, неудобства. С одной стороны, пользоваться ими не очень удобно, с другой стороны, доплачивать стороннему разработчику за то, что уже как-бы есть в платформе - желание отбивает.
23 Лефмихалыч
 
28.05.14
20:09
(1) легко! Традиционное "помогите с запросом" было бы еще нелепей
Программист всегда исправляет последнюю ошибку.