Имя: Пароль:
1C
1С v8
Обработка массива в запросе
,
0 inmortal203
 
01.07.13
12:28
Возможно ли это с учетом того что запрос работает только с таблицами? Если да, то как?
1 SanGvin
 
01.07.13
12:29
что сделать то надо?
2 inmortal203
 
01.07.13
12:31
есть обычный линейный массив с данными, из него нужно сделать выборку запросом по некоторому условию (1)
3 BiBijke
 
01.07.13
12:32
(2) В общем случае нельзя.
4 vicof
 
01.07.13
12:32
(2) нет
5 inmortal203
 
01.07.13
12:33
(3)  а если не в общем?
6 zladenuw
 
01.07.13
12:33
(5) а что тебя мешает загрузить массив в таблицу и дальше уже с ней работать
7 BiBijke
 
01.07.13
12:34
(5) Если допустим в массиве ссылки одного типа, можно выбрать из базы элементы этого типа с условием В.
8 Рэйв
 
01.07.13
12:34
(0)Что мешает пройтись по массиву и выбрать то что надо по условию?

Обязательно ректально гланды лечить?
9 inmortal203
 
01.07.13
12:35
(6) вобщем ничего не мешает) просто хочу знать все тонкости
10 inmortal203
 
01.07.13
13:13
Запрос = Новый Запрос;
   Запрос.МенеджерВременныхТаблиц = МВТ;
   Запрос.УстановитьПараметр("Таблица",ТЗ);    
   Запрос.Текст = "
   |Выбрать *
   |Поместить ВТ
   |ИЗ &Таблица КАК Таблица";
       
   Запрос = Новый Запрос;
   Запрос.МенеджерВременныхТаблиц = МВТ;
   Запрос.Текст = "ВЫБРАТЬ * ИЗ ВТ";

почему то "таблица ВТ не найдена". проверял, в ТЗ колонка заполнена значениями
11 mzelensky
 
01.07.13
13:18
(10) 100% забыл колонки типизировать в ТЗ
12 inmortal203
 
01.07.13
13:22
(11) да точно) и выполнить предыдущий запрос тоже
13 mzelensky
 
01.07.13
13:31
(12) а еще потом не забудь уничтожить временную таблицу.
14 Xatori
 
01.07.13
13:38
В таких случаях по моему проще без менеджера обходится, например
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
              |    Выпуск.Организация,
              |    Выпуск.Подразделение,
              |    Выпуск.Продукция,
              |    Выпуск.КоличествоВыпуск,
              |    Выпуск.СтоимостьВыпуск
              |ПОМЕСТИТЬ Выпуск
              |ИЗ
              |    &тзВыпуски КАК Выпуск
              |;
              |
              |////////////////////////////////////////////////////////////////////////////////
              |ВЫБРАТЬ
              |    Выпуск.Организация,
              |    Выпуск.Подразделение,
              |    Выпуск.Продукция,
              |    Выпуск.КоличествоВыпуск,
              |    Выпуск.СтоимостьВыпуск
              |ИЗ
              |    Выпуск КАК Выпуск";
Запрос.УстановитьПараметр("тзВыпуски", Параметры.тзВыпуски);
Результат = Запрос.Выполнить().Выгрузить();


И временную таблицу не надо дополнительно уничтожать, и кода меньше.
15 inmortal203
 
01.07.13
14:19
ок. спасибо за советы)