Имя: Пароль:
1C
1С v8
Отбор по УСЛОВИЮ в таблице значений.
0 Andrey1957
 
03.02.12
06:32
Уважаемые коллеги!
Просмотрел на форуме все темы с отбором в ТЗ, но ответа на свой вопрос так и не нашел. Вопрос состоит в следующем: в структуре ТЗ имеется поле типа "Дата". Требуется отобрать все записи ТЗ с датой меньше заданной.
Во всех примерах, что перелопатил, отбор идет исключительно по равенству. Возможно осуществить такой отбор или нет, и если возможно, то как?
1 Wobland
 
03.02.12
06:33
а что есть отбор в ТЗ?
2 golden-pack
 
03.02.12
06:34
как ВТ в запрос
3 Godofsin
 
03.02.12
06:35
Сортировка и перебор?
4 Andrey1957
 
03.02.12
06:36
(1) Ну я, например, использовал такой механизм:
Тз2 = Тз.Скопировать(СтруОтбора, ), где в стуктуре задавал условия отбора. Но так можно только по равенству отобрать записи.
5 Wobland
 
03.02.12
06:47
вот. кидайте в меня помидорами

Запрос=Новый Запрос;
Запрос.Текст=
"
|ВЫБРАТЬ
|    СчетФактураВыданный.Дата,
|    СчетФактураВыданный.Ссылка
|ИЗ
|    Документ.СчетФактураВыданный КАК СчетФактураВыданный";
ТЗ=Запрос.Выполнить().Выгрузить();
//////////////////////////////////
МВТ=Новый МенеджерВременныхТаблиц;
Запрос.МенеджерВременныхТаблиц=МВТ;
Запрос.Текст="ВЫБРАТЬ * ПОМЕСТИТЬ ВТ ИЗ &ТЗ КАК ТЗ";
Запрос.УстановитьПараметр("ТЗ", ТЗ);
Запрос.Выполнить();
Запрос.Текст="ВЫБРАТЬ * ИЗ ВТ КАК ВремТаб ГДЕ ВремТаб.Дата>=ДАТАВРЕМЯ(2012, 01, 20)";
ТЗ=Запрос.Выполнить().Выгрузить();
6 golden-pack
 
03.02.12
06:57
лови томат
7 Wobland
 
03.02.12
07:02
(6) ошибся где?
8 Рэйв
 
03.02.12
07:04
(7) ТЗ должна иметь строго типизированные колонки.
   При выгрузке из запроса типом минимум два. там  NULL добавляется как составной непонятно зачем. Так что не взлетит имхо таким образом.

Ктому же почему бы сразу не отобрать что надо без ВТ?
9 Рэйв
 
03.02.12
07:05
типом= типов
10 1C_itc
 
03.02.12
07:06
(4) можно так попробовать
ПостроительЗапроса = Новый ПостроительЗапроса;
   ПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТЗ);
   
   НовыйОтбор = ПостроительЗапроса.Отбор.Добавить("Дата");
   
   НовыйОтбор.Использование = Истина;
   НовыйОтбор.ВидСравнения = ВидСравнения.Равно;
   НовыйОтбор.Значение = Дата;
   
   Результат = ПостроительЗапроса.Результат;
   ТЗ2 = Результат.Выгрузить();
11 Wobland
 
03.02.12
07:10
(8) в отладчике смотрел - во вторую ТЗ попадаёт всё по условию. а без ВТ ругался

Запрос.Текст="ВЫБРАТЬ * ИЗ &ТЗ КАК ТЗ ГДЕ ТЗ.Дата>=ДАТАВРЕМЯ(2012, 02, 01)";

Содержимое объекта данных может быть выбрано только во временную таблицу
12 Wobland
 
03.02.12
07:11
+(11) а типизировать (почти помню ведь об этом) просто лениво было
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.