Имя: Пароль:
1C
1С v8
Помогите с запросом
, ,
0 КУНГ ФУ 1С
 
29.10.12
13:23
Есть такой запрос
ВЫБРАТЬ
   ТиповойОстаткиИОбороты.Субконто1,
   ТиповойОстаткиИОбороты.Субконто2,
   ТиповойОстаткиИОбороты.Субконто3,
   ТиповойОстаткиИОбороты.СуммаОборот
ИЗ
   РегистрБухгалтерии.Типовой.ОстаткиИОбороты(&НачДата, &Кондата, , , Счет В ИЕРАРХИИ(&Счет), , ) КАК ТиповойОстаткиИОбороты

Тз = Новый ТаблицаЗначений;
Тз.Колонки.Добавить("Субконто1" , Новый ОписаниеТипов("ПланВидовХарактеристикСсылка.ВидыСубконтоТиповые"));
Тз.Колонки.Добавить("Субконто2" , Новый ОписаниеТипов("ПланВидовХарактеристикСсылка.ВидыСубконтоТиповые"));
Тз.Колонки.Добавить("Субконто3",  Новый ОписаниеТипов("ПланВидовХарактеристикСсылка.ВидыСубконтоТиповые"));
Тз.Колонки.Добавить("Сумма", ОбщегоНазначения.ПолучитьОписаниеТиповЧисла(15,2));


Перебираю выборку и записываю в таблицу значений, когда указываю описание типов он субконто1,2,3 не заполняет, когда убираю ОписаниеТипов то заполняет. ничего не понимаю...
1 cw014
 
29.10.12
13:24
Смешно, а зачем ты типизируешь, да еще и не правильно?
2 Maxus43
 
29.10.12
13:25
Тз = Запрос.Выполнить.Выгрузить();
3 cw014
 
29.10.12
13:26
(2) +1
4 КУНГ ФУ 1С
 
29.10.12
13:26
(1) нужна типизация, чтобы затем сделать соеденение с другим запросом, после обработки результата определенным алгоритмом

(0) Выгрузить не пойдет, не все колонки используются
5 Maxus43
 
29.10.12
13:28
(4) Тз = Запрос.Выполнить.Выгрузить().Скопировать("список колонок");
6 КУНГ ФУ 1С
 
29.10.12
13:30
(5) с точки зрения производительности выгружать не могу, у меня одна таблица значения на 10 запросов и ее нужно привести к типу для последующего соеденения
7 GANR
 
29.10.12
13:30
(4) Сделай в отладчике "вычислить выражение" (2), посмотри какие типы у колонок - задай идентичные или попроще - (5).
8 Maxus43
 
29.10.12
13:31
(6) нихрена не понял. Ладно, мы видимо тупим. Тогда кури СП как правильно Типизировать колонки, а особенно что такое Субконто
9 Zmich
 
29.10.12
13:34
ВЫБРАТЬ ПЕРВЫЕ 0
   ТиповойОстаткиИОбороты.Субконто1,
   ТиповойОстаткиИОбороты.Субконто2,
   ТиповойОстаткиИОбороты.Субконто3,
   ТиповойОстаткиИОбороты.СуммаОборот
ИЗ
   РегистрБухгалтерии.Типовой.ОстаткиИОбороты(&НачДата, &Кондата, , , Счет В ИЕРАРХИИ(&Счет), , ) КАК ТиповойОстаткиИОбороты

ТЗ = Запрос.Выполнить().Выгрузить();
10 cw014
 
29.10.12
13:34
Ты типизируешь типом объекта "ПланВидовХарактеристикСсылка". Разве у субконто такой тип? Или все таки "Характеристика?
11 GANR
 
29.10.12
13:37
+(7)(6) Там, скорее всего, тип колонки не "план видов характеристик", а ещё какой-то. А можно сделать проще и производительно.

1. Сделать функцию
Функция ПустаяТаблица() Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 0
|    ТиповойОстаткиИОбороты.Субконто1,
|    ТиповойОстаткиИОбороты.Субконто2,
|    ТиповойОстаткиИОбороты.Субконто3,
|    ТиповойОстаткиИОбороты.СуммаОборот
|ИЗ
|    РегистрБухгалтерии.Типовой.ОстаткиИОбороты(&НачДата, |&Кондата, , , Счет В ИЕРАРХИИ(&Счет), , ) КАК |ТиповойОстаткиИОбороты";
КонецФункции

2. Засунуть функцию (1) в серверный общий модуль со свойством "повторное использование возвращаемых значений" "на время сеанса".

Тогда запрос (1) выполнится максимум 1 раз за сеанс и выполнится быстро.
12 GANR
 
29.10.12
13:39
+(11)

Функция ПустаяТаблица() Экспорт

Запрос = Новый Запрос;
Запрос.Текст =

"ВЫБРАТЬ ПЕРВЫЕ 0

|    ТиповойОстаткиИОбороты.Субконто1,
|    ТиповойОстаткиИОбороты.Субконто2,
|    ТиповойОстаткиИОбороты.Субконто3,
|    ТиповойОстаткиИОбороты.СуммаОборот
|ИЗ
|    РегистрБухгалтерии.Типовой.ОстаткиИОбороты(&НачДата, |&Кондата, , , Счет В ИЕРАРХИИ(&Счет), , ) КАК |ТиповойОстаткиИОбороты";

Возврат Запрос.Выполнить().Выгрузить();

КонецФункции
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн