Имя: Пароль:
1C
1С v8
Из документ-список получить ТЗ
0 cfmm18
 
16.11.11
13:44
На форме лежит табличное поле (тип Документ список РеализацияТоваров).
Необходимо получить в виде таблицы значений список выбранных документов учитывая отбор, который установлен. Как это сделать?
1 shuhard
 
16.11.11
13:45
(0) засунь отбор в построитель запроса,
дёрни за верёвочку
2 cfmm18
 
16.11.11
13:48
(1)Пробовал так:

   ОтборСтрок = ТаблицаДок.Отбор;
   ПостроительЗапроса = Новый ПостроительЗапроса;
   ПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных(ЭлементыФормы.ТаблицаДок.Значение);
   

   Для Каждого ЭлементОтбора Из ОтборСтрок Цикл
       Если ЭлементОтбора.Использование Тогда
           НовыйОтбор = ПостроительЗапроса.Отбор.Добавить(ЭлементОтбора.Имя);
           НовыйОтбор.Использование = Истина;
           НовыйОтбор.ВидСравнения = ЭлементОтбора.ВидСравнения;  
           НовыйОтбор.ЗначениеС = ЭлементОтбора.ЗначениеС;
           НовыйОтбор.ЗначениеПо = ЭлементОтбора.ЗначениеПо;
           НовыйОтбор.Значение = ЭлементОтбора.Значение;
       КонецЕсли;
   КонецЦикла;
   
   Результат = ПостроительЗапроса.Результат.Выгрузить();

вылетает с ошибкой:
{Форма.Форма.Форма(45)}: Ошибка при вызове метода контекста (Добавить)
           НовыйОтбор = ПостроительЗапроса.Отбор.Добавить(ЭлементОтбора.Имя);
по причине:
Недопустимое значение параметра (параметр номер '1')
3 aleks-id
 
16.11.11
13:49
(1) и обломайся ибо в 8.2
ПостроительЗапроса (QueryBuilder)
Отбор (Filter)
Использование:

Только чтение.
Описание:

Тип: Отбор. Отбор построителя запроса.

Доступность:

Сервер, толстый клиент, внешнее соединение.
4 Живой Ископаемый
 
16.11.11
13:50
Построитель = Новый ПостроительЗапроса;
       Построитель.ИсточникДанных = Новый
       ОписаниеИсточникаДанных(ДокументСписокРеализацияТоваров);
       Результат = Построитель.Результат; //отобранные строки типа РезультатЗапроса
       тзБуф = Результат.Выгрузить();
5 Живой Ископаемый
 
16.11.11
13:53
Построитель = Новый ПостроительЗапроса;
       Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ДокументСписокРеализацияТоваров);
       Результат = Построитель.Результат; //отобранные строки типа РезультатЗапроса
        тзБуф = Результат.Выгрузить();
6 cfmm18
 
16.11.11
13:53
(4) Спасибо, работает!
7 Живой Ископаемый
 
16.11.11
13:54
2(3) обломайся сам.. даже отбор не нужно писывать будет действовать тот, который наложен на список
8 Живой Ископаемый
 
16.11.11
13:54
2(6) еще бы...
9 aleks-id
 
16.11.11
13:55
(7) ты совет (1) читал? ;)
10 Живой Ископаемый
 
16.11.11
13:55
2(9) совет допускает интерпретации.
11 aleks-id
 
16.11.11
13:58
(10) никаких интерпретаций. было ясно написано - сунуть отбор в построитель. если бы он написал используй в качестве источника данных свой список, тогда другое дело.
12 Живой Ископаемый
 
16.11.11
14:00
2(11) у меня фантазия более богатая... Я между словами сунуть, набор, в, построитель навооброжал еще с 10-к... так что допускает
13 shuhard
 
16.11.11
14:01
(11)
(12)
девочки - не сорьтесь
14 Живой Ископаемый
 
16.11.11
14:02
2(13) нет, вот из этой своей фантазии меня исключай..
15 shuhard
 
16.11.11
14:07
(14)=)
16 Necessitudo
 
16.11.11
14:09
Ппц. А заюзать событие ПриВыводеСтроки низя? При выводе как раз пройдешь циклом по строкам и получишь список значений. Не?
17 Живой Ископаемый
 
16.11.11
14:09
2(16) божечки зачем?
18 Живой Ископаемый
 
16.11.11
14:10
+(17) и как ты посчитаешь строки, которые в отбор попали, но в списке просто не видны?
19 Necessitudo
 
16.11.11
14:11
Оо как так - в отбор попали, но в списке не видны? То есть отбор их отбросил?
20 shuhard
 
16.11.11
14:13
(19) бедняжка,
ты не видел баз,где список длиннее экрана ?
21 Живой Ископаемый
 
16.11.11
14:13
2(19) чувак, у тебя тоже слабая фантазия... Документов всего - 100000 штук. в отбор попали 20000, на экран вывелась 100. Что вернет твой копрокод?
22 Necessitudo
 
16.11.11
14:14
Чорт) Не подумал)
23 aleks-id
 
16.11.11
14:14
(*старательно записывает в блокнотик*) "... Necessitudo - копрокодер ..."
24 Necessitudo
 
16.11.11
14:15
а что такое копрокодер?