Имя: Пароль:
1C
1С v8
Поля запроса
0 Falex
 
05.10.11
14:07
Можно ли получить имена полей, которые возвращает запрос?
1 aleks-id
 
05.10.11
14:08
а зачем?
2 shuhard
 
05.10.11
14:09
(0) выгрузи в ТЗ,
пробеги по именам колонок
3 mikecool
 
05.10.11
14:11
распарсить текст запроса, если конечно весь правильный и юзается "КАК"
4 aleks-id
 
05.10.11
14:12
(3) в (2) проще. хотя если результат большой то замучаешься ждать
5 Falex
 
05.10.11
14:12
ну не всегда может использовать КАК
лучше наверное через ТЗ.
6 shuhard
 
05.10.11
14:18
(5) а есть ещё построитель запроса и скд,
которым можно запрос скормить и перебрать доступные поля
не выполняя запроса, если что
7 Falex
 
05.10.11
14:49
вот это интереснее.
8 Falex
 
05.10.11
14:49
лучше СКД скормить.
9 Mort
 
05.10.11
14:52
Построитель = Новый ПостроительЗапроса;    
Построитель.Текст = ТекстЗапроса;
Построитель.ЗаполнитьНастройки();
Для Каждого Поле Из Построитель.ДоступныеПоля Цикл
   НовПоле = _Поля.Добавить();
   НовПоле.Имя = Поле.Имя;
   НовПоле.Видимость = Истина;
   НовПоле.Заголовок = Поле.Представление;
   НовПоле.ТипЗначения = Поле.ТипЗначения;
КонецЦикла;
10 Falex
 
05.10.11
14:57
а через СКД?
я вот так скормил, а полей нет (

   СхемаКомпоновкиДанных                        = Новый СхемаКомпоновкиДанных();            
   ИсточникДанных                                = СхемаКомпоновкиДанных.ИсточникиДанных.Добавить();
   ИсточникДанных.Имя                            = "ИсточникДанных";
   ИсточникДанных.ТипИсточникаДанных            = "Local";  
   
   НаборДанных                                = СхемаКомпоновкиДанных.НаборыДанных.Добавить(Тип("НаборДанныхЗапросСхемыКомпоновкиДанных"));
   НаборДанных.Имя                            = "НаборДанных";
   НаборДанных.Запрос                            = Объект.ПроизвольныйЗапрос;
   НаборДанных.ИсточникДанных                    = ИсточникДанных.Имя;
   НаборДанных.АвтоЗаполнениеДоступныхПолей    = Истина;

Список = НаборДанных.Поля;
11 Mort
 
05.10.11
14:59
Автозаполнение полей тебе такого выдаст при простенькому запросу по вирт. регистру по одному измерению.
12 Falex
 
05.10.11
15:01
ну у меня просто запрос, но полей почему-то нет.
13 Mort
 
05.10.11
15:03
(12) Так набор данных не парсит запрос. Поля там как раз для их ручного указания, когда АвтоЗаполнениеДоступныхПолей = Ложь.
14 Mort
 
05.10.11
15:06
Нужно прописать настройки, инициализировать их и оттуда брать доступные поля. Только опять же (11). Толку делать универсальную функцию только для определенного вида запросов.
15 Falex
 
05.10.11
15:09
тогда лучше построителем
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший