Имя: Пароль:
1C
1С v8
Выгрузка выборки в ТЗ при обходе по группировкам
0 Antizdoba
 
25.01.12
16:02
Можно ли без перебора выгрузить выборку "ВыборкаПоСтрокам" в ТЗ в ниже приведенном коде?
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|    Продукция.Ссылка КАК Ссылка,
|    Продукция.НомерСтрокиТаблицы КАК НомерСтрокиТаблицы,
|    Продукция.Номенклатура,
|    Продукция.Количество
|ПОМЕСТИТЬ ВременнаяТаблица
|ИЗ
|    &Продукция КАК Продукция
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
|    ВременнаяТаблица.Ссылка КАК Ссылка,
|    ВременнаяТаблица.НомерСтрокиТаблицы КАК НомерСтрокиТаблицы,
|    ВременнаяТаблица.Номенклатура,
|    ВременнаяТаблица.Количество
|ИЗ
|    ВременнаяТаблица КАК ВременнаяТаблица
|
|УПОРЯДОЧИТЬ ПО
|    НомерСтрокиТаблицы
|ИТОГИ ПО
|    Ссылка
|;
|
|////////////////////////////////////////////////////////////////////////////////
|УНИЧТОЖИТЬ ВременнаяТаблица";
Запрос.УстановитьПараметр("Продукция", ТаблицаПродукции);
ВыборкаПоДокументам = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Ссылка");
Пока ВыборкаПоДокументам.Следующий() Цикл
   ВыборкаПоСтрокам = ВыборкаПоДокументам.Выбрать();
   Пока ВыборкаПоСтрокам.Следующий() Цикл
       Сообщить(ВыборкаПоСтрокам.Ссылка);    
       Сообщить(ВыборкаПоСтрокам.НомерСтрокиТаблицы);
   КонецЦикла;
КонецЦикла;
1 Maxus43
 
25.01.12
16:03
Выгрузить (Unload)
Синтаксис:

Выгрузить(<ТипОбхода>)
Параметры:

<ТипОбхода> (необязательный)

Тип: ОбходРезультатаЗапроса.
Задает тип обхода записей в получаемой выборке.
Значение по умолчанию: Прямой
Возвращаемое значение:

Тип: ТаблицаЗначений; ДеревоЗначений.
Если тип обхода задан Прямой, результат выгружается в таблицу значений, в противном случае в дерево значений.
Описание:

Создает таблицу значений (или дерево значений) и копирует в нее все записи набора.
2 Maxus43
 
25.01.12
16:04
(1) + после этого сворачивай ТЗ и будет счастье
3 Antizdoba
 
25.01.12
16:07
Мне нужно выгрузить выборку строк на каждый документ. Что мне даст свертка?
4 Maxus43
 
25.01.12
16:09
т.е. надо выгрузить в виде Дерева? или нарисуй что в итоге хош получить то?
5 Ёпрст
 
25.01.12
16:12
(0) и зачем эти бестолковые действия?
У тебя же и так есть изначально готовая ТаблицаПродукции.
Зачем её во временную таббличку пихать и потом обратно из запроса иметь ?
6 Antizdoba
 
25.01.12
16:12
У меня есть тз в которой хранятся строки табличных частей документов с ссылкой на сам документ. Мне нужно сгруппировать все строки тз по документу и выгрузить их в таблицу значений, чтоб потом её загрузить сразу в документ. Надеюсь понятно объяснил
7 Antizdoba
 
25.01.12
16:13
(5) Там строки перемешаны, мне нужно сгруппировать их по документу и загрузить в документ
8 Maxus43
 
25.01.12
16:14
|УПОРЯДОЧИТЬ ПО
|    Ссылка
|    НомерСтрокиТаблицы

А Итоги убери. не то чтоли?
9 Ёпрст
 
25.01.12
16:14
(6) не проще ли отбор поставить в ТЗ?
10 Ёпрст
 
25.01.12
16:16
+9 тупо упорядочиваешь ТЗ по ссылке и привет, далее отбор по ссылке и ..всё  собствеено.
11 Antizdoba
 
25.01.12
16:16
(9) Мне важна скорость выполнения, разве отбор будет не медленнее?
(8) Как мне потом результат разбить на тз по документам?
12 Maxus43
 
25.01.12
16:17
в ТЗ есть строки в которых разные доки с разной номенклатурой. надо в каждый док указанный в ТЗ загрузить свои строки?
у ТЗ есть метод НайтиСтроки, найдёш все по документу скопом и грузи
13 Maxus43
 
25.01.12
16:17
(11) НайтиСтроки() у ТЗ, нормальная вещь
14 Maxus43
 
25.01.12
16:18
Запрос тебе не нужен, тупо к ТЗ "Продукция" НайтиСтроки делай
15 Antizdoba
 
25.01.12
16:18
(13) спс буду делать.
16 Maxus43
 
25.01.12
16:20
ТЗ_ВсеДокументы = Продукция.Скопировать(,"Ссылка");
Для каждого Док ИЗ ТЗ_ВсеДокументы Цикл
  Нашли_УРА = Продукция.НайтиСтроки(Новый Структура("Ссылка", Док.Ссылка));
17 Maxus43
 
25.01.12
16:21
свернуть ещё надо, чтоб дублей не было
ТЗ_ВсеДокументы = Продукция.Скопировать(,"Ссылка");
ТЗ_ВсеДокументы.Свернуть("Ссылка");
18 Feanor
 
25.01.12
16:25
выгружай в дерево и не иппи моск ))
19 Maxus43
 
25.01.12
16:28
(18) дак у него в (0) выборка и так деревянная, тз деревянная ему не поможет...)
20 Feanor
 
25.01.12
16:33
(19) да я уже понял, что сей тайный замысел не понял
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн