Имя: Пароль:
1C
1С v8
самый правильный способ получить структуру из результата запроса
0 e2e4
 
10.07.15
16:33
Продолжаем серию "про самые правильные приемы в 1С"))
По сабжу я сделал так:
    //замутили запрос и все такое
    //...
    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    ВыборкаДетальныеЗаписи.Следующий(); //у меня запрос возвращает ровно 1 строку - так что обойдемся без цикла
    
    СтруктураДанных = Новый Структура;
    Для каждого Колонка Из РезультатЗапроса.Колонки Цикл
        СтруктураДанных.Вставить(Колонка.Имя,ВыборкаДетальныеЗаписи[Колонка.Имя]);
    КонецЦикла;

    //наслаждаемся

...Красиво? Или так только такие чайники, как я, делают???
1 ДенисЧ
 
10.07.15
16:44
Последнее
2 hhhh
 
10.07.15
16:51
(0) новейшее ноухау. Учитесь:

                ОбластьСтроки.Параметры.Заполнить(Новый Структура("Цена", Цена));

        ОбластьМакета.Параметры.Заполнить(Новый Структура("Всего", Всего));
3 DexterMorgan
 
10.07.15
16:52
надо писать

Если ВыборкаДетальныеЗаписи.Следующий() Тогда
бла бла бла

если запрос не вернет ни одной записи получишь ошибку в своем коде
4 Ненавижу 1С
 
гуру
10.07.15
16:54
(3) есть запросы гарантирующие вывод ровно одной строки
5 1sanekmaloi1
 
10.07.15
16:56
(4) А есть запросы НЕ гарантирующие и там будет ошибка.
6 Ненавижу 1С
 
гуру
10.07.15
16:56
(5) совершенно верно
7 Casey1984
 
10.07.15
17:00
(2) бугуага, смотри как надо:

ЗаполнитьЗначениеСвойств(ТабЗнач.Добавить(), Новый Структура("Колонка1, Колонка2, Колонка3", "блаблабла", 123, СсылкаНаДок);
8 commdt
 
10.07.15
17:00
Как-то изголялся по этой теме, получилось вот что

        ЗапросСтатьи = Новый Запрос;
        ЗапросСтатьи.Текст =
            "ВЫБРАТЬ
            |    СтатьиДДСДляАвтоподстановки.ВидСтатьи КАК ВидСтатьи,
            |    СтатьиДДСДляАвтоподстановки.Статья КАК Статья
            |ИЗ
            |    РегистрСведений.СтатьиДДСДляАвтоподстановки КАК СтатьиДДСДляАвтоподстановки";

        РезультатСтатьи = ЗапросСтатьи.Выполнить().Выгрузить();
        СтатьиОплаты = Новый Структура;    
        Для каждого Строка из РезультатСтатьи Цикл
            СтатьиОплаты.Вставить(СтрЗаменить(Строка(Строка.ВидСтатьи)," ",""),Строка.Статья);
        КонецЦикла;

ВидСтатьи - Перечисление. Строк может быть сколько угодно (сейчас две)
9 hhhh
 
10.07.15
17:06
(7) ты не понял, это код из БСП. В Бух 3.0 таких строчек десятки тысяч. И ТС должен перенимать передовой опыт.