Имя: Пароль:
1C
1С v8
Как получить данные динамического списка?
0 rotting
 
14.11.11
17:45
Есть ДинамическийСписок на управляемой форме, хочу отобрать стандартными методами нужные мне элементы, а потом программно их перебрать, не нашел как перебрать элементы отображаемые на экране
1 Buster007
 
14.11.11
17:54
можт не надо?)
2 rotting
 
14.11.11
17:55
та надо))))
3 Fragster
 
гуру
14.11.11
17:56
а зачем?
4 Buster007
 
14.11.11
17:57
(3) +1 )
5 rotting
 
14.11.11
17:57
пля....  я же написал в сабже
6 2S
 
14.11.11
17:57
ДС с запросом, все условия опиши в запросе...
какие проблемы?
7 rotting
 
14.11.11
17:58
записать туда какие-то данные, что-то типа Групповой обработки справочников и документов
8 mikecool
 
14.11.11
17:58
откуда данные в списке?
9 Buster007
 
14.11.11
17:58
нее ) зачем тебе перебирать элементы на форме?
10 2S
 
14.11.11
17:58
запрос!
по справочнику!
11 rotting
 
14.11.11
18:02
(8) справочник номенклатура
(9) хочу предоставить пользователю инструмент для заполнения ТЧ в справочнике номенклатура.
(10) как быстро и удобно составить запрос имея динамический список и отбор динамического списка, для обычного приложения можно было вот так:

Построитель = Новый ПостроительОтчета;
   Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(Список);
   Выборка = Построитель.Результат.Выбрать();
   Пока Выборка.Следующий() Цикл
       Сообщить(Выборка.Ссылка);
   КонецЦикла;    


как в УФ?
12 rotting
 
14.11.11
18:15
ап.
13 Fragster
 
гуру
14.11.11
18:32
(11).2 да это нифига не ответ
14 izekia
 
14.11.11
18:38
(11) зачем построитель отчета??
15 rotting
 
14.11.11
18:43
(13) какой ответ нужен для получения ответа от тебя)?
16 rotting
 
14.11.11
18:44
(14) таким образом можно получить элементы, которые отображаются в текущий момент на форме
17 Fragster
 
гуру
14.11.11
18:44
(15) чем отображенные на экране строки отличаются от тех, которые на экран не попали?
18 izekia
 
14.11.11
18:45
(16) результат запроса их не вернет?
19 rotting
 
14.11.11
18:46
(17) ну допустим пользователь отобрал номенклатуру с условием "наименование содержит с.к."
20 rotting
 
14.11.11
18:46
(18) какого запроса, где его взять? Запрос то динамически формируется
21 Stepa86
 
14.11.11
18:47
Делаешь команду множественную с типом параметра - ссылка на номенклатуру, она появляется в твоей форме и в ее обработчик по нажатию падает массив выделенных номенклатур. Пользователей учим юзать ctrl+A и тыкать мышкой с зажатым шифтом и контролом.

Делал получение данных согласно дин. списку через СКД, передачу в него текста запроса и отборов, и компоновку в тз... но щас наврятли найду код
22 rotting
 
14.11.11
18:49
(21) это уже что-то, а через передачу запросов в СКД это я понимаю, искал простой метод типа (11) только под УФ
23 Fragster
 
гуру
14.11.11
18:51
(19) я к тому, что в (0) - "элементы отображаемые на экране". но ведь все, что юзер отберет - на экран может не вместиться.
24 Stepa86
 
14.11.11
18:51
(22) кода там не особо многа, особенно если запрос не будет меняться в дин. списке. Половину методов для работы с СКД можно из типовых передрать, из УТ11 например...

для получения таблицы из СКД на код:

//Формирует и возвращает таблицу значений по СКД
//Параметры:
//СКД - схема компоновки данных,
//ВнешниеНаборыДанных - Тип: Структура. Ключ структуры соответствует имени внешнего набора данных. Значение структуры - внешнему набору данных.
//
Функция ТаблицаСКД( СКД , ВнешниеНаборыДанных = Неопределено ) Экспорт
   
   КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
   МакетКомпоновки = КомпоновщикМакета.Выполнить( СКД , СКД.НастройкиПоУмолчанию ,,, Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
   ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
   ПроцессорКомпоновкиДанных.Инициализировать( МакетКомпоновки , ВнешниеНаборыДанных );
   ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
   ТаблицаЗначений = Новый ТаблицаЗначений;
   ПроцессорВывода.УстановитьОбъект(ТаблицаЗначений);
   ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
   
   Возврат ТаблицаЗначений;
   
КонецФункции
25 rotting
 
14.11.11
18:53
(23) я понял, понимаю что список динамически считывается с БД (на то он и динамический), вот мне нужно отобрать и те, которые в экран не влезли
26 izekia
 
14.11.11
18:54
(20) чего??
   Построитель = Новый ПостроительЗапроса;
   Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(СправочникСписок);
   Выборка = Построитель.Результат.Выбрать();
   Пока Выборка.Следующий() Цикл
       Сообщить(Выборка.Ссылка);
   КонецЦикла;
27 izekia
 
14.11.11
18:56
в (18) построитель запроса имел в виду
28 Stepa86
 
14.11.11
18:56
(26) а как же отбор из дин. списка?
29 rotting
 
14.11.11
18:57
(26) Синтаксис:

Новый ОписаниеИсточникаДанных(<ИсточникДанных>)
Параметры:

<ИсточникДанных> (обязательный)

Тип: ТаблицаЗначений; РезультатЗапроса; ОбластьЯчеекТабличногоДокумента.
Описываемый источник данных.

где мне взять переменную с такими типами на УФ?
30 izekia
 
14.11.11
18:59
(28) (29) меня заинтересовало конкретное использование ПостроителяОтчета
я не претендовал на ответ в целом
31 rotting
 
14.11.11
19:00
(30) а жаль....   кто же ответ в целом подскажет???
32 Stepa86
 
14.11.11
19:03
(31) чем тебя команда то не устраивает?
33 izekia
 
14.11.11
19:03
(31) я пока не использую УФ, соответственно мб что-то забыл, но вроде как это достаточно просто сделать ..
34 Джинн
 
14.11.11
19:04
(31) В целом подсказываю - динамический список не предназначен для таких финтов. Поменяйте концепцию.
Для пример УТ11 при подборе использует таблицу значений, заполняемую результатами запроса.
Основная теорема систематики: Новые системы плодят новые проблемы.