Имя: Пароль:
1C
1С v8
Обращение к ТЗ
0 Неженцев Эдуард
 
12.07.12
15:00
Возможно написать?
ТЗОтбор = ТЗОрг.Скопировать(ТЗОрг.НайтиСтроки(Новый Структура("СтрокаБаланса", <=1310)));
Приходится делать цикл, чтобы сравнивать с 1310, немного тормозит.
1 France
 
12.07.12
15:02
через запрос.
2 Неженцев Эдуард
 
12.07.12
15:52
(1) Вылетает Тип не может быть выбран в запросе
<<?>>Т.Организация,

Запрос=Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
|    Т.Организация,
|    Т.СуммаОрг        
|ПОМЕСТИТЬ ВТ
|ИЗ
|    &Таб КАК Т
|ГДЕ
|    Т.СтрокаБаланса <= 1310
|    И Т.Организация = &Организация";
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.УстановитьПараметр("Таб", ТЗОрг);
Запрос.УстановитьПараметр("Организация", ТекОрг.Организация);
ТЗЗ = Запрос.Выполнить().Выгрузить();
3 rutony
 
12.07.12
15:57
(2) Сначало в виртуальную таблицу со списком полей, потом делаем на нее условие... Запрос не может понять какие поля в ТЗ.
4 guitar_player
 
12.07.12
16:01
(2) определи тип колонок в своей таблице
5 Неженцев Эдуард
 
12.07.12
16:47
(2) Присвоил типы, теперь не могу запрос ни сгруппировать, ни выгрузить его в тз и написать тз.итог("СуммаОрг"), к примеру.
6 LAAry
 
12.07.12
16:50
Покажи код типизации колонок ТЗ и запрос, который выполняешь.
7 Неженцев Эдуард
 
12.07.12
16:56
ТЗОрг  = новый ТаблицаЗначений;
ТЗОрг.Колонки.Добавить("СтрокаБаланса", Новый ОписаниеТипов("Число")); //число!
ТЗОрг.Колонки.Добавить("Счет", Новый ОписаниеТипов("ПланСчетовСсылка.Хозрасчетный"));
ТЗОрг.Колонки.Добавить("НаименованиеСчета", Новый ОписаниеТипов("Строка"));
ТЗОрг.Колонки.Добавить("СуммаОрг", Новый ОписаниеТипов("Число"));
ТЗОрг.Колонки.Добавить("Организация", Новый ОписаниеТипов("СправочникСсылка.Организации"));

...

Запрос=Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.УстановитьПараметр("Таб", ТЗОрг);
Запрос.УстановитьПараметр("Организация", ТекОрг.Организация);
Запрос.Текст = "ВЫБРАТЬ
|    Т.Организация,
|    Т.СуммаОрг
|ПОМЕСТИТЬ ВТ
|ИЗ
|    &Таб КАК Т
|ГДЕ
|    Т.СтрокаБаланса <= 1310
|    И Т.Организация = &Организация";

ТЗЗ = Результат.Выгрузить();

...

ИтогиОрганизация.Параметры.СуммаОрг    = ТЗЗ.Итог("СуммаОрг");
Ошибка (Колонка не принадлежит коллекции). Поставил точку останова, посмотрел ТЗЗ - нет толонок Организация и СуммаОрг.
8 Неженцев Эдуард
 
12.07.12
16:58
(7) Результат = Запрос.Выполнить(); Стерлась строчка
9 GLazNik
 
12.07.12
16:58
(7) Тык и результата запроса нет. Результат во временной таблице ВТ.
Нужен еще один запрос к этой виртуальной таблице.
10 Reset
 
12.07.12
17:10
Вот еще вариант

// ИмяКолонки должно быть типизовано
Построитель=Новый ПостроительЗапроса;
Построитель.ИсточникДанных=Новый ОписаниеИсточникаДанных(ИсходнаяТаблица);
Отбор=Построитель.Отбор.Добавить("ИмяКолонки");
Построитель.Отбор.ИмяКолонки.ВидСравнения=ВидСравнения.МеньшеИлиРавно;
Построитель.Отбор.ИмяКолонки.Значение=2;
Построитель.Отбор.ИмяКолонки.Использование=Истина;
НоваяТаблица=Построитель.Результат.Выгрузить();
11 Неженцев Эдуард
 
12.07.12
17:10
(9) Правильно? В отладка --> Вычислить выражение просматриваю, поля Организация и СуммаОрг появились, но вместо значений - ошибка чтения значения.
ВЫБРАТЬ
|    Т.Организация,
|    Т.СуммаОрг
|ПОМЕСТИТЬ ВТ
|ИЗ
|    &Таб КАК Т
|ГДЕ
|    Т.СтрокаБаланса <= 1310
|    И Т.Организация = &Организация
|;
|
|//////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
|    ВТ.Организация,
|    СУММА(ВТ.СуммаОрг) КАК СуммаОрг
|ИЗ
|    ВТ КАК ВТ
|
|СГРУППИРОВАТЬ ПО
|    ВТ.Организация
12 Неженцев Эдуард
 
12.07.12
17:12
(10) Попробую, спасибо.